summaryrefslogtreecommitdiff
path: root/tools/lib/python/kdoc/python_version.py
diff options
context:
space:
mode:
authorJamal Hadi Salim <jhs@mojatatu.com>2026-09-24 08:18:41 -0400
committerJakub Kicinski <kuba@kernel.org>2026-09-25 17:21:02 -0700
commite0edf25f141a7acc03748902bcb43974bd885353 (patch)
treeca56b1f598e1edc67178c3e12e5ccf5f7c902011 /tools/lib/python/kdoc/python_version.py
parent4a2e500fcd62d5cec48082b93238f0e33faef9fb (diff)
net/sched: cls_flower: exact-match ERSPAN key when no mask supplied
Commit 292207809486 ("net: sched: fix erspan_opt settings in cls_flower") removed the unconditional memset of the erspan_metadata mask in fl_set_erspan_opt(). On the mask-parse pass, when userspace supplies the encap option key but no mask (TCA_FLOWER_KEY_ENC_OPTS without TCA_FLOWER_KEY_ENC_OPTS_MASK), the !depth early return leaves the mask zeroed -- a wildcard. A filter keyed on an ERSPAN index (v1), or dir/hwid (v2), then matches every ERSPAN packet's values instead of exact-matching. Default the match fields on the no-mask path the same way the with-mask branches default them: v1 index to 0xff, v2 dir and hwid to their exact-match masks. The union cannot just be memset to 0xff -- that would re-mask the overlapping timestamp/sgt bytes of the v2 header that the commit deliberately left to 0. A mask and a key that declare different ERSPAN versions describe different union layouts, so the mask would silently wildcard the key's matched fields. Reject that combination. Have fl_set_erspan_opt() report the parsed key's version back through a u8 pointer so the mask pass uses it without re-reading the union. This is a follow-up to commit fee10655709c ("net/sched: cls_flower: validate mask pointer after nla_next()"). Conditions to recreate the bug: add an ERSPAN encap-opts flower filter with a key but no mask (raw netlink, TCA_FLOWER_KEY_ENC_OPTS present, TCA_FLOWER_KEY_ENC_OPTS_MASK absent); dump the filter and observe the match mask is zero (wildcard) instead of exact for the supplied fields. For the mismatch case, pair a v1 key with a v2 mask (or vice versa) and observe the request is accepted with a mask of the other version. Closes: https://netdev-ai.bots.linux.dev/sashiko/#/patchset/20260826025123.62758-1-ljp1205831794@gmail.com Link: https://lore.kernel.org/netdev/20260826025123.62758-1-ljp1205831794@gmail.com/ Reported-by: Sashiko (nipa) <sashiko-bot@kernel.org> Link: https://lore.kernel.org/netdev/179003833955.2160803.1077681716391858800@kernel.org/ Suggested-by: Xin Long <lucien.xin@gmail.com> Signed-off-by: Jamal Hadi Salim <jhs@mojatatu.com> Reviewed-by: Simon Horman <horms@kernel.org> Reviewed-by: Xin Long <lucien.xin@gmail.com> Link: https://patch.msgid.link/QDISC-4CSL.v2.20260924114800@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