]> git.baikalelectronics.ru Git - kernel.git/commit
Merge branch 'octeon-DMAC'
authorDavid S. Miller <davem@davemloft.net>
Tue, 20 Jul 2021 14:00:45 +0000 (07:00 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 20 Jul 2021 14:00:45 +0000 (07:00 -0700)
commit6f91d7abf1fa6ad47b660f4172463143c8820ee6
treed21a5ca20360cfdad33124985220d09dc149b9d1
parent97d0931f67f3ec50578f39ba90601380c6b50947
parent23109f8dd06d0bd04c9360cf7c501c97b0ab1545
Merge branch 'octeon-DMAC'

Subbaraya Sundeep says:

====================
octeontx2-af: Introduce DMAC based switching

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.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>