numam-dpdk/drivers/net/bonding
David Marchand 68218b87c1 net/bonding: prefer allmulti to promiscuous for LACP
Rather than the global promiscuous mode on all slaves, let's try to use
allmulti.
To do this, we apply the same mechanism than for promiscuous and drop in
rx_burst.

When adding a slave, we first try to use allmulti, else we try
promiscuous.
Because of this, we must be able to handle allmulti on the bonding
interface, so the associated dev_ops is added with checks on which mode
has been applied on each slave.

Rather than add a new flag in the bond private structure, we can remove
promiscuous_en since ethdev already maintains this information.
When starting the bond device, there is no promisc/allmulti re-apply
as, again, ethdev does this itself.

On reception, we must inspect if the packets are multicast or unicast
and take a decision to drop based on which mode has been enabled on the
bonding interface.

Note: in the future, if we define an API so that we can add/remove mc
addresses to a port (rather than the current global set_mc_addr_list
API), we can refine this to only register the LACP multicast mac
address.

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Chas Williams <chas3@att.com>
2019-08-22 18:45:49 +02:00
..
Makefile net/bonding: use new ethernet address parser 2019-07-08 21:26:52 +02:00
meson.build net/bonding: use new ethernet address parser 2019-07-08 21:26:52 +02:00
rte_eth_bond_8023ad_private.h net/bonding: prefer allmulti to promiscuous for LACP 2019-08-22 18:45:49 +02:00
rte_eth_bond_8023ad.c net/bonding: prefer allmulti to promiscuous for LACP 2019-08-22 18:45:49 +02:00
rte_eth_bond_8023ad.h net: add rte prefix to ether structures 2019-05-24 13:34:45 +02:00
rte_eth_bond_alb.c net: replace IPv4/v6 constants with uppercase name 2019-06-03 16:54:54 +02:00
rte_eth_bond_alb.h net: add rte prefix to ether structures 2019-05-24 13:34:45 +02:00
rte_eth_bond_api.c net: add rte prefix to ether structures 2019-05-24 13:34:45 +02:00
rte_eth_bond_args.c net/bonding: use dynamic log type for error message 2019-07-23 14:31:35 +02:00
rte_eth_bond_flow.c net/bonding: switch to flow API object conversion function 2018-10-11 18:53:49 +02:00
rte_eth_bond_pmd.c net/bonding: prefer allmulti to promiscuous for LACP 2019-08-22 18:45:49 +02:00
rte_eth_bond_private.h net/bonding: prefer allmulti to promiscuous for LACP 2019-08-22 18:45:49 +02:00
rte_eth_bond.h net: add rte prefix to ether structures 2019-05-24 13:34:45 +02:00
rte_pmd_bond_version.map fix indentation in symbol maps 2018-11-26 20:16:46 +01:00