nfp: flower: support case of match on ct_state(0/0x3f)
authorWenjuan Geng <wenjuan.geng@corigine.com>
Tue, 23 Aug 2022 09:01:22 +0000 (11:01 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 25 Aug 2022 09:03:25 +0000 (11:03 +0200)
commitff763011ee7be4736cd65026d479caa4a2996355
tree9e79cf4cce79a38cff4f2479c5efeb107e21e86f
parent35ffb66547295c72650978f9c28e670e014d0957
nfp: flower: support case of match on ct_state(0/0x3f)

is_post_ct_flow() function will process only ct_state ESTABLISHED,
then offload_pre_check() function will check FLOW_DISSECTOR_KEY_CT flag.
When config tc filter match ct_state(0/0x3f), dissector->used_keys
with FLOW_DISSECTOR_KEY_CT bit, function offload_pre_check() will
return false, so not offload. This is a special case that can be handled
safely.

Therefore, modify to let initial packet which won't go through conntrack
can be offloaded, as long as the cared ct fields are all zero.

Signed-off-by: Wenjuan Geng <wenjuan.geng@corigine.com>
Reviewed-by: Louis Peens <louis.peens@corigine.com>
Signed-off-by: Simon Horman <simon.horman@corigine.com>
Link: https://lore.kernel.org/r/20220823090122.403631-1-simon.horman@corigine.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/netronome/nfp/flower/offload.c