Subject: Re: [PATCH net-next v6 0/2] selftests: openvswitch: add pop_vlan test

From: Aaron Conole <[email-masked]>
Date: Wed, 06 May 2026 11:39:09 -0400

Hi Minxi,

Minxi Hou <[email-masked]> writes:

> 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) and removes the unnecessary MAX_ENCAP_DEPTH limit.
> 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).
>
> v6:
>   - fix non-ASCII characters (em dashes) in comments and commit
>     messages

I just commented on v5, and I think those comments still apply.

In the future, if you will respin a series that hasn't gotten comments
yet, it would be preferable to reply to that series somewhere saying
that you will respin so we can make sure to always reply to the latest.

> v5: https://lore.kernel.org/netdev/[email-masked]/
>   - 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/[email-masked]/
>   - fix all checkpatch line-length warnings in new code
>   - fix pylint W0707: use explicit exception chaining (from exc)
> v3: https://lore.kernel.org/netdev/[email-masked]/
>   - 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
>   - start_capture: || return $? to propagate ksft_skip correctly
>   - on_exit: moved after resource creation, not before
>   - ping success: changed from NOTE to FAIL + return 1
>   - VLAN interface creation: added || return 1 error propagation
>   - netns probe: distinguish EEXIST from missing CONFIG_NET_NS
>   - sbx_add: || return $ksft_skip -> || return $? (match sibling tests)
> v2: https://lore.kernel.org/netdev/[email-masked]/
>
> Minxi Hou (2):
>   selftests: openvswitch: add vlan() and encap() flow string parsing
>   selftests: openvswitch: add pop_vlan test
>
>  .../selftests/net/openvswitch/openvswitch.sh  |  77 +++++
>  .../selftests/net/openvswitch/ovs-dpctl.py    | 322 +++++++++++++++++-
>  2 files changed, 389 insertions(+), 10 deletions(-)