Jakub Kicinski kuba@kernel.org writes:
On Thu, 25 Apr 2024 19:57:19 +0100 Simon Horman wrote:
openvswitch.sh does not appear to have any dependencies on Open vSwitch user-space. My understanding is that, rather, it makes use of tools/testing/selftests/net/openvswitch/ovs-dpctl.py to talk to the Kernel using Netlink (which is also what Open vSwitch user-space does).
My brief testing indicates that for this the only dependencies when running on Amazon Linux 2 are python3 and pyroute2.
I think that it should be possible to port pmtu.sh to use ovs-dpctl.py. This would require some enhancements to ovs-dpctl.py to handle adding the tunnel vports (interfaces).
I have some work from some time back:
https://github.com/apconole/linux-next-work/commit/61d2b9fc68a4e3fc950a24b06...
https://github.com/apconole/linux-next-work/commit/7262107de7170d44b6dbf6c5e...
https://github.com/apconole/linux-next-work/commit/af5338c9044660fa0eaaa9676...
I was using it to try and build up a test to check recursions in the datapath, but didn't get a chance to finish.
BUT most of the stuff is there, just needs to be cleaned up. It would at least cover the classic case, but the LWT support needs to be added.
As an aside, to run the Open vSwitch tests in pmtu.sh the openvswitch kernel module is needed. So I think it would make sense to add CONFIG_OPENVSWITCH to tools/testing/selftests/net/config.
That would mean that tools/testing/selftests/net/config also has all the requirements to run openvswitch.sh. If so, we probably wouldn't need to add tools/testing/selftests/net/openvswitch/config or otherwise do anything special to configure the kernel for openvswitch.sh.
That sounds great, for simplicity we could move the ovs files down to the .../net/ directory. It'd be cool to not have to do that, and let us separate tests more clearly into directories. But right now every directory has its own runner so there's a high price to pay for a primarily aesthetic gain :(
Either one would work for me. I will repost the RFC addressing some of the comments. It should be runnable in a bare VM that has the required python packages that Simon notes (pyroute2 and python3).