Run IPv6 hop-by-hop options processing in parallel. The ip6_hbhchcheck()
authorbluhm <bluhm@openbsd.org>
Mon, 15 Aug 2022 16:15:36 +0000 (16:15 +0000)
committerbluhm <bluhm@openbsd.org>
Mon, 15 Aug 2022 16:15:36 +0000 (16:15 +0000)
commit0b448d840ed3c3573bbfc2437300f0f5e6fb68c4
tree2302c7d3b30e8b8d8349afd8c734c14a437c9fe9
parent4871a09eebd56a470b4a76233331de0ab6ecc1a6
Run IPv6 hop-by-hop options processing in parallel.  The ip6_hbhchcheck()
code is MP safe and moves from ip6_local() to ip6_ours().  If there
are any options, store the chain offset and next protocol in a mbuf
tag.  When dequeuing without tag, it is a regular IPv6 header.  As
mbuf tags degrade performance, use them only if a hop-by-hop header
is present.  Such packets are rare and pf drops them by default.
OK mvs@
sys/netinet/ip_input.c
sys/netinet6/ip6_input.c
sys/sys/mbuf.h