diff options
author | Edward Cree <ecree.xilinx@gmail.com> | 2023-08-07 14:48:10 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2023-08-09 11:14:38 +0100 |
commit | 1dfc29be4d743bba9c249b50acf8e44cb5477624 (patch) | |
tree | 218a67949ff9d88293983815b9e81bfd128f9c49 /drivers/net/ethernet/sfc/tc.h | |
parent | 29416025185383aba51d863b9e9eff234b54d855 (diff) | |
download | lwn-1dfc29be4d743bba9c249b50acf8e44cb5477624.tar.gz lwn-1dfc29be4d743bba9c249b50acf8e44cb5477624.zip |
sfc: conntrack state matches in TC rules
Parse ct_state trk/est, mark and zone out of flower keys, and plumb
them through to the hardware, performing some minor translations.
Nothing can actually hit them yet as we're not offloading any DO_CT
actions.
Reviewed-by: Pieter Jansen van Vuuren <pieter.jansen-van-vuuren@amd.com>
Reviewed-by: Simon Horman <horms@kernel.org>
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 | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/ethernet/sfc/tc.h b/drivers/net/ethernet/sfc/tc.h index af15020c8da7..ce8e30743a3a 100644 --- a/drivers/net/ethernet/sfc/tc.h +++ b/drivers/net/ethernet/sfc/tc.h @@ -60,6 +60,7 @@ struct efx_tc_match_fields { /* L4 */ __be16 l4_sport, l4_dport; /* Ports (UDP, TCP) */ __be16 tcp_flags; + bool tcp_syn_fin_rst; /* true if ANY of SYN/FIN/RST are set */ /* Encap. The following are *outer* fields. Note that there are no * outer eth (L2) fields; this is because TC doesn't have them. */ @@ -68,6 +69,10 @@ struct efx_tc_match_fields { u8 enc_ip_tos, enc_ip_ttl; __be16 enc_sport, enc_dport; __be32 enc_keyid; /* e.g. VNI, VSID */ + /* Conntrack. */ + u16 ct_state_trk:1, ct_state_est:1; + u32 ct_mark; + u16 ct_zone; }; static inline bool efx_tc_match_is_encap(const struct efx_tc_match_fields *mask) |