summaryrefslogtreecommitdiff
path: root/tools/lib/python/kdoc/python_version.py
diff options
context:
space:
mode:
authorVictor Nogueira <victor@mojatatu.com>2026-10-15 16:15:24 -0300
committerJakub Kicinski <kuba@kernel.org>2026-10-20 19:15:11 -0700
commiteeb63e1e0bfc6203086dd496247e905b84704343 (patch)
tree0f9fcff0f9efe1d733ea5328651b4bd799a284ff /tools/lib/python/kdoc/python_version.py
parent57214815080fdefe2a651082ff3ea44c9145d8c6 (diff)
selftests: tc-testing: keep IPv6 autoconf out of exact-counter checks
Several tc-testing cases assert an exact bytes/packets value from a single injected frame, but count every frame that traverses an egress qdisc (or match with "protocol all"). Every case creates a fresh veth pair (and, for the gso_skb cases, a netdevsim device) and brings it up with IPv6 enabled; a device whose link-local autoconfiguration runs then emits neighbour solicitations, MLD reports and router solicitations for a few seconds. Those are ordinary Ethernet frames (0x86DD) and are counted too, so the exact assertions race with the autoconf burst and fail intermittently. The $DEV0 peer of the veth pair lives in the init netns, so its frames follow the init-netns IPv6 sysctls. Conditions to recreate the bug: Run the affected cases with IPv6 enabled (the tdc default) on net-next (7.3.0-rc6+). 4e6b fails intermittently (4/6 here); the four netdevsim "gso_skb" cases fail intermittently too (fb6c 1/25, 0235 4/15, 476f 4/8). 1922 did not trip in the sampled runs but shares the same setup and is fixed for uniformity. Each failure carries a stray autoconf frame, e.g. "bytes: 98 != 188". The Fix: Fix the affected cases: - actions/ife.json 4e6b injects only an 0xED3E frame but matches with "protocol all"; scope the filter to that ethertype. - The four netdevsim "gso_skb" cases (fb6c, 1922, 476f, 0235) create $ETH from within the case and bring it up immediately before installing the qdiscs, so the autoconf burst overlaps the measurement. Set "addrgenmode none" before the link is brought up, so the device generates no link-local address and the counter holds only the injected packet. IPv6 stays usable (a manually added address still works), so cases that exercise IPv6 are unaffected. On a kernel without IPv6 (CONFIG_IPV6=n, or booted with ipv6.disable=1) the attribute is not available, so the line is made non-fatal like every neighbouring setup line. With this change the affected cases pass 20/20, and the whole ife.json (51/51) and infra/qdiscs.json (48/48) suites pass, as do the protocol-ipv6 matchall cases (filters/matchall.json 0596, 41df, 8bd2, 2a4a). Reviewed-by: Jamal Hadi Salim <jhs@mojatatu.com> Signed-off-by: Victor Nogueira <victor@mojatatu.com> Link: https://patch.msgid.link/QDISC-L9J8.v1.r0.20261014162217-1@mojatatu.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'tools/lib/python/kdoc/python_version.py')
0 files changed, 0 insertions, 0 deletions