summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/task-analyzer.py
diff options
context:
space:
mode:
authorPaolo Abeni <pabeni@redhat.com>2026-08-18 12:42:30 +0200
committerPaolo Abeni <pabeni@redhat.com>2026-08-18 12:42:31 +0200
commit116e8fe495d811d2a727177a4668e7f79fdffef2 (patch)
treed206ea9474975a6e5585fac0532153aa1a26a93d /tools/perf/scripts/python/task-analyzer.py
parent8acf691d8017012e1476c30e7381513c1e929c94 (diff)
parent6b222adeb9340306e2ff97127c76117abb9b3df8 (diff)
Merge branch 'net-fix-ip6gre-header-length-before-capping-tunnel-headroom'
Zhiling Zou says: ==================== net: fix IP6GRE header length before capping tunnel headroom We found and validated an issue in IP tunnel headroom accounting. The bug is reachable by a non-root user via user and net namespace. We've tested it, and it should not affect any other functionality. We will provide detailed information about the bug in this email, along with a PoC to trigger it. ---- details below ---- Bug details: IP tunnel devices derive advertised headroom from lower output devices. A namespace-local stack of tunnel devices can make that advertised reservation larger than the 16-bit skb header offsets can represent. Once IP output reserves that space and records network or transport header offsets, later skb head expansion can wrap those offsets and leave header helpers pointing into headroom instead of the packet area. For IP6GRE, there is an earlier accounting bug that has to be fixed first: ip6gre_tnl_link_config_route() folds the lower device's hard_header_len into the tunnel device's hard_header_len whenever header_ops is set. That is wrong for both header_ops users. ip6gretap and ip6erspan have a fixed Ethernet hardware header length, while an NBMA ip6gre tunnel's header_ops creates only the tunnel header: GRE, optional FOU or GUE, and the outer IPv6 header. The lower device header is needed headroom, not part of the tunnel device's hardware header. This series first fixes that IP6GRE hardware-header accounting, then caps the advertised IP tunnel needed_headroom at the same 512-byte limit already used by the runtime tunnel transmit path. Tunnel transmit can still expand the skb when a packet needs more headroom, so nonsensical stacked configurations may pay an extra reallocation but cannot publish an unbounded reservation to upper layers. ==================== Link: https://patch.msgid.link/cover.1786542637.git.zhilinz@nebusec.ai Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'tools/perf/scripts/python/task-analyzer.py')
0 files changed, 0 insertions, 0 deletions