From 90306a14402b6a082ab0aac0f5016b2258201220 Mon Sep 17 00:00:00 2001 From: Nikolay Aleksandrov Date: Tue, 16 Apr 2019 16:19:10 +0300 Subject: [PATCH] iplink: bridge: add support for vlan_stats_per_port Add support for manipulating and showing the vlan_stats_per_port bridge option which can be toggled only when there are no port VLANs configured. Also update the man page with the new option. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David Ahern --- ip/iplink_bridge.c | 15 +++++++++++++++ man/man8/ip-link.8.in | 9 +++++++++ 2 files changed, 24 insertions(+) diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c index e9b77fdf..10ba85f6 100644 --- a/ip/iplink_bridge.c +++ b/ip/iplink_bridge.c @@ -41,6 +41,7 @@ static void print_explain(FILE *f) " [ vlan_protocol VLAN_PROTOCOL ]\n" " [ vlan_default_pvid VLAN_DEFAULT_PVID ]\n" " [ vlan_stats_enabled VLAN_STATS_ENABLED ]\n" + " [ vlan_stats_per_port VLAN_STATS_PER_PORT ]\n" " [ mcast_snooping MULTICAST_SNOOPING ]\n" " [ mcast_router MULTICAST_ROUTER ]\n" " [ mcast_query_use_ifaddr MCAST_QUERY_USE_IFADDR ]\n" @@ -175,6 +176,14 @@ static int bridge_parse_opt(struct link_util *lu, int argc, char **argv, invarg("invalid vlan_stats_enabled", *argv); addattr8(n, 1024, IFLA_BR_VLAN_STATS_ENABLED, vlan_stats_enabled); + } else if (matches(*argv, "vlan_stats_per_port") == 0) { + __u8 vlan_stats_per_port; + + NEXT_ARG(); + if (get_u8(&vlan_stats_per_port, *argv, 0)) + invarg("invalid vlan_stats_per_port", *argv); + addattr8(n, 1024, IFLA_BR_VLAN_STATS_PER_PORT, + vlan_stats_per_port); } else if (matches(*argv, "mcast_router") == 0) { __u8 mcast_router; @@ -521,6 +530,12 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[]) "vlan_stats_enabled %u ", rta_getattr_u8(tb[IFLA_BR_VLAN_STATS_ENABLED])); + if (tb[IFLA_BR_VLAN_STATS_PER_PORT]) + print_uint(PRINT_ANY, + "vlan_stats_per_port", + "vlan_stats_per_port %u ", + rta_getattr_u8(tb[IFLA_BR_VLAN_STATS_PER_PORT])); + if (tb[IFLA_BR_GROUP_FWD_MASK]) print_0xhex(PRINT_ANY, "group_fwd_mask", diff --git a/man/man8/ip-link.8.in b/man/man8/ip-link.8.in index 2411d43e..628a3651 100644 --- a/man/man8/ip-link.8.in +++ b/man/man8/ip-link.8.in @@ -1392,6 +1392,8 @@ the following additional arguments are supported: ] [ .BI vlan_stats_enabled " VLAN_STATS_ENABLED " ] [ +.BI vlan_stats_per_port " VLAN_STATS_PER_PORT " +] [ .BI mcast_snooping " MULTICAST_SNOOPING " ] [ .BI mcast_router " MULTICAST_ROUTER " @@ -1503,6 +1505,13 @@ or disable .RI ( VLAN_STATS_ENABLED " == 0) " per-VLAN stats accounting. +.BI vlan_stats_per_port " VLAN_STATS_PER_PORT " +- enable +.RI ( VLAN_STATS_PER_PORT " == 1) " +or disable +.RI ( VLAN_STATS_PER_PORT " == 0) " +per-VLAN per-port stats accounting. Can be changed only when there are no port VLANs configured. + .BI mcast_snooping " MULTICAST_SNOOPING " - turn multicast snooping on .RI ( MULTICAST_SNOOPING " > 0) " -- 2.39.5