Hi David, > > @@ -39,6 +38,13 @@ int ip6_route_me_harder(struct net *net, struct > > sock *sk_partial, struct sk_buff > > }; > > int err; > > > > + if (sk && sk->sk_bound_dev_if) > > + fl6.flowi6_oif = sk->sk_bound_dev_if; > > + else if (strict) > > + fl6.flowi6_oif = dev->ifindex; > > + else > > + fl6.flowi6_oif = l3mdev_master_ifindex(dev); > > For top of tree, this is now fl6.flowi6_l3mdev Ah, I see, missed that. Given that IPv4 should be converted to flowi4_l3mdev as well (?), what about: * Keep the IPv6 patch in this form, as this allows stable to pick it up as-is * I'll add a follow-up patch, which converts both to flowi[46]_l3mdev This would avoid some noise for a separate stable patch, but let me know what you prefer. > and dev is only needed here so make this: > fl6.flowi6_l3mdev = l3mdev_master_ifindex(skb_dst(skb)->dev); Actually it is used in that "strict" branch, this is why I've added "dev" as a local variable. I guess that is still needed with flowi6_l3mdev? Thanks, Martin