diff options
author | Edward Cree <ecree.xilinx@gmail.com> | 2022-09-26 19:57:33 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2022-09-28 09:43:22 +0100 |
commit | 7c9d266d8faffab935fb7b30056a476289c2a4a3 (patch) | |
tree | 95e45fc474760fccb8ff4736589c04181f27cd48 /drivers/net/ethernet/sfc/tc.h | |
parent | 5b2e12d51bd8efaf0be8309d5b2c716ad848cb37 (diff) | |
download | lwn-7c9d266d8faffab935fb7b30056a476289c2a4a3.tar.gz lwn-7c9d266d8faffab935fb7b30056a476289c2a4a3.zip |
sfc: optional logging of TC offload errors
TC offload support will involve complex limitations on what matches and
actions a rule can do, in some cases potentially depending on rules
already offloaded. So add an ethtool private flag "log-tc-errors" which
controls reporting the reasons for un-offloadable TC rules at NETIF_INFO.
Signed-off-by: Edward Cree <ecree.xilinx@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/sfc/tc.h')
-rw-r--r-- | drivers/net/ethernet/sfc/tc.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/net/ethernet/sfc/tc.h b/drivers/net/ethernet/sfc/tc.h index 7b1a6fa0097d..3e2299c5a885 100644 --- a/drivers/net/ethernet/sfc/tc.h +++ b/drivers/net/ethernet/sfc/tc.h @@ -14,6 +14,24 @@ #include <net/flow_offload.h> #include "net_driver.h" +/* Error reporting: convenience macros. For indicating why a given filter + * insertion is not supported; errors in internal operation or in the + * hardware should be netif_err()s instead. + */ +/* Used when error message is constant. */ +#define EFX_TC_ERR_MSG(efx, extack, message) do { \ + NL_SET_ERR_MSG_MOD(extack, message); \ + if (efx->log_tc_errs) \ + netif_info(efx, drv, efx->net_dev, "%s\n", message); \ +} while (0) +/* Used when error message is not constant; caller should also supply a + * constant extack message with NL_SET_ERR_MSG_MOD(). + */ +#define efx_tc_err(efx, fmt, args...) do { \ +if (efx->log_tc_errs) \ + netif_info(efx, drv, efx->net_dev, fmt, ##args);\ +} while (0) + struct efx_tc_action_set { u16 deliver:1; u32 dest_mport; |