John Hurley says,

These patches deal with 'implicit recirculation' on the NFP. This is a
firmware feature whereby a packet egresses to an 'internal' port meaning
that it will recirculate back to the header extract phase with the
'internal' port now marked as its ingress port. This internal port can
then be matched on by another rule. This process simulates how OvS
datapath outputs to an internal port. The FW traces the packet's
recirculation route and sends a 'merge hint' to the driver telling it
which flows it matched against. The driver can then decide if these flows
can be merged to a single rule and offloaded.

The patches deal with the following issues:

- assigning/freeing IDs to/from each of these new internal ports
- offloading rules that match on internal ports
- offloading neighbour table entries whose egress port is internal
- handling fallback traffic with an internal port as ingress
- using merge hints to create 'faster path' flows and tracking stats etc.

John Hurley (11):
  nfp: flower: turn on recirc and merge hint support in firmware
  nfp: flower: allow offloading of matches on 'internal' ports
  nfp: allow fallback packets from non-reprs
  nfp: flower: support fallback packets from internal ports
  nfp: flower: allow tunnels to output to internal port
  nfp: flower: get flows by host context
  nfp: flower: handle merge hint messages
  nfp: flower: validate merge hint flows
  nfp: flower: generate merge flow rule
  nfp: flower: support stats update for merge flows
  nfp: flower: offload merge flows

 drivers/net/ethernet/netronome/nfp/abm/main.c      |   5 +-
 drivers/net/ethernet/netronome/nfp/flower/cmsg.c   |  55 +-
 drivers/net/ethernet/netronome/nfp/flower/cmsg.h   |  19 +
 drivers/net/ethernet/netronome/nfp/flower/main.c   | 149 ++++-
 drivers/net/ethernet/netronome/nfp/flower/main.h   |  69 +++
 drivers/net/ethernet/netronome/nfp/flower/match.c  |   9 +-
 .../net/ethernet/netronome/nfp/flower/metadata.c   | 117 +++-
 .../net/ethernet/netronome/nfp/flower/offload.c    | 606 ++++++++++++++++++++-
 .../ethernet/netronome/nfp/flower/tunnel_conf.c    |  11 +-
 drivers/net/ethernet/netronome/nfp/nfp_app.h       |  13 +-
 .../net/ethernet/netronome/nfp/nfp_net_common.c    |  16 +-
 11 files changed, 1016 insertions(+), 53 deletions(-)

-- 
2.11.0

Reply via email to