Commit c3055246 authored by Anuradha Karuppiah's avatar Anuradha Karuppiah Committed by David S. Miller

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: default avatarAnuradha Karuppiah <anuradhak@cumulusnetworks.com>
Signed-off-by: default avatarAndy Gospodarek <gospo@cumulusnetworks.com>
Signed-off-by: default avatarRoopa Prabhu <roopa@cumulusnetworks.com>
Signed-off-by: default avatarWilson Kok <wkok@cumulusnetworks.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 88d6378b
......@@ -4015,6 +4015,7 @@ static int rocker_port_open(struct net_device *dev)
napi_enable(&rocker_port->napi_tx);
napi_enable(&rocker_port->napi_rx);
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,
};
/********************
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment