]> www.infradead.org Git - users/jedix/linux-maple.git/commit
gve: Add flow steering ethtool support
authorJeroen de Borst <jeroendb@google.com>
Tue, 25 Jun 2024 00:12:31 +0000 (00:12 +0000)
committerJakub Kicinski <kuba@kernel.org>
Wed, 26 Jun 2024 00:48:33 +0000 (17:48 -0700)
commit6f3bc487565d30ae9535e338efad213dd74c04ec
tree74478f785ba09d99c77fd4fee9a401cfda284274
parent57718b60df9b67366291d1e4ce3e5dde7a7cf5a5
gve: Add flow steering ethtool support

Implement the ethtool commands that can be used to configure and query
flow-steering rules.

A large part of this change consists of translating the ethtool
representation of 'ntuples' to our internal gve_flow_rule and vice-versa
in the new created gve_flow_rule.c

Considering the possible large amount of flow rules, the driver doesn't
store all the rules locally. When the user runs 'ethtool -n <nic>' to
check the registered rules, the driver will send adminq command to
query a limited amount of rules/rule ids(that filled in a 4096 bytes dma
memory) at a time as a cache for the ethtool queries. The adminq query
commands will be repeated for several times until the ethtool has
queried all the needed rules.

Signed-off-by: Jeroen de Borst <jeroendb@google.com>
Co-developed-by: Ziwei Xiao <ziweixiao@google.com>
Signed-off-by: Ziwei Xiao <ziweixiao@google.com>
Reviewed-by: Praveen Kaligineedi <pkaligineedi@google.com>
Reviewed-by: Harshitha Ramamurthy <hramamurthy@google.com>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Link: https://patch.msgid.link/20240625001232.1476315-6-ziweixiao@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/google/gve/Makefile
drivers/net/ethernet/google/gve/gve.h
drivers/net/ethernet/google/gve/gve_ethtool.c
drivers/net/ethernet/google/gve/gve_flow_rule.c [new file with mode: 0644]
drivers/net/ethernet/google/gve/gve_main.c