From: Minxi Hou <houminxi@gmail.com>
To: netdev@vger.kernel.org
Cc: dev@openvswitch.org, linux-kselftest@vger.kernel.org,
linux-kernel@vger.kernel.org, aconole@redhat.com,
echaudro@redhat.com, i.maximets@ovn.org, davem@davemloft.net,
edumazet@google.com, kuba@kernel.org, pabeni@redhat.com,
horms@kernel.org, shuah@kernel.org,
Minxi Hou <houminxi@gmail.com>
Subject: [PATCH net-next v10 0/2] selftests: openvswitch: add pop_vlan test
Date: Tue, 12 May 2026 14:38:48 +0800 [thread overview]
Message-ID: <20260512063850.1133046-1-houminxi@gmail.com> (raw)
In-Reply-To: <20260509135423.3433910-1-houminxi@gmail.com>
Add test_pop_vlan() to verify OVS kernel datapath pop_vlan action
correctly strips 802.1Q VLAN tags from frames.
Patch 1 extends ovs-dpctl.py with vlan(vid=X,pcp=Y,cfi=Z) formatting
and parsing, plus an encap_ovskey subclass for safe ENCAP NLA decoding.
It changes OVS_KEY_ATTR_VLAN type from uint16 to be16 to match
the kernel __be16 wire format.
It also adds push_vlan action support (parse/format with range
validation).
Patch 2 adds the selftest using purely ping-based verification with
a push_vlan return flow for symmetric bidirectional testing.
Tested with vng on x86_64, all OVS selftests pass (including new
test_pop_vlan).
v10:
- fix masked VLAN dpstr round-trip: use tci=0xNNNN/0xMMMM format
for masked vlan() output instead of vid=X,pcp=Y,cfi=Z/vid=...
which the parser cannot re-consume
- fix int() base handling in _parse_vlan_from_flowstr: use
int(val, 0) for auto base detection instead of manual
0x prefix check
- fix commit message: remove reference to nonexistent
MAX_ENCAP_DEPTH constant, clarify "encap parse()" scope
v9: https://lore.kernel.org/netdev/20260509135423.3433910-1-houminxi@gmail.com/
- rebase on net-next (resolve conflict with 05416ada37aa4
"selftests: openvswitch: add tests for tunnel vport
refcounting")
v8: https://lore.kernel.org/netdev/20260508134308.2857449-1-houminxi@gmail.com/
- consistent error message prefix: push_vlan() instead of
push_vlan (matches vlan() and encap() style)
- unify encap() error messages for clarity
- add empty-string guards for MAC address variables
- remove slot number comments from encap_ovskey nla_map
- remove explicit modprobe 8021q pre-flight check
v7: https://lore.kernel.org/netdev/20260507131541.2331771-1-houminxi@gmail.com/
- remove slot number comments from encap_ovskey nla_map, keep
only comments explaining differences from base ovskey class
- remove explicit modprobe 8021q pre-flight check (ip link add
type vlan auto-loads the module)
v6: https://lore.kernel.org/netdev/20260506131218.1880852-1-houminxi@gmail.com/
- fix non-ASCII characters (em dashes) in comments and commit
messages
v5: https://lore.kernel.org/netdev/20260505124957.1239812-1-houminxi@gmail.com/
- add push_vlan action class, dpstr format and parse with range
validation (vid 0-4095, pcp 0-7, tpid 0-0xFFFF, CFI forced to 1)
- remove MAX_ENCAP_DEPTH constant and depth tracking (bracket-depth
counter in encap parser already handles nesting)
- remove start_capture/stop_capture helpers and tcpdump/pcap
verification -- use ping success/failure instead
- remove modprobe/netns pre-flight checks (other tests don't do this)
- remove ethtool VLAN offload disable (unnecessary for veth)
- add push_vlan return flow for symmetric bidirectional ping
- use ovs_sbx wrapper for ping commands (consistent with siblings)
v4: https://lore.kernel.org/netdev/20260504123713.555461-1-houminxi@gmail.com/
- fix all checkpatch line-length warnings in new code
- fix pylint W0707: use explicit exception chaining (from exc)
v3: https://lore.kernel.org/netdev/20260503120946.51869-1-houminxi@gmail.com/
- encap_ovskey: MPLS type "ovs_key_mpls" -> "array(ovs_key_mpls)"
- encap_ovskey: PRIORITY/IN_PORT set to "none" (metadata, not in ENCAP)
- _vlan_dpstr: cfi=0 falls back to tci=0x%04x for round-trip safety
- encap parse(): check return value for unrecognized trailing content
- vlan parser: boundary check + raise-from for exception chaining
v2: https://lore.kernel.org/netdev/20260501133924.3100680-1-houminxi@gmail.com/
Minxi Hou (2):
selftests: openvswitch: add vlan() and encap() flow string parsing
selftests: openvswitch: add pop_vlan test
.../selftests/net/openvswitch/openvswitch.sh | 78 +++++
.../selftests/net/openvswitch/ovs-dpctl.py | 324 +++++++++++++++++-
2 files changed, 392 insertions(+), 10 deletions(-)
--
2.53.0
next prev parent reply other threads:[~2026-05-12 6:39 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-09 13:54 [PATCH net-next v9 0/2] selftests: openvswitch: add pop_vlan test Minxi Hou
2026-05-09 13:54 ` [PATCH net-next v9 1/2] selftests: openvswitch: add vlan() and encap() flow string parsing Minxi Hou
2026-05-09 13:54 ` [PATCH net-next v9 2/2] selftests: openvswitch: add pop_vlan test Minxi Hou
2026-05-11 12:05 ` [PATCH net-next v9 0/2] " Minxi Hou
2026-05-12 6:38 ` Minxi Hou [this message]
2026-05-12 6:38 ` [PATCH v10 1/2] selftests: openvswitch: add vlan() and encap() flow string parsing Minxi Hou
2026-05-12 6:38 ` [PATCH v10 2/2] selftests: openvswitch: add pop_vlan test Minxi Hou
2026-05-12 7:08 ` [PATCH net-next v10 0/2] " Minxi Hou
2026-05-12 7:08 ` [PATCH net-next v10 1/2] selftests: openvswitch: add vlan() and encap() flow string parsing Minxi Hou
2026-05-15 0:20 ` patchwork-bot+netdevbpf
2026-05-12 7:08 ` [PATCH net-next v10 2/2] selftests: openvswitch: add pop_vlan test Minxi Hou
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260512063850.1133046-1-houminxi@gmail.com \
--to=houminxi@gmail.com \
--cc=aconole@redhat.com \
--cc=davem@davemloft.net \
--cc=dev@openvswitch.org \
--cc=echaudro@redhat.com \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=i.maximets@ovn.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=shuah@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.