mbox series

[net-next,0/3] octeontx2-af: Introduce DMAC based switching

Message ID 1626685174-4766-1-git-send-email-sbhatta@marvell.com (mailing list archive)
Headers show
Series octeontx2-af: Introduce DMAC based switching | expand

Message

Subbaraya Sundeep July 19, 2021, 8:59 a.m. UTC
With this patch set packets can be switched between
all CGX mapped PFs and VFs in the system based on
the DMAC addresses. To implement this:
AF allocates high priority rules from top entry(0) in MCAM.
Rules are allocated for all the CGX mapped PFs and VFs though
they are not active and with no NIXLFs attached.
Rules for a PF/VF will be enabled only after they are brought up.
Two rules one for TX and one for RX are allocated for each PF/VF.

A packet sent from a PF/VF with a destination mac of another
PF/VF will be hit by TX rule and sent to LBK channel 63. The
same returned packet will be hit by RX rule whose action is
to forward packet to PF/VF with that destination mac.

Implementation of this for 98xx is tricky since there are
two NIX blocks and till now a PF/VF can install rule for
an NIX0/1 interface only if it is mapped to corresponding NIX0/1 block.
Hence Tx rules are modified such that TX interface in MCAM
entry can be either NIX0-TX or NIX1-TX.

Testing:

1. Create two VFs over PF1(on NIX0) and assign two VFs to two VMs
2. Assign ip addresses to two VFs in VMs and PF2(on NIX1) in host.
3. Assign static arp entries in two VMs and PF2.
4. Ping between VMs and host PF2.


Thanks,
Sundeep


Subbaraya Sundeep (3):
  octeontx2-af: Enable transmit side LBK link
  octeontx2-af: Prepare for allocating MCAM rules for AF
  octeontx2-af: Introduce internal packet switching

 drivers/net/ethernet/marvell/octeontx2/af/Makefile |   2 +-
 drivers/net/ethernet/marvell/octeontx2/af/rvu.c    |  10 +-
 drivers/net/ethernet/marvell/octeontx2/af/rvu.h    |  21 ++
 .../net/ethernet/marvell/octeontx2/af/rvu_cgx.c    |   3 +
 .../ethernet/marvell/octeontx2/af/rvu_debugfs.c    |   5 +-
 .../ethernet/marvell/octeontx2/af/rvu_devlink.c    |  48 +++-
 .../net/ethernet/marvell/octeontx2/af/rvu_nix.c    |  36 +++
 .../net/ethernet/marvell/octeontx2/af/rvu_npc.c    |  47 +++-
 .../net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c |  29 ++-
 .../net/ethernet/marvell/octeontx2/af/rvu_switch.c | 258 +++++++++++++++++++++
 10 files changed, 427 insertions(+), 32 deletions(-)
 create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/rvu_switch.c