mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-14 00:24:15 +08:00
mlxsw: spectrum_span: Change LAG lower selection
When offloading mirror-to-gretap, mlxsw needs to preroute the path that the encapsulated packet will take. That path may include a LAG device above a front panel port. So far, mlxsw resolved the path to the first up front panel slave of the LAG interface, but that only reflects administrative state of the port. It neglects to consider whether the port actually has a carrier, and what the LACP state is. So instead of checking upness of the device, check carrier state and txability. Signed-off-by: Petr Machata <petrm@mellanox.com> Reviewed-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
eeed992b77
commit
b5de82f3df
@ -36,6 +36,7 @@
|
||||
#include <linux/list.h>
|
||||
#include <net/arp.h>
|
||||
#include <net/gre.h>
|
||||
#include <net/lag.h>
|
||||
#include <net/ndisc.h>
|
||||
#include <net/ip6_tunnel.h>
|
||||
|
||||
@ -254,7 +255,9 @@ mlxsw_sp_span_entry_lag(struct net_device *lag_dev)
|
||||
struct list_head *iter;
|
||||
|
||||
netdev_for_each_lower_dev(lag_dev, dev, iter)
|
||||
if ((dev->flags & IFF_UP) && mlxsw_sp_port_dev_check(dev))
|
||||
if (netif_carrier_ok(dev) &&
|
||||
net_lag_port_dev_txable(dev) &&
|
||||
mlxsw_sp_port_dev_check(dev))
|
||||
return dev;
|
||||
|
||||
return NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user