Hi Peter,
I forgot to mention one thing about the 4.9 patch set. When patching against 4.9.170, I had to remove a couple of snippets that were already in release:
Patch #604 (linux-4.9-4-ip6-defrag-use-rbtrees.patch): + /usr/bin/cat /home/admin/WORK/os/PACKAGES/kernel49/WORK/linux-4.9-4-ip6-defrag-use-rbtrees.patch + /usr/bin/patch -p1 -b --suffix .ip6-4 --fuzz=0 patching file include/net/ipv6_frag.h patching file net/ipv6/reassembly.c Hunk #10 FAILED at 357. Hunk #11 succeeded at 374 (offset -4 lines). 1 out of 11 hunks FAILED -- saving rejects to file net/ipv6/reassembly.c.rej
--- net/ipv6/reassembly.c +++ net/ipv6/reassembly.c @@ -357,10 +258,6 @@ return 1; }
- if (skb->len - skb_network_offset(skb) < IPV6_MIN_MTU && - fhdr->frag_off & htons(IP6_MF)) - goto fail_hdr; - iif = skb->dev ? skb->dev->ifindex : 0; fq = fq_find(net, fhdr->identification, hdr, iif); if (fq) {
Patch #605 (linux-4.9-5-ip6-defrag-use-rbtrees-in-nf_conntrack_reasm.patch): + /usr/bin/cat /home/admin/WORK/os/PACKAGES/kernel49/WORK/linux-4.9-5-ip6-defrag-use-rbtrees-in-nf_conntrack_reasm.patch + /usr/bin/patch -p1 -b --suffix .ip6-5 --fuzz=0 patching file net/ipv6/netfilter/nf_conntrack_reasm.c Hunk #8 FAILED at 464. Hunk #9 succeeded at 475 (offset -4 lines). 1 out of 9 hunks FAILED -- saving rejects to file net/ipv6/netfilter/nf_conntrack_reasm.c.rej
--- net/ipv6/netfilter/nf_conntrack_reasm.c +++ net/ipv6/netfilter/nf_conntrack_reasm.c @@ -464,10 +363,6 @@ hdr = ipv6_hdr(skb); fhdr = (struct frag_hdr *)skb_transport_header(skb);
- if (skb->len - skb_network_offset(skb) < IPV6_MIN_MTU && - fhdr->frag_off & htons(IP6_MF)) - return -EINVAL; - skb_orphan(skb); fq = fq_find(net, fhdr->identification, user, hdr, skb->dev ? skb->dev->ifindex : 0);
On Mon, Apr 29, 2019 at 10:57 AM Captain Wiggum captwiggum@gmail.com wrote:
I have run the 4.9 patch set on the full TAHI test sweet. Similar to 4.14, it does fix all the IPv6 frag header issues. But the "change MTU" mesg routing is still broken. Overall, it fixes what it was intended to fix, so I suggest it move toward release. Thanks Peter!
--John Masinter
On Fri, Apr 26, 2019 at 9:41 AM Peter Oskolkov posk@google.com wrote:
This is a backport of a 5.1rc patchset: https://patchwork.ozlabs.org/cover/1029418/
Which was backported into 4.19: https://patchwork.ozlabs.org/cover/1081619/
and into 4.14: https://patchwork.ozlabs.org/cover/1089651/
This 4.9 patchset is very close to the 4.14 patchset above (cherry-picks from 4.14 were almost clean).
Eric Dumazet (1): ipv6: frags: fix a lockdep false positive
Florian Westphal (1): ipv6: remove dependency of nf_defrag_ipv6 on ipv6 module
Peter Oskolkov (3): net: IP defrag: encapsulate rbtree defrag code into callable functions net: IP6 defrag: use rbtrees for IPv6 defrag net: IP6 defrag: use rbtrees in nf_conntrack_reasm.c
include/net/inet_frag.h | 16 +- include/net/ipv6.h | 29 -- include/net/ipv6_frag.h | 111 +++++++ net/ieee802154/6lowpan/reassembly.c | 2 +- net/ipv4/inet_fragment.c | 293 ++++++++++++++++++ net/ipv4/ip_fragment.c | 295 +++--------------- net/ipv6/netfilter/nf_conntrack_reasm.c | 273 +++++----------- net/ipv6/netfilter/nf_defrag_ipv6_hooks.c | 3 +- net/ipv6/reassembly.c | 361 ++++++---------------- net/openvswitch/conntrack.c | 1 + 10 files changed, 631 insertions(+), 753 deletions(-) create mode 100644 include/net/ipv6_frag.h
-- 2.21.0.593.g511ec345e18-goog