sfc: use a dynamic m-port for representor RX and set it promisc
authorEdward Cree <ecree.xilinx@gmail.com>
Thu, 28 Jul 2022 18:57:51 +0000 (19:57 +0100)
committerJakub Kicinski <kuba@kernel.org>
Sat, 30 Jul 2022 04:22:07 +0000 (21:22 -0700)
commite37f3b1561a038c0630e7364740d6d55f2b5d5b5
tree2c2af3041ec49c5c3dd476db0892a159a71fa400
parent77eb40749d73fe347c47d6903874a924840ff8d5
sfc: use a dynamic m-port for representor RX and set it promisc

Representors do not want to be subject to the PF's Ethernet address
 filters, since traffic from VFs will typically have a destination
 either elsewhere on the link segment or on an overlay network.
So, create a dynamic m-port with promiscuous and all-multicast
 filters, and set it as the egress port of representor default rules.
 Since the m-port is an alias of the calling PF's own m-port, traffic
 will still be delivered to the PF's RXQs, but it will be subject to
 the VNRX filter rules installed on the dynamic m-port (specified by
 the v-port ID field of the filter spec).

Signed-off-by: Edward Cree <ecree.xilinx@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/sfc/ef100_nic.c
drivers/net/ethernet/sfc/filter.h
drivers/net/ethernet/sfc/mae.c
drivers/net/ethernet/sfc/mae.h
drivers/net/ethernet/sfc/mcdi_filters.c
drivers/net/ethernet/sfc/tc.c
drivers/net/ethernet/sfc/tc.h