|
@@ -138,6 +138,7 @@ static inline size_t br_port_info_size(void)
|
|
|
+ nla_total_size(1) /* IFLA_BRPORT_PROXYARP */
|
|
|
+ nla_total_size(1) /* IFLA_BRPORT_PROXYARP_WIFI */
|
|
|
+ nla_total_size(1) /* IFLA_BRPORT_VLAN_TUNNEL */
|
|
|
+ + nla_total_size(1) /* IFLA_BRPORT_NEIGH_SUPPRESS */
|
|
|
+ nla_total_size(sizeof(struct ifla_bridge_id)) /* IFLA_BRPORT_ROOT_ID */
|
|
|
+ nla_total_size(sizeof(struct ifla_bridge_id)) /* IFLA_BRPORT_BRIDGE_ID */
|
|
|
+ nla_total_size(sizeof(u16)) /* IFLA_BRPORT_DESIGNATED_PORT */
|
|
@@ -210,7 +211,9 @@ static int br_port_fill_attrs(struct sk_buff *skb,
|
|
|
nla_put_u8(skb, IFLA_BRPORT_CONFIG_PENDING, p->config_pending) ||
|
|
|
nla_put_u8(skb, IFLA_BRPORT_VLAN_TUNNEL, !!(p->flags &
|
|
|
BR_VLAN_TUNNEL)) ||
|
|
|
- nla_put_u16(skb, IFLA_BRPORT_GROUP_FWD_MASK, p->group_fwd_mask))
|
|
|
+ nla_put_u16(skb, IFLA_BRPORT_GROUP_FWD_MASK, p->group_fwd_mask) ||
|
|
|
+ nla_put_u8(skb, IFLA_BRPORT_NEIGH_SUPPRESS,
|
|
|
+ !!(p->flags & BR_NEIGH_SUPPRESS)))
|
|
|
return -EMSGSIZE;
|
|
|
|
|
|
timerval = br_timer_value(&p->message_age_timer);
|
|
@@ -785,6 +788,11 @@ static int br_setport(struct net_bridge_port *p, struct nlattr *tb[])
|
|
|
p->group_fwd_mask = fwd_mask;
|
|
|
}
|
|
|
|
|
|
+ err = br_set_port_flag(p, tb, IFLA_BRPORT_NEIGH_SUPPRESS,
|
|
|
+ BR_NEIGH_SUPPRESS);
|
|
|
+ if (err)
|
|
|
+ return err;
|
|
|
+
|
|
|
br_port_flags_change(p, old_flags ^ p->flags);
|
|
|
return 0;
|
|
|
}
|