Commit 024cd2cb authored by Santucci Pierpaolo's avatar Santucci Pierpaolo Committed by Daniel Borkmann

selftest/bpf: Fix IPV6FR handling in flow dissector

From second fragment on, IPV6FR program must stop the dissection of IPV6
fragmented packet. This is the same approach used for IPV4 fragmentation.
This fixes the flow keys calculation for the upper-layer protocols.
Note that according to RFC8200, the first fragment packet must include
the upper-layer header.
Signed-off-by: default avatarSantucci Pierpaolo <santucci@epigenesys.com>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
Reviewed-by: default avatarJakub Sitnicki <jakub@cloudflare.com>
Link: https://lore.kernel.org/bpf/X7JUzUj34ceE2wBm@santucci.pierpaolo
parent 2d38c580
...@@ -368,6 +368,8 @@ PROG(IPV6FR)(struct __sk_buff *skb) ...@@ -368,6 +368,8 @@ PROG(IPV6FR)(struct __sk_buff *skb)
*/ */
if (!(keys->flags & BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG)) if (!(keys->flags & BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG))
return export_flow_keys(keys, BPF_OK); return export_flow_keys(keys, BPF_OK);
} else {
return export_flow_keys(keys, BPF_OK);
} }
return parse_ipv6_proto(skb, fragh->nexthdr); return parse_ipv6_proto(skb, fragh->nexthdr);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment