mirror of
https://github.com/torvalds/linux
synced 2024-09-30 16:29:47 +00:00
rocker: Handle protodown notifications.
protodown can be set by user space applications like MLAG on detecting errors on a switch port. This patch provides sample switch driver changes for handling protodown. Rocker PHYS disables the port in response to protodown. Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com> Signed-off-by: Andy Gospodarek <gospo@cumulusnetworks.com> Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com> Signed-off-by: Wilson Kok <wkok@cumulusnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
88d6378bd6
commit
c305524617
|
@ -4015,7 +4015,8 @@ static int rocker_port_open(struct net_device *dev)
|
|||
|
||||
napi_enable(&rocker_port->napi_tx);
|
||||
napi_enable(&rocker_port->napi_rx);
|
||||
rocker_port_set_enable(rocker_port, true);
|
||||
if (!dev->proto_down)
|
||||
rocker_port_set_enable(rocker_port, true);
|
||||
netif_start_queue(dev);
|
||||
return 0;
|
||||
|
||||
|
@ -4227,6 +4228,17 @@ static int rocker_port_get_phys_port_name(struct net_device *dev,
|
|||
return err ? -EOPNOTSUPP : 0;
|
||||
}
|
||||
|
||||
static int rocker_port_change_proto_down(struct net_device *dev,
|
||||
bool proto_down)
|
||||
{
|
||||
struct rocker_port *rocker_port = netdev_priv(dev);
|
||||
|
||||
if (rocker_port->dev->flags & IFF_UP)
|
||||
rocker_port_set_enable(rocker_port, !proto_down);
|
||||
rocker_port->dev->proto_down = proto_down;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct net_device_ops rocker_port_netdev_ops = {
|
||||
.ndo_open = rocker_port_open,
|
||||
.ndo_stop = rocker_port_stop,
|
||||
|
@ -4240,6 +4252,7 @@ static const struct net_device_ops rocker_port_netdev_ops = {
|
|||
.ndo_fdb_del = switchdev_port_fdb_del,
|
||||
.ndo_fdb_dump = switchdev_port_fdb_dump,
|
||||
.ndo_get_phys_port_name = rocker_port_get_phys_port_name,
|
||||
.ndo_change_proto_down = rocker_port_change_proto_down,
|
||||
};
|
||||
|
||||
/********************
|
||||
|
|
Loading…
Reference in a new issue