[IFLA_BRPORT_GUARD] = { .type = NLA_U8 },
[IFLA_BRPORT_PROTECT] = { .type = NLA_U8 },
[IFLA_BRPORT_FAST_LEAVE] = { .type = NLA_U8 },
+ [IFLA_BRPORT_LEARNING] = { .type = NLA_U8 },
+ [IFLA_BRPORT_LEARNING_SYNC] = { .type = NLA_U8 },
+ [IFLA_BRPORT_UNICAST_FLOOD] = { .type = NLA_U8 },
};
static void check_flag(struct rtnl_link *link, struct nlattr *attrs[],
check_flag(link, br_attrs, IFLA_BRPORT_GUARD, RTNL_BRIDGE_BPDU_GUARD);
check_flag(link, br_attrs, IFLA_BRPORT_PROTECT, RTNL_BRIDGE_ROOT_BLOCK);
check_flag(link, br_attrs, IFLA_BRPORT_FAST_LEAVE, RTNL_BRIDGE_FAST_LEAVE);
+ check_flag(link, br_attrs, IFLA_BRPORT_UNICAST_FLOOD,
+ RTNL_BRIDGE_UNICAST_FLOOD);
+ check_flag(link, br_attrs, IFLA_BRPORT_LEARNING, RTNL_BRIDGE_LEARNING);
+ check_flag(link, br_attrs, IFLA_BRPORT_LEARNING_SYNC,
+ RTNL_BRIDGE_LEARNING_SYNC);
return 0;
}
NLA_PUT_U8(msg, IFLA_BRPORT_PROTECT,
bd->b_flags & RTNL_BRIDGE_ROOT_BLOCK);
}
+ if (bd->b_flags_mask & RTNL_BRIDGE_UNICAST_FLOOD) {
+ NLA_PUT_U8(msg, IFLA_BRPORT_UNICAST_FLOOD,
+ bd->b_flags & RTNL_BRIDGE_UNICAST_FLOOD);
+ }
+ if (bd->b_flags_mask & RTNL_BRIDGE_LEARNING) {
+ NLA_PUT_U8(msg, IFLA_BRPORT_LEARNING,
+ bd->b_flags & RTNL_BRIDGE_LEARNING);
+ }
+ if (bd->b_flags_mask & RTNL_BRIDGE_LEARNING_SYNC) {
+ NLA_PUT_U8(msg, IFLA_BRPORT_LEARNING_SYNC,
+ bd->b_flags & RTNL_BRIDGE_LEARNING_SYNC);
+ }
}
if (bd->ce_mask & BRIDGE_ATTR_COST)
* - RTNL_BRIDGE_BPDU_GUARD
* - RTNL_BRIDGE_ROOT_BLOCK
* - RTNL_BRIDGE_FAST_LEAVE
+ * - RTNL_BRIDGE_UNICAST_FLOOD
+ * - RTNL_BRIDGE_LEARNING
+ * - RTNL_BRIDGE_LEARNING_SYNC
*
* @see rtnl_link_bridge_unset_flags()
* @see rtnl_link_bridge_get_flags()
__ADD(RTNL_BRIDGE_BPDU_GUARD, bpdu_guard),
__ADD(RTNL_BRIDGE_ROOT_BLOCK, root_block),
__ADD(RTNL_BRIDGE_FAST_LEAVE, fast_leave),
+ __ADD(RTNL_BRIDGE_UNICAST_FLOOD, flood),
+ __ADD(RTNL_BRIDGE_LEARNING, learning),
+ __ADD(RTNL_BRIDGE_LEARNING_SYNC, learning_sync),
};
/**