This is started from the issue with broken ERSPAN tunnel reported by Eelco, but turned out a much wider problem with ignoring different tunnel keys and flags while constructing TC flower. Some of that can be fixed, some can't be fixed due to lack of support from kernel. Strictly speaking, we should have prohibit silent ignorign of everything including DONT_FRAGMENT and CSUM tunnel flags, but that will break the tunnel offloading entirely. So, partially keeping incorrect behaviour for now, fixing the most broken bits.
To have a more o less viable solution, TC in kernel should add support for TUNNEL_DONT_FRAGMENT in set tunnel key action (also, TUNNEL_OAM support would be nice). And we also need support to match on them, i.e. support for: TCA_FLOWER_KEY_ENC_DONT_FRAGMENT TCA_FLOWER_KEY_ENC_NO_CSUM TCA_FLOWER_KEY_ENC_OAM And corresponding _MASK keys as well. Maybe TCA_FLOWER_KEY_ENC_TUN_FLAGS instead? With that OVS will have to probe the kernel for support and use them or fail the offload. I didn't test these patches much. Only checked a couple of system tests. Ilya Maximets (2): netdev-offload-tc: Fix ignoring unknown tunnel keys. tc: Support masks for tunnel destination ports. lib/dpif-netlink.c | 14 +--------- lib/netdev-offload-tc.c | 61 +++++++++++++++++++++++++++++++++++------ lib/netdev-offload.h | 3 -- lib/tc.c | 11 ++++++-- 4 files changed, 61 insertions(+), 28 deletions(-) -- 2.34.3 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev