On Wed, Nov 9, 2016 at 7:50 AM, David Ahern <d...@cumulusnetworks.com> wrote: > @@ -1577,7 +1577,8 @@ void ip_send_unicast_reply(struct sock *sk, struct > sk_buff *skb,
Tested-by: Lorenzo Colitti <lore...@google.com> This fixes the IPv4 test, thanks. I notice that 4.8 didn't have e0d56fdd73, so if this patch can get into 4.9 then there will be no release that had the behaviour change. Not sure if that's possible any more though. Can you also fix tcp_v6_send_response, which suffers from the same problem? Perhaps revert this hunk of e0d56fdd73 ("net: l3mdev: remove redundant calls"): @@ -818,12 +818,8 @@ static void tcp_v6_send_response(const struct sock *sk, struct sk_buff *skb, u32 fl6.flowi6_proto = IPPROTO_TCP; if (rt6_need_strict(&fl6.daddr) && !oif) fl6.flowi6_oif = tcp_v6_iif(skb); - else { - if (!oif && netif_index_is_l3_master(net, skb->skb_iif)) - oif = skb->skb_iif; - - fl6.flowi6_oif = oif; - } + else + fl6.flowi6_oif = oif ? : skb->skb_iif; fl6.flowi6_mark = IP6_REPLY_MARK(net, skb->mark); fl6.fl6_dport = t1->dest;