Back-porting request
Subsystems (3)
Hello,
I'm requesting this commit to be back-ported to v4.14:
---
commit 5b18f1289808fee5d04a7e6ecf200189f41a4db6
Author: Stephen Suryaputra <[email protected]> Date: Wed Jun 26 02:21:16 2019 -0400
ipv4: reset rt_iif for recirculated mcast/bcast out pkts
Multicast or broadcast egress packets have rt_iif set to the oif. These packets might be recirculated back as input and lookup to the raw sockets may fail because they are bound to the incoming interface (skb_iif). If rt_iif is not zero, during the lookup, inet_iif() function returns rt_iif instead of skb_iif. Hence, the lookup fails.
v2: Make it non vrf specific (David Ahern). Reword the changelog to
reflect it.
---
We found the issue in that release and the above commit is on linux-stable. On the discussion behind this commit, please see:
https://www.spinics.net/lists/netdev/msg581045.html
I think after the following diff is needed on top of the above commit for v4.14:
---
net/ipv4/route.c +2 -5
@@ -1623,11 +1623,8 @@ struct rtable *rt_dst_clone(struct net_device *dev, struct rtable *rt) new_rt->rt_iif = rt->rt_iif; new_rt->rt_pmtu = rt->rt_pmtu; new_rt->rt_mtu_locked = rt->rt_mtu_locked; - new_rt->rt_gw_family = rt->rt_gw_family; -if (rt->rt_gw_family ==AF_INET ) - new_rt->rt_gw4 = rt->rt_gw4; -else if (rt->rt_gw_family ==AF_INET6 ) - new_rt->rt_gw6 = rt->rt_gw6; + new_rt->rt_gateway = rt->rt_gateway; + new_rt->rt_table_id = rt->rt_table_id;INIT_LIST_HEAD (&new_rt->rt_uncached); new_rt->dst.flags |=DST_HOST ;
---
Thank you,
Stephen.
Greg KH
maintainerQuoted 51 lines · Stephen Suryaputra
Hello,
I'm requesting this commit to be back-ported to v4.14:
---
commit5b18f1289808fee5d04a7e6ecf200189f41a4db6Author: Stephen Suryaputra <[email protected]> Date: Wed Jun 26 02:21:16 2019 -0400ipv4: reset
rt_iiffor recirculated mcast/bcast out pktsMulticast or broadcast egress packets have
rt_iifset to the oif. These packets might be recirculated back as input and lookup to the raw sockets may fail because they are bound to the incoming interface (skb_iif). Ifrt_iifis not zero, during the lookup,inet_iif()function returnsrt_iifinstead ofskb_iif. Hence, the lookup fails.v2: Make it non vrf specific (David Ahern). Reword the changelog to
reflect it.Signed-off-by Stephen Suryaputra <[email protected]>Reviewed-by David Ahern <[email protected]>Signed-off-by David S. Miller <[email protected]>---
We found the issue in that release and the above commit is on linux-stable. On the discussion behind this commit, please see:
https://www.spinics.net/lists/netdev/msg581045.htmlI think after the following diff is needed on top of the above commit for v4.14:
---
net/ipv4/route.c +2
-6@@ -1623,11 +1623,8 @@ struct rtable *rt_dst_clone(struct net_device *dev, struct rtable *rt) new_rt->rt_iif = rt->rt_iif; new_rt->rt_pmtu = rt->rt_pmtu; new_rt->rt_mtu_locked = rt->rt_mtu_locked; - new_rt->rt_gw_family = rt->rt_gw_family; -if (rt->rt_gw_family ==AF_INET ) - new_rt->rt_gw4 = rt->rt_gw4; -else if (rt->rt_gw_family ==AF_INET6 ) - new_rt->rt_gw6 = rt->rt_gw6; + new_rt->rt_gateway = rt->rt_gateway; + new_rt->rt_table_id = rt->rt_table_id;INIT_LIST_HEAD (&new_rt->rt_uncached); new_rt->dst.flags |=DST_HOST ; ---
Quoted 1 line
Thank you,
For networking patches to be applied to the stable kernel tree(s), please read:
https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html
for how to do this properly.
There is a section for how to do this for networking patches as they are accepted a bit differently from other patches.
thanks,
greg k-h
Sasha Levin
maintainerQuoted 59 lines · Greg KH
Quoted 51 lines · Stephen Suryaputra
Hello,
I'm requesting this commit to be back-ported to v4.14:
---
commit5b18f1289808fee5d04a7e6ecf200189f41a4db6Author: Stephen Suryaputra <[email protected]> Date: Wed Jun 26 02:21:16 2019 -0400ipv4: reset
rt_iiffor recirculated mcast/bcast out pktsMulticast or broadcast egress packets have
rt_iifset to the oif. These packets might be recirculated back as input and lookup to the raw sockets may fail because they are bound to the incoming interface (skb_iif). Ifrt_iifis not zero, during the lookup,inet_iif()function returnsrt_iifinstead ofskb_iif. Hence, the lookup fails.v2: Make it non vrf specific (David Ahern). Reword the changelog to
reflect it.Signed-off-by Stephen Suryaputra <[email protected]>Reviewed-by David Ahern <[email protected]>Signed-off-by David S. Miller <[email protected]>---
We found the issue in that release and the above commit is on linux-stable. On the discussion behind this commit, please see:
https://www.spinics.net/lists/netdev/msg581045.htmlI think after the following diff is needed on top of the above commit for v4.14:
---
net/ipv4/route.c +2
-6@@ -1623,11 +1623,8 @@ struct rtable *rt_dst_clone(struct net_device *dev, struct rtable *rt) new_rt->rt_iif = rt->rt_iif; new_rt->rt_pmtu = rt->rt_pmtu; new_rt->rt_mtu_locked = rt->rt_mtu_locked; - new_rt->rt_gw_family = rt->rt_gw_family; -if (rt->rt_gw_family ==AF_INET ) - new_rt->rt_gw4 = rt->rt_gw4; -else if (rt->rt_gw_family ==AF_INET6 ) - new_rt->rt_gw6 = rt->rt_gw6; + new_rt->rt_gateway = rt->rt_gateway; + new_rt->rt_table_id = rt->rt_table_id;INIT_LIST_HEAD (&new_rt->rt_uncached); new_rt->dst.flags |=DST_HOST ; ---Quoted 1 line
Thank you,
For networking patches to be applied to the stable kernel tree(s), please read:
https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html
for how to do this properly.
Quoted 2 lines
There is a section for how to do this for networking patches as they are accepted a bit differently from other patches.
To clarify a bit more here: technically you're asking for a patch to be included in 4.14, which isn't one of the "last two stable releases", so that document will tell you to send that patch directly to us.
However, this patch isn't in 4.19 either, which is still Dave's domain, and we can't take it in 4.14 if it's not in 4.19 (we don't want to introduce regressions for people who are upgrading their kernels), so this will still need to go through Dave.
--
Thanks,
Sasha
Quoted 40 lines · Stephen Suryaputra
Hello,
I'm requesting this commit to be back-ported to v4.14:
---
commit5b18f1289808fee5d04a7e6ecf200189f41a4db6Author: Stephen Suryaputra <[email protected]> Date: Wed Jun 26 02:21:16 2019 -0400ipv4: reset
rt_iiffor recirculated mcast/bcast out pktsMulticast or broadcast egress packets have
rt_iifset to the oif. These packets might be recirculated back as input and lookup to the raw sockets may fail because they are bound to the incoming interface (skb_iif). Ifrt_iifis not zero, during the lookup,inet_iif()function returnsrt_iifinstead ofskb_iif. Hence, the lookup fails.v2: Make it non vrf specific (David Ahern). Reword the changelog to
reflect it.Signed-off-by Stephen Suryaputra <[email protected]>Reviewed-by David Ahern <[email protected]>Signed-off-by David S. Miller <[email protected]>---
We found the issue in that release and the above commit is on linux-stable. On the discussion behind this commit, please see:
https://www.spinics.net/lists/netdev/msg581045.htmlI think after the following diff is needed on top of the above commit for v4.14:
---
net/ipv4/route.c +0
-1@@ -1623,11 +1623,8 @@ struct rtable *rt_dst_clone(struct net_device *dev, struct rtable *rt) new_rt->rt_iif = rt->rt_iif; new_rt->rt_pmtu = rt->rt_pmtu; new_rt->rt_mtu_locked = rt->rt_mtu_locked; - new_rt->rt_gw_family = rt->rt_gw_family;
net/ipv4/route.c struct rtable *rt_dst_clone(struct net_device *dev, struct rtable *rt)
Quoted 10 lines
net/ipv4/route.c +2
-5-if (rt->rt_gw_family ==AF_INET ) - new_rt->rt_gw4 = rt->rt_gw4; -else if (rt->rt_gw_family ==AF_INET6 ) - new_rt->rt_gw6 = rt->rt_gw6; + new_rt->rt_gateway = rt->rt_gateway; + new_rt->rt_table_id = rt->rt_table_id;INIT_LIST_HEAD (&new_rt->rt_uncached); new_rt->dst.flags |=DST_HOST ; ---
This only worked for 4.14, this also needs to go to 4.19. Can you provide a working backport for both trees so that I can apply it? I'll go drop the one I added, as it breaks the build :(
thanks,
greg k-h