68218b87c1
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> |
||
---|---|---|
.. | ||
Makefile | ||
meson.build | ||
rte_eth_bond_8023ad_private.h | ||
rte_eth_bond_8023ad.c | ||
rte_eth_bond_8023ad.h | ||
rte_eth_bond_alb.c | ||
rte_eth_bond_alb.h | ||
rte_eth_bond_api.c | ||
rte_eth_bond_args.c | ||
rte_eth_bond_flow.c | ||
rte_eth_bond_pmd.c | ||
rte_eth_bond_private.h | ||
rte_eth_bond.h | ||
rte_pmd_bond_version.map |