lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Sat, 20 Apr 2019 11:45:37 +0100
From:   Mike Manning <mmanning@...tta.att-mail.com>
To:     netdev@...r.kernel.org, nikolay@...ulusnetworks.com,
        roopa@...ulusnetworks.com
Subject: [PATCH iproute2-next] iplink_vlan: add support for VLAN bridge binding flag

This patch adds support for the VLAN bridge binding flag that is
provided in net-next kernel by the series merged by 1ab839281cf7
("net-support-binding-vlan-dev-link-state-to-vlan-member-bridge-ports")

Signed-off-by: Mike Manning <mmanning@...tta.att-mail.com>
---
 include/uapi/linux/if_vlan.h |  9 +++++----
 ip/iplink_vlan.c             | 11 +++++++++++
 man/man8/ip-link.8.in        |  7 +++++++
 3 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/include/uapi/linux/if_vlan.h b/include/uapi/linux/if_vlan.h
index 18a15dad..04bca79d 100644
--- a/include/uapi/linux/if_vlan.h
+++ b/include/uapi/linux/if_vlan.h
@@ -32,10 +32,11 @@ enum vlan_ioctl_cmds {
 };
 
 enum vlan_flags {
-	VLAN_FLAG_REORDER_HDR	= 0x1,
-	VLAN_FLAG_GVRP		= 0x2,
-	VLAN_FLAG_LOOSE_BINDING	= 0x4,
-	VLAN_FLAG_MVRP		= 0x8,
+	VLAN_FLAG_REORDER_HDR		= 0x1,
+	VLAN_FLAG_GVRP			= 0x2,
+	VLAN_FLAG_LOOSE_BINDING		= 0x4,
+	VLAN_FLAG_MVRP			= 0x8,
+	VLAN_FLAG_BRIDGE_BINDING	= 0x10,
 };
 
 enum vlan_name_types {
diff --git a/ip/iplink_vlan.c b/ip/iplink_vlan.c
index 08e49956..26f6ee83 100644
--- a/ip/iplink_vlan.c
+++ b/ip/iplink_vlan.c
@@ -27,6 +27,7 @@ static void print_explain(FILE *f)
 		"                [ gvrp { on | off } ]\n"
 		"                [ mvrp { on | off } ]\n"
 		"                [ loose_binding { on | off } ]\n"
+		"                [ bridge_binding { on | off } ]\n"
 		"                [ ingress-qos-map QOS-MAP ]\n"
 		"                [ egress-qos-map QOS-MAP ]\n"
 		"\n"
@@ -134,6 +135,15 @@ static int vlan_parse_opt(struct link_util *lu, int argc, char **argv,
 				flags.flags &= ~VLAN_FLAG_LOOSE_BINDING;
 			else
 				return on_off("loose_binding", *argv);
+		} else if (matches(*argv, "bridge_binding") == 0) {
+			NEXT_ARG();
+			flags.mask |= VLAN_FLAG_BRIDGE_BINDING;
+			if (strcmp(*argv, "on") == 0)
+				flags.flags |= VLAN_FLAG_BRIDGE_BINDING;
+			else if (strcmp(*argv, "off") == 0)
+				flags.flags &= ~VLAN_FLAG_BRIDGE_BINDING;
+			else
+				return on_off("bridge_binding", *argv);
 		} else if (matches(*argv, "ingress-qos-map") == 0) {
 			NEXT_ARG();
 			if (vlan_parse_qos_map(&argc, &argv, n,
@@ -204,6 +214,7 @@ static void vlan_print_flags(FILE *fp, __u32 flags)
 	_PF(GVRP);
 	_PF(MVRP);
 	_PF(LOOSE_BINDING);
+	_PF(BRIDGE_BINDING);
 #undef _PF
 	if (flags)
 		print_hex(PRINT_ANY, NULL, "%x", flags);
diff --git a/man/man8/ip-link.8.in b/man/man8/ip-link.8.in
index 2411d43e..53da9184 100644
--- a/man/man8/ip-link.8.in
+++ b/man/man8/ip-link.8.in
@@ -406,6 +406,9 @@ the following additional arguments are supported:
 .BR loose_binding " { " on " | " off " } "
 ]
 [
+.BR bridge_binding " { " on " | " off " } "
+]
+[
 .BI ingress-qos-map " QOS-MAP "
 ]
 [
@@ -459,6 +462,10 @@ where <phy_dev> is the physical device to which VLAN device is bound.
 .BR loose_binding " { " on " | " off " } "
 - specifies whether the VLAN device state is bound to the physical device state.
 
+.BR bridge_binding " { " on " | " off " } "
+- specifies whether the VLAN device link state tracks the state of bridge ports
+that are members of the VLAN.
+
 .BI ingress-qos-map " QOS-MAP "
 - defines a mapping of VLAN header prio field to the Linux internal packet
 priority on incoming frames. The format is FROM:TO with multiple mappings
-- 
2.11.0

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ