aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans Schultz <schultz.hans@gmail.com>2022-02-28 14:36:48 +0100
committerDavid Ahern <dsahern@kernel.org>2022-03-04 09:15:50 -0700
commit092af16b7eedb651282b288aa6fa7bdfaa01d588 (patch)
tree7de506273939d723c478545a459ea226f07804ca
parent0e51a185dd529080b5bf41c1346f686d2521dd81 (diff)
downloadiproute2-092af16b7eedb651282b288aa6fa7bdfaa01d588.tar.gz
ip: iplink_bridge_slave: add locked port flag support
Syntax: ip link set dev DEV type bridge_slave locked {on | off} Signed-off-by: Hans Schultz <schultz.hans+netdev@gmail.com> Signed-off-by: David Ahern <dsahern@kernel.org>
-rw-r--r--ip/iplink_bridge_slave.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/ip/iplink_bridge_slave.c b/ip/iplink_bridge_slave.c
index 717875864..da14a95eb 100644
--- a/ip/iplink_bridge_slave.c
+++ b/ip/iplink_bridge_slave.c
@@ -42,6 +42,7 @@ static void print_explain(FILE *f)
" [ neigh_suppress {on | off} ]\n"
" [ vlan_tunnel {on | off} ]\n"
" [ isolated {on | off} ]\n"
+ " [ locked {on | off} ]\n"
" [ backup_port DEVICE ] [ nobackup_port ]\n"
);
}
@@ -278,6 +279,10 @@ static void bridge_slave_print_opt(struct link_util *lu, FILE *f,
print_on_off(PRINT_ANY, "isolated", "isolated %s ",
rta_getattr_u8(tb[IFLA_BRPORT_ISOLATED]));
+ if (tb[IFLA_BRPORT_LOCKED])
+ print_on_off(PRINT_ANY, "locked", "locked %s ",
+ rta_getattr_u8(tb[IFLA_BRPORT_LOCKED]));
+
if (tb[IFLA_BRPORT_BACKUP_PORT]) {
int backup_p = rta_getattr_u32(tb[IFLA_BRPORT_BACKUP_PORT]);
@@ -393,6 +398,10 @@ static int bridge_slave_parse_opt(struct link_util *lu, int argc, char **argv,
NEXT_ARG();
bridge_slave_parse_on_off("isolated", *argv, n,
IFLA_BRPORT_ISOLATED);
+ } else if (matches(*argv, "locked") == 0) {
+ NEXT_ARG();
+ bridge_slave_parse_on_off("locked", *argv, n,
+ IFLA_BRPORT_LOCKED);
} else if (matches(*argv, "backup_port") == 0) {
int ifindex;