On 8/17/22 08:28, Roi Dayan wrote: > > > On 2022-08-14 5:46 PM, Ilya Maximets wrote: >> Current offloading code supports only limited number of tunnel keys >> and silently ignores everything it doesn't understand. This is >> causing, for example, offloaded ERSPAN tunnels to not work, because >> flow is offloaded, but ERSPAN options are not provided to TC. >> >> There is a number of tunnel keys, which are supported by the userspace, >> but silently ignored during offloading: >> >> OVS_TUNNEL_KEY_ATTR_DONT_FRAGMENT >> OVS_TUNNEL_KEY_ATTR_OAM >> OVS_TUNNEL_KEY_ATTR_VXLAN_OPTS >> OVS_TUNNEL_KEY_ATTR_ERSPAN_OPTS >> >> OVS_TUNNEL_KEY_ATTR_CSUM is kind of supported, but only for actions >> and for some reason is set from the tunnel port instead of the >> provided action, and not currently supported for the tunnel key in >> the match. >> >> Addig a default case to fail offloading of unknown attributes. For >> now explicitly allowing incorrect behavior for the DONT_FRAGMENT flag, >> otherwise we'll break all tunnel offloading by default. VXLAN and >> ERSPAN options has to fail offloading, because the tunnel will not >> work otherwise. OAM is not a default configurations, so failing it >> as well. The missing DONT_FRAGMENT flag though should, probably, >> cause frequent flow revalidation, but that is not new with this patch. >> >> Same for the 'match' key, only clearing masks that was actually >> consumed, except for the DONT_FRAGMENT and CSUM flags, which are >> explicitly allowed and highlighted as broken. >> >> Also, destination port as well as CSUM configuration for unknown >> reason was not taken from the actions list and were passed via HW >> offload info instead of being consumed from the set() action. >> >> Reported-at: >> https://mail.openvswitch.org/pipermail/ovs-dev/2022-July/395522.html >> Reported-by: Eelco Chaudron <[email protected]> >> Fixes: 8f283af89298 ("netdev-tc-offloads: Implement netdev flow put using tc >> interface") >> Signed-off-by: Ilya Maximets <[email protected]> >> --- >> lib/dpif-netlink.c | 14 +------ >> lib/netdev-offload-tc.c | 92 +++++++++++++++++++++++++++++++++++------ >> lib/netdev-offload.h | 3 -- >> 3 files changed, 80 insertions(+), 29 deletions(-) > > Reviewed-by: Roi Dayan <[email protected]>
Thanks! Applied the set now. Also backported down to 2.17. Best regards, Ilya Maximets. _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
