Commit 6ac311ae authored by Elad Raz's avatar Elad Raz Committed by David S. Miller
Browse files

Adding switchdev ageing notification on port bridged



Configure ageing time to the HW for newly bridged device

CC: Scott Feldman <sfeldma@gmail.com>
CC: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: default avatarElad Raz <eladr@mellanox.com>
Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
Acked-by: default avatarScott Feldman <sfeldma@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent eb9fae32
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#include <linux/kmod.h> #include <linux/kmod.h>
#include <linux/etherdevice.h> #include <linux/etherdevice.h>
#include <linux/rtnetlink.h> #include <linux/rtnetlink.h>
#include <net/switchdev.h>
#include "br_private.h" #include "br_private.h"
#include "br_private_stp.h" #include "br_private_stp.h"
...@@ -35,11 +36,22 @@ static inline port_id br_make_port_id(__u8 priority, __u16 port_no) ...@@ -35,11 +36,22 @@ static inline port_id br_make_port_id(__u8 priority, __u16 port_no)
/* called under bridge lock */ /* called under bridge lock */
void br_init_port(struct net_bridge_port *p) void br_init_port(struct net_bridge_port *p)
{ {
struct switchdev_attr attr = {
.id = SWITCHDEV_ATTR_ID_BRIDGE_AGEING_TIME,
.flags = SWITCHDEV_F_SKIP_EOPNOTSUPP | SWITCHDEV_F_DEFER,
.u.ageing_time = p->br->ageing_time,
};
int err;
p->port_id = br_make_port_id(p->priority, p->port_no); p->port_id = br_make_port_id(p->priority, p->port_no);
br_become_designated_port(p); br_become_designated_port(p);
br_set_state(p, BR_STATE_BLOCKING); br_set_state(p, BR_STATE_BLOCKING);
p->topology_change_ack = 0; p->topology_change_ack = 0;
p->config_pending = 0; p->config_pending = 0;
err = switchdev_port_attr_set(p->dev, &attr);
if (err)
netdev_err(p->dev, "failed to set HW ageing time\n");
} }
/* called under bridge lock */ /* called under bridge lock */
......
Supports Markdown
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