OVS-VLAN-TEST(8)

πŸ’… OVS-VLAN-TEST πŸ’…

okay so bestie, this is the ovs-vlan-test page from Open vSwitch β€” it's the little utility that goes "hey, is your Linux driver being weird about VLAN traffic?" and honestly? iconic diagnostic energy. let's get into it 🫢


✨ NAME ✨

ovs-vlan-test β€” the tool that checks your Linux drivers for problems with vlan traffic. that's it, that's the whole job πŸŽ€


✨ SYNOPSIS ✨

ovs-vlan-test [-s | --server] control_ip vlan_ip

✨ DESCRIPTION ✨

ngl, ovs-vlan-test has some limitations, and we're gonna be upfront about them: for one, it does not use TCP in its tests. also it does not take MTU into account, so potential edge cases can slip right past it πŸ™ˆ. to overcome those limitations a whole new tool was developed β€” ovs-test. only thing is, ovs-test is currently supported only on Debian, so if you can, try to use that one instead of ovs-vlan-test. iykyk πŸ’œ

so what does ovs-vlan-test actually do? the program may be used to check for problems sending 802.1Q traffic, which may occur when running Open vSwitch. these problems can occur when Open vSwitch is used to send 802.1Q traffic through physical interfaces running certain drivers of certain Linux kernel versions. (yes, certain certain. very mysterious. very main character.) πŸ¦‹

to run a test you configure Open vSwitch to tag traffic originating from vlan_ip and forward it out the target interface. then you run ovs-vlan-test in client mode, connecting to an ovs-vlan-test server. and ovs-vlan-test will display OK if it did not detect problems. that OK? absolute serotonin. ✨

some examples of the types of problems that may be encountered are:

  • when NICs use VLAN stripping on receive they must pass a pointer to a vlan_group when reporting the stripped tag to the networking core. if no vlan_group is in use then some drivers just drop the extracted tag πŸ™ˆ. drivers are supposed to only enable stripping if a vlan_group is registered β€” but not all of them do that. not all of them slay, basically.
  • on receive, some drivers handle priority tagged packets specially and don't pass the tag onto the network stack at all, so Open vSwitch never has a chance to see it. literally ghosted πŸ’€
  • some drivers size their receive buffers based on whether a vlan_group is enabled, meaning that a maximum size packet with a VLAN tag will not fit if no vlan_group is configured.
  • on transmit, some drivers expect that VLAN acceleration will be used if it is available, which can only be done if a vlan_group is configured. in these cases, the driver may fail to parse the packet and correctly setup checksum offloading or TSO. 😭

🌸 Client Mode 🌸

an ovs-vlan-test client may be run on a host to check for VLAN connectivity problems. the client must be able to establish HTTP connections with an ovs-vlan-test server located at the specified control_ip address. UDP traffic sourced at vlan_ip should be tagged and directed out the interface whose connectivity is being tested. so it's giving "i'm the one asking the questions" energy πŸ’…

🌸 Server Mode 🌸

to conduct tests, an ovs-vlan-test server must be running on a host known not to have VLAN connectivity problems β€” like, this server is the group chat's emotionally stable friend, it cannot be the messy one. the server must have a control_ip on a non-VLAN network which clients can establish connectivity with. it must also have a vlan_ip address on a VLAN network which clients will use to test their VLAN connectivity. multiple clients may test against a single ovs-vlan-test server concurrently β€” no gatekeeping, everyone gets a turn πŸ‘‘πŸ«Ά


✨ OPTIONS ✨

  • -s, --server β€” run in server mode. yes bestie, be the stable one.
  • -h, --help β€” prints a brief help message to the console.
  • -V, --version β€” prints version information to the console.

✨ EXAMPLES ✨

πŸ¦‹ display the Linux kernel version and driver of eth1:

uname -r
ethtool -i eth1

πŸ¦‹ set up a bridge which forwards traffic originating from 1.2.3.4 out eth1 with VLAN tag 10:

ovs-vsctl -- add-br vlan-br \
  -- add-port vlan-br eth1 \
  -- add-port vlan-br vlan-br-tag tag=10 \
  -- set Interface vlan-br-tag type=internal
ip addr add 1.2.3.4/8 dev vlan-br-tag
ip link set vlan-br-tag up

πŸ¦‹ run an ovs-vlan-test server listening for client control traffic on 172.16.0.142 port 8080 and VLAN traffic on the default port of 1.2.3.3:

ovs-vlan-test -s 172.16.0.142:8080 1.2.3.3

πŸ¦‹ run an ovs-vlan-test client with a control server located at 172.16.0.142 port 8080 and a local VLAN IP of 1.2.3.4:

ovs-vlan-test 172.16.0.142:8080 1.2.3.4

✨ SEE ALSO ✨

ovs-vswitchd(8), ovs-ofctl(8), ovs-vsctl(8), ovs-test, ethtool(8), uname(1)

like, go read those too. they're the friend group. 🌈


✨ AUTHOR ✨

The Open vSwitch Development Community β€” collectively, slay πŸ’œ


2016-2024, The Open vSwitch Development Community


aaaand that's the whole page, bestie!! πŸŽ€ this was Open vSwitch ovs-vlan-test, version 3.6, dated Feb 13, 2026 β€” no cap, go fix those VLAN drivers, ily, bye! πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from