mbox series

[net-next,0/6] nfp: flower: add support for multi-zone conntrack

Message ID 20230314063610.10544-1-louis.peens@corigine.com (mailing list archive)
Headers show
Series nfp: flower: add support for multi-zone conntrack | expand

Message

Louis Peens March 14, 2023, 6:36 a.m. UTC
This series add changes to support offload of connection tracking across
multiple zones. Previously the driver only supported offloading of a
single goto_chain, spanning a single zone. This was implemented by
merging a pre_ct rule, post_ct rule and the nft rule. This series
provides updates to let the original post_ct rule act as the new pre_ct
rule for a next set of merges if it contains another goto and
conntrack action. In pseudo-tc rule format this adds support for:

    ingress chain 0 proto ip flower
        action ct zone 1 pipe action goto 1

    ingress chain 1 proto ip flower ct_state +tr+new ct_zone 1
        action ct_clear pipe action ct zone 2 pipe action goto 2
    ingress chain 1 proto ip flower ct_state +tr+est ct_zone 1
        action ct_clear pipe action ct zone 2 pipe action goto 2

    ingress chain 2 proto ip flower ct_state +tr+new ct_zone 2
        action mirred egress redirect dev ...
    ingress chain 2 proto ip flower ct_state +tr+est ct_zone 2
        action mirred egress redirect dev ...

This can continue for up to a maximum of 4 zone recirculations.

The first few patches are some smaller preparation patches while the
last one introduces the functionality.

Wentao Jia (6):
  nfp: flower: add get_flow_act_ct() for ct action
  nfp: flower: refactor function "is_pre_ct_flow"
  nfp: flower: refactor function "is_post_ct_flow"
  nfp: flower: add goto_chain_index for ct entry
  nfp: flower: prepare for parameterisation of number of offload rules
  nfp: flower: offload tc flows of multiple conntrack zones

 .../ethernet/netronome/nfp/flower/conntrack.c | 260 ++++++++++++++----
 .../ethernet/netronome/nfp/flower/conntrack.h |  32 ++-
 .../ethernet/netronome/nfp/flower/offload.c   |   2 +-
 3 files changed, 230 insertions(+), 64 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org March 16, 2023, 5:30 a.m. UTC | #1
Hello:

This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Tue, 14 Mar 2023 08:36:04 +0200 you wrote:
> This series add changes to support offload of connection tracking across
> multiple zones. Previously the driver only supported offloading of a
> single goto_chain, spanning a single zone. This was implemented by
> merging a pre_ct rule, post_ct rule and the nft rule. This series
> provides updates to let the original post_ct rule act as the new pre_ct
> rule for a next set of merges if it contains another goto and
> conntrack action. In pseudo-tc rule format this adds support for:
> 
> [...]

Here is the summary with links:
  - [net-next,1/6] nfp: flower: add get_flow_act_ct() for ct action
    https://git.kernel.org/netdev/net-next/c/8a8db7aeaa6d
  - [net-next,2/6] nfp: flower: refactor function "is_pre_ct_flow"
    https://git.kernel.org/netdev/net-next/c/cee7b339d806
  - [net-next,3/6] nfp: flower: refactor function "is_post_ct_flow"
    https://git.kernel.org/netdev/net-next/c/0b8d953cce26
  - [net-next,4/6] nfp: flower: add goto_chain_index for ct entry
    https://git.kernel.org/netdev/net-next/c/3e44d19934b9
  - [net-next,5/6] nfp: flower: prepare for parameterisation of number of offload rules
    https://git.kernel.org/netdev/net-next/c/46a83c85b683
  - [net-next,6/6] nfp: flower: offload tc flows of multiple conntrack zones
    https://git.kernel.org/netdev/net-next/c/a87ceb3d42af

You are awesome, thank you!