mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-01 02:33:57 +00:00
net: Use VRF index for oif in ip_send_unicast_reply
If output device is not specified use VRF device if input device is enslaved. This is needed to ensure tcp acks and resets go out VRF device. Signed-off-by: David Ahern <dsa@cumulusnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
3bfd847203
commit
f7ba868b71
@ -1542,6 +1542,7 @@ void ip_send_unicast_reply(struct sock *sk, struct sk_buff *skb,
|
||||
struct net *net = sock_net(sk);
|
||||
struct sk_buff *nskb;
|
||||
int err;
|
||||
int oif;
|
||||
|
||||
if (__ip_options_echo(&replyopts.opt.opt, skb, sopt))
|
||||
return;
|
||||
@ -1559,7 +1560,11 @@ void ip_send_unicast_reply(struct sock *sk, struct sk_buff *skb,
|
||||
daddr = replyopts.opt.opt.faddr;
|
||||
}
|
||||
|
||||
flowi4_init_output(&fl4, arg->bound_dev_if,
|
||||
oif = arg->bound_dev_if;
|
||||
if (!oif && netif_index_is_vrf(net, skb->skb_iif))
|
||||
oif = skb->skb_iif;
|
||||
|
||||
flowi4_init_output(&fl4, oif,
|
||||
IP4_REPLY_MARK(net, skb->mark),
|
||||
RT_TOS(arg->tos),
|
||||
RT_SCOPE_UNIVERSE, ip_hdr(skb)->protocol,
|
||||
|
Loading…
Reference in New Issue
Block a user