* [PATCH iproute2 00/21] bridge: complete netlink support
@ 2016-02-08 11:55 Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 01/21] iplink: bridge: export bridge_id and designated_root Nikolay Aleksandrov
` (20 more replies)
0 siblings, 21 replies; 27+ messages in thread
From: Nikolay Aleksandrov @ 2016-02-08 11:55 UTC (permalink / raw)
To: netdev; +Cc: roopa, stephen, Nikolay Aleksandrov
From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Hi,
After I added support for all attributes in the kernel, it's time to make
use of them in iproute2. I've tested changing/viewing all of the
attributes. I'll send a separate set to add support for the ports
attributes.
For the future, adding a switch to change to "seconds.milliseconds" format
for the timers would be helpful (I've stuck to the currently used clock_t
export to be consistent).
Cheers,
Nik
Nikolay Aleksandrov (21):
iplink: bridge: export bridge_id and designated_root
iplink: bridge: export root_(port|path_cost), topology_change and
change_detected
iplink: bridge: export read-only timers
iplink: bridge: add support for IFLA_BR_GROUP_FWD_MASK
iplink: bridge: add support for IFLA_BR_GROUP_ADDR
iplink: bridge: add support for IFLA_BR_VLAN_DEFAULT_PVID
iplink: bridge: add support for IFLA_BR_MCAST_ROUTER
iplink: bridge: add support for IFLA_BR_MCAST_SNOOPING
iplink: bridge: add support for IFLA_BR_MCAST_QUERY_USE_IFADDR
iplink: bridge: add support for IFLA_BR_MCAST_QUERIER
iplink: bridge: add support for IFLA_BR_MCAST_HASH_ELASTICITY
iplink: bridge: add support for IFLA_BR_MCAST_HASH_MAX
iplink: bridge: add support for IFLA_BR_MCAST_LAST_MEMBER_CNT
iplink: bridge: add support for IFLA_BR_MCAST_STARTUP_QUERY_CNT
iplink: bridge: add support for IFLA_BR_MCAST_LAST_MEMBER_INTVL
iplink: bridge: add support for IFLA_BR_MCAST_MEMBERSHIP_INTVL
iplink: bridge: add support for IFLA_BR_MCAST_QUERIER_INTVL
iplink: bridge: add support for IFLA_BR_MCAST_QUERY_INTVL
iplink: bridge: add support for IFLA_BR_MCAST_QUERY_RESPONSE_INTVL
iplink: bridge: add support for IFLA_BR_MCAST_STARTUP_QUERY_INTVL
iplink: bridge: add support for netfilter call attributes
include/utils.h | 1 -
ip/iplink_bridge.c | 356 +++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 356 insertions(+), 1 deletion(-)
--
2.4.3
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH iproute2 01/21] iplink: bridge: export bridge_id and designated_root
2016-02-08 11:55 [PATCH iproute2 00/21] bridge: complete netlink support Nikolay Aleksandrov
@ 2016-02-08 11:55 ` Nikolay Aleksandrov
2016-02-08 22:21 ` Stephen Hemminger
2016-02-08 11:55 ` [PATCH iproute2 02/21] iplink: bridge: export root_(port|path_cost), topology_change and change_detected Nikolay Aleksandrov
` (19 subsequent siblings)
20 siblings, 1 reply; 27+ messages in thread
From: Nikolay Aleksandrov @ 2016-02-08 11:55 UTC (permalink / raw)
To: netdev; +Cc: roopa, stephen, Nikolay Aleksandrov
From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Netlink returns the bridge_id and designated_root, we just need to
make them visible.
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
---
ip/iplink_bridge.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c
index 00804093dcb5..6978e58e6b74 100644
--- a/ip/iplink_bridge.c
+++ b/ip/iplink_bridge.c
@@ -39,6 +39,15 @@ static void explain(void)
print_explain(stderr);
}
+static void br_dump_bridge_id(const struct ifla_bridge_id *id, char *buf,
+ size_t len)
+{
+ const unsigned char *x = (const unsigned char *)id;
+
+ snprintf(buf, len, "%.2x%.2x.%.2x%.2x%.2x%.2x%.2x%.2x", x[0], x[1],
+ x[2], x[3], x[4], x[5], x[6], x[7]);
+}
+
static int bridge_parse_opt(struct link_util *lu, int argc, char **argv,
struct nlmsghdr *n)
{
@@ -155,6 +164,22 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
ll_proto_n2a(rta_getattr_u16(tb[IFLA_BR_VLAN_PROTOCOL]),
b1, sizeof(b1)));
}
+
+ if (tb[IFLA_BR_BRIDGE_ID]) {
+ char bridge_id[32];
+
+ br_dump_bridge_id(RTA_DATA(tb[IFLA_BR_BRIDGE_ID]), bridge_id,
+ sizeof(bridge_id));
+ fprintf(f, "bridge_id %s ", bridge_id);
+ }
+
+ if (tb[IFLA_BR_ROOT_ID]) {
+ char root_id[32];
+
+ br_dump_bridge_id(RTA_DATA(tb[IFLA_BR_BRIDGE_ID]), root_id,
+ sizeof(root_id));
+ fprintf(f, "designated_root %s ", root_id);
+ }
}
static void bridge_print_help(struct link_util *lu, int argc, char **argv,
--
2.4.3
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH iproute2 02/21] iplink: bridge: export root_(port|path_cost), topology_change and change_detected
2016-02-08 11:55 [PATCH iproute2 00/21] bridge: complete netlink support Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 01/21] iplink: bridge: export bridge_id and designated_root Nikolay Aleksandrov
@ 2016-02-08 11:55 ` Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 03/21] iplink: bridge: export read-only timers Nikolay Aleksandrov
` (18 subsequent siblings)
20 siblings, 0 replies; 27+ messages in thread
From: Nikolay Aleksandrov @ 2016-02-08 11:55 UTC (permalink / raw)
To: netdev; +Cc: roopa, stephen, Nikolay Aleksandrov
From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Netlink already export these values, we just need to make them visible.
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
---
ip/iplink_bridge.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c
index 6978e58e6b74..d9a725b0be0f 100644
--- a/ip/iplink_bridge.c
+++ b/ip/iplink_bridge.c
@@ -180,6 +180,22 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
sizeof(root_id));
fprintf(f, "designated_root %s ", root_id);
}
+
+ if (tb[IFLA_BR_ROOT_PORT])
+ fprintf(f, "root_port %u ",
+ rta_getattr_u16(tb[IFLA_BR_ROOT_PORT]));
+
+ if (tb[IFLA_BR_ROOT_PATH_COST])
+ fprintf(f, "root_path_cost %u ",
+ rta_getattr_u32(tb[IFLA_BR_ROOT_PATH_COST]));
+
+ if (tb[IFLA_BR_TOPOLOGY_CHANGE])
+ fprintf(f, "topology_change %u ",
+ rta_getattr_u8(tb[IFLA_BR_TOPOLOGY_CHANGE]));
+
+ if (tb[IFLA_BR_TOPOLOGY_CHANGE_DETECTED])
+ fprintf(f, "topology_change_detected %u ",
+ rta_getattr_u8(tb[IFLA_BR_TOPOLOGY_CHANGE_DETECTED]));
}
static void bridge_print_help(struct link_util *lu, int argc, char **argv,
--
2.4.3
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH iproute2 03/21] iplink: bridge: export read-only timers
2016-02-08 11:55 [PATCH iproute2 00/21] bridge: complete netlink support Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 01/21] iplink: bridge: export bridge_id and designated_root Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 02/21] iplink: bridge: export root_(port|path_cost), topology_change and change_detected Nikolay Aleksandrov
@ 2016-02-08 11:55 ` Nikolay Aleksandrov
2016-02-08 22:23 ` Stephen Hemminger
2016-02-08 11:55 ` [PATCH iproute2 04/21] iplink: bridge: add support for IFLA_BR_GROUP_FWD_MASK Nikolay Aleksandrov
` (17 subsequent siblings)
20 siblings, 1 reply; 27+ messages in thread
From: Nikolay Aleksandrov @ 2016-02-08 11:55 UTC (permalink / raw)
To: netdev; +Cc: roopa, stephen, Nikolay Aleksandrov
From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Netlink already provides hello_timer, tcn_timer, topology_change_timer
and gc_timer, so let's make them visible.
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
---
include/utils.h | 1 -
ip/iplink_bridge.c | 16 ++++++++++++++++
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/include/utils.h b/include/utils.h
index 7310f4e0e5db..f109521a904e 100644
--- a/include/utils.h
+++ b/include/utils.h
@@ -175,7 +175,6 @@ static inline __u32 nl_mgrp(__u32 group)
return group ? (1 << (group - 1)) : 0;
}
-
int print_timestamp(FILE *fp);
void print_nlmsg_timestamp(FILE *fp, const struct nlmsghdr *n);
diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c
index d9a725b0be0f..8504be5625fa 100644
--- a/ip/iplink_bridge.c
+++ b/ip/iplink_bridge.c
@@ -196,6 +196,22 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
if (tb[IFLA_BR_TOPOLOGY_CHANGE_DETECTED])
fprintf(f, "topology_change_detected %u ",
rta_getattr_u8(tb[IFLA_BR_TOPOLOGY_CHANGE_DETECTED]));
+
+ if (tb[IFLA_BR_HELLO_TIMER])
+ fprintf(f, "hello_timer %llu ",
+ rta_getattr_u64(tb[IFLA_BR_HELLO_TIMER]));
+
+ if (tb[IFLA_BR_TCN_TIMER])
+ fprintf(f, "tcn_timer %llu ",
+ rta_getattr_u64(tb[IFLA_BR_TCN_TIMER]));
+
+ if (tb[IFLA_BR_TOPOLOGY_CHANGE_TIMER])
+ fprintf(f, "topology_change_timer %llu ",
+ rta_getattr_u64(tb[IFLA_BR_TOPOLOGY_CHANGE_TIMER]));
+
+ if (tb[IFLA_BR_GC_TIMER])
+ fprintf(f, "gc_timer %llu ",
+ rta_getattr_u64(tb[IFLA_BR_GC_TIMER]));
}
static void bridge_print_help(struct link_util *lu, int argc, char **argv,
--
2.4.3
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH iproute2 04/21] iplink: bridge: add support for IFLA_BR_GROUP_FWD_MASK
2016-02-08 11:55 [PATCH iproute2 00/21] bridge: complete netlink support Nikolay Aleksandrov
` (2 preceding siblings ...)
2016-02-08 11:55 ` [PATCH iproute2 03/21] iplink: bridge: export read-only timers Nikolay Aleksandrov
@ 2016-02-08 11:55 ` Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 05/21] iplink: bridge: add support for IFLA_BR_GROUP_ADDR Nikolay Aleksandrov
` (16 subsequent siblings)
20 siblings, 0 replies; 27+ messages in thread
From: Nikolay Aleksandrov @ 2016-02-08 11:55 UTC (permalink / raw)
To: netdev; +Cc: roopa, stephen, Nikolay Aleksandrov
From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
This patch implements support for the IFLA_BR_GROUP_FWD_MASK attribute
in iproute2 so it can change the group forwarding mask.
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
---
ip/iplink_bridge.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c
index 8504be5625fa..fb448f9f863d 100644
--- a/ip/iplink_bridge.c
+++ b/ip/iplink_bridge.c
@@ -27,6 +27,7 @@ static void print_explain(FILE *f)
" [ ageing_time AGEING_TIME ]\n"
" [ stp_state STP_STATE ]\n"
" [ priority PRIORITY ]\n"
+ " [ group_fwd_mask MASK ]\n"
" [ vlan_filtering VLAN_FILTERING ]\n"
" [ vlan_protocol VLAN_PROTOCOL ]\n"
"\n"
@@ -110,6 +111,14 @@ static int bridge_parse_opt(struct link_util *lu, int argc, char **argv,
return -1;
}
addattr16(n, 1024, IFLA_BR_VLAN_PROTOCOL, vlan_proto);
+ } else if (matches(*argv, "group_fwd_mask") == 0) {
+ __u16 fwd_mask;
+
+ NEXT_ARG();
+ if (get_u16(&fwd_mask, *argv, 0))
+ invarg("invalid group_fwd_mask", *argv);
+
+ addattr16(n, 1024, IFLA_BR_GROUP_FWD_MASK, fwd_mask);
} else if (matches(*argv, "help") == 0) {
explain();
return -1;
@@ -212,6 +221,10 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
if (tb[IFLA_BR_GC_TIMER])
fprintf(f, "gc_timer %llu ",
rta_getattr_u64(tb[IFLA_BR_GC_TIMER]));
+
+ if (tb[IFLA_BR_GROUP_FWD_MASK])
+ fprintf(f, "group_fwd_mask %#x ",
+ rta_getattr_u16(tb[IFLA_BR_GROUP_FWD_MASK]));
}
static void bridge_print_help(struct link_util *lu, int argc, char **argv,
--
2.4.3
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH iproute2 05/21] iplink: bridge: add support for IFLA_BR_GROUP_ADDR
2016-02-08 11:55 [PATCH iproute2 00/21] bridge: complete netlink support Nikolay Aleksandrov
` (3 preceding siblings ...)
2016-02-08 11:55 ` [PATCH iproute2 04/21] iplink: bridge: add support for IFLA_BR_GROUP_FWD_MASK Nikolay Aleksandrov
@ 2016-02-08 11:55 ` Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 06/21] iplink: bridge: add support for IFLA_BR_VLAN_DEFAULT_PVID Nikolay Aleksandrov
` (15 subsequent siblings)
20 siblings, 0 replies; 27+ messages in thread
From: Nikolay Aleksandrov @ 2016-02-08 11:55 UTC (permalink / raw)
To: netdev; +Cc: roopa, stephen, Nikolay Aleksandrov
From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
This patch implements support for the IFLA_BR_GROUP_ADDR attribute
in iproute2 so it can change the group address.
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
---
ip/iplink_bridge.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c
index fb448f9f863d..3d343f7649fe 100644
--- a/ip/iplink_bridge.c
+++ b/ip/iplink_bridge.c
@@ -28,6 +28,7 @@ static void print_explain(FILE *f)
" [ stp_state STP_STATE ]\n"
" [ priority PRIORITY ]\n"
" [ group_fwd_mask MASK ]\n"
+ " [ group_address ADDRESS ]\n"
" [ vlan_filtering VLAN_FILTERING ]\n"
" [ vlan_protocol VLAN_PROTOCOL ]\n"
"\n"
@@ -119,6 +120,15 @@ static int bridge_parse_opt(struct link_util *lu, int argc, char **argv,
invarg("invalid group_fwd_mask", *argv);
addattr16(n, 1024, IFLA_BR_GROUP_FWD_MASK, fwd_mask);
+ } else if (matches(*argv, "group_address") == 0) {
+ char llabuf[32];
+ int len;
+
+ NEXT_ARG();
+ len = ll_addr_a2n(llabuf, sizeof(llabuf), *argv);
+ if (len < 0)
+ return -1;
+ addattr_l(n, 1024, IFLA_BR_GROUP_ADDR, llabuf, len);
} else if (matches(*argv, "help") == 0) {
explain();
return -1;
@@ -225,6 +235,15 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
if (tb[IFLA_BR_GROUP_FWD_MASK])
fprintf(f, "group_fwd_mask %#x ",
rta_getattr_u16(tb[IFLA_BR_GROUP_FWD_MASK]));
+
+ if (tb[IFLA_BR_GROUP_ADDR]) {
+ SPRINT_BUF(mac);
+
+ fprintf(f, "group_address %s ",
+ ll_addr_n2a(RTA_DATA(tb[IFLA_BR_GROUP_ADDR]),
+ RTA_PAYLOAD(tb[IFLA_BR_GROUP_ADDR]),
+ 1 /*ARPHDR_ETHER*/, mac, sizeof(mac)));
+ }
}
static void bridge_print_help(struct link_util *lu, int argc, char **argv,
--
2.4.3
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH iproute2 06/21] iplink: bridge: add support for IFLA_BR_VLAN_DEFAULT_PVID
2016-02-08 11:55 [PATCH iproute2 00/21] bridge: complete netlink support Nikolay Aleksandrov
` (4 preceding siblings ...)
2016-02-08 11:55 ` [PATCH iproute2 05/21] iplink: bridge: add support for IFLA_BR_GROUP_ADDR Nikolay Aleksandrov
@ 2016-02-08 11:55 ` Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 07/21] iplink: bridge: add support for IFLA_BR_MCAST_ROUTER Nikolay Aleksandrov
` (14 subsequent siblings)
20 siblings, 0 replies; 27+ messages in thread
From: Nikolay Aleksandrov @ 2016-02-08 11:55 UTC (permalink / raw)
To: netdev; +Cc: roopa, stephen, Nikolay Aleksandrov
From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
This patch implements support for the IFLA_BR_VLAN_DEFAULT_PVID
attribute in iproute2 so it can change the default pvid.
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
---
ip/iplink_bridge.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c
index 3d343f7649fe..e8bc66b498b3 100644
--- a/ip/iplink_bridge.c
+++ b/ip/iplink_bridge.c
@@ -31,6 +31,7 @@ static void print_explain(FILE *f)
" [ group_address ADDRESS ]\n"
" [ vlan_filtering VLAN_FILTERING ]\n"
" [ vlan_protocol VLAN_PROTOCOL ]\n"
+ " [ vlan_default_pvid VLAN_DEFAULT_PVID ]\n"
"\n"
"Where: VLAN_PROTOCOL := { 802.1Q | 802.1ad }\n"
);
@@ -129,6 +130,15 @@ static int bridge_parse_opt(struct link_util *lu, int argc, char **argv,
if (len < 0)
return -1;
addattr_l(n, 1024, IFLA_BR_GROUP_ADDR, llabuf, len);
+ } else if (matches(*argv, "vlan_default_pvid") == 0) {
+ __u16 default_pvid;
+
+ NEXT_ARG();
+ if (get_u16(&default_pvid, *argv, 0))
+ invarg("invalid vlan_default_pvid", *argv);
+
+ addattr16(n, 1024, IFLA_BR_VLAN_DEFAULT_PVID,
+ default_pvid);
} else if (matches(*argv, "help") == 0) {
explain();
return -1;
@@ -232,6 +242,10 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
fprintf(f, "gc_timer %llu ",
rta_getattr_u64(tb[IFLA_BR_GC_TIMER]));
+ if (tb[IFLA_BR_VLAN_DEFAULT_PVID])
+ fprintf(f, "vlan_default_pvid %u ",
+ rta_getattr_u16(tb[IFLA_BR_VLAN_DEFAULT_PVID]));
+
if (tb[IFLA_BR_GROUP_FWD_MASK])
fprintf(f, "group_fwd_mask %#x ",
rta_getattr_u16(tb[IFLA_BR_GROUP_FWD_MASK]));
--
2.4.3
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH iproute2 07/21] iplink: bridge: add support for IFLA_BR_MCAST_ROUTER
2016-02-08 11:55 [PATCH iproute2 00/21] bridge: complete netlink support Nikolay Aleksandrov
` (5 preceding siblings ...)
2016-02-08 11:55 ` [PATCH iproute2 06/21] iplink: bridge: add support for IFLA_BR_VLAN_DEFAULT_PVID Nikolay Aleksandrov
@ 2016-02-08 11:55 ` Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 08/21] iplink: bridge: add support for IFLA_BR_MCAST_SNOOPING Nikolay Aleksandrov
` (13 subsequent siblings)
20 siblings, 0 replies; 27+ messages in thread
From: Nikolay Aleksandrov @ 2016-02-08 11:55 UTC (permalink / raw)
To: netdev; +Cc: roopa, stephen, Nikolay Aleksandrov
From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
This patch implements support for the IFLA_BR_MCAST_ROUTER attribute
in iproute2 so it can change the multicast router value.
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
---
ip/iplink_bridge.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c
index e8bc66b498b3..11577a8994a3 100644
--- a/ip/iplink_bridge.c
+++ b/ip/iplink_bridge.c
@@ -32,6 +32,7 @@ static void print_explain(FILE *f)
" [ vlan_filtering VLAN_FILTERING ]\n"
" [ vlan_protocol VLAN_PROTOCOL ]\n"
" [ vlan_default_pvid VLAN_DEFAULT_PVID ]\n"
+ " [ mcast_router MULTICAST_ROUTER ]\n"
"\n"
"Where: VLAN_PROTOCOL := { 802.1Q | 802.1ad }\n"
);
@@ -139,6 +140,14 @@ static int bridge_parse_opt(struct link_util *lu, int argc, char **argv,
addattr16(n, 1024, IFLA_BR_VLAN_DEFAULT_PVID,
default_pvid);
+ } else if (matches(*argv, "mcast_router") == 0) {
+ __u8 mcast_router;
+
+ NEXT_ARG();
+ if (get_u8(&mcast_router, *argv, 0))
+ invarg("invalid mcast_router", *argv);
+
+ addattr8(n, 1024, IFLA_BR_MCAST_ROUTER, mcast_router);
} else if (matches(*argv, "help") == 0) {
explain();
return -1;
@@ -258,6 +267,10 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
RTA_PAYLOAD(tb[IFLA_BR_GROUP_ADDR]),
1 /*ARPHDR_ETHER*/, mac, sizeof(mac)));
}
+
+ if (tb[IFLA_BR_MCAST_ROUTER])
+ fprintf(f, "mcast_router %u ",
+ rta_getattr_u8(tb[IFLA_BR_MCAST_ROUTER]));
}
static void bridge_print_help(struct link_util *lu, int argc, char **argv,
--
2.4.3
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH iproute2 08/21] iplink: bridge: add support for IFLA_BR_MCAST_SNOOPING
2016-02-08 11:55 [PATCH iproute2 00/21] bridge: complete netlink support Nikolay Aleksandrov
` (6 preceding siblings ...)
2016-02-08 11:55 ` [PATCH iproute2 07/21] iplink: bridge: add support for IFLA_BR_MCAST_ROUTER Nikolay Aleksandrov
@ 2016-02-08 11:55 ` Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 09/21] iplink: bridge: add support for IFLA_BR_MCAST_QUERY_USE_IFADDR Nikolay Aleksandrov
` (12 subsequent siblings)
20 siblings, 0 replies; 27+ messages in thread
From: Nikolay Aleksandrov @ 2016-02-08 11:55 UTC (permalink / raw)
To: netdev; +Cc: roopa, stephen, Nikolay Aleksandrov
From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
This patch implements support for the IFLA_BR_MCAST_SNOOPING attribute
in iproute2 so it can change the multicast snooping value.
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
---
ip/iplink_bridge.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c
index 11577a8994a3..208d155df440 100644
--- a/ip/iplink_bridge.c
+++ b/ip/iplink_bridge.c
@@ -32,6 +32,7 @@ static void print_explain(FILE *f)
" [ vlan_filtering VLAN_FILTERING ]\n"
" [ vlan_protocol VLAN_PROTOCOL ]\n"
" [ vlan_default_pvid VLAN_DEFAULT_PVID ]\n"
+ " [ mcast_snooping MULTICAST_SNOOPING ]\n"
" [ mcast_router MULTICAST_ROUTER ]\n"
"\n"
"Where: VLAN_PROTOCOL := { 802.1Q | 802.1ad }\n"
@@ -148,6 +149,14 @@ static int bridge_parse_opt(struct link_util *lu, int argc, char **argv,
invarg("invalid mcast_router", *argv);
addattr8(n, 1024, IFLA_BR_MCAST_ROUTER, mcast_router);
+ } else if (matches(*argv, "mcast_snooping") == 0) {
+ __u8 mcast_snoop;
+
+ NEXT_ARG();
+ if (get_u8(&mcast_snoop, *argv, 0))
+ invarg("invalid mcast_snooping", *argv);
+
+ addattr8(n, 1024, IFLA_BR_MCAST_SNOOPING, mcast_snoop);
} else if (matches(*argv, "help") == 0) {
explain();
return -1;
@@ -268,6 +277,10 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
1 /*ARPHDR_ETHER*/, mac, sizeof(mac)));
}
+ if (tb[IFLA_BR_MCAST_SNOOPING])
+ fprintf(f, "mcast_snooping %u ",
+ rta_getattr_u8(tb[IFLA_BR_MCAST_SNOOPING]));
+
if (tb[IFLA_BR_MCAST_ROUTER])
fprintf(f, "mcast_router %u ",
rta_getattr_u8(tb[IFLA_BR_MCAST_ROUTER]));
--
2.4.3
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH iproute2 09/21] iplink: bridge: add support for IFLA_BR_MCAST_QUERY_USE_IFADDR
2016-02-08 11:55 [PATCH iproute2 00/21] bridge: complete netlink support Nikolay Aleksandrov
` (7 preceding siblings ...)
2016-02-08 11:55 ` [PATCH iproute2 08/21] iplink: bridge: add support for IFLA_BR_MCAST_SNOOPING Nikolay Aleksandrov
@ 2016-02-08 11:55 ` Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 10/21] iplink: bridge: add support for IFLA_BR_MCAST_QUERIER Nikolay Aleksandrov
` (11 subsequent siblings)
20 siblings, 0 replies; 27+ messages in thread
From: Nikolay Aleksandrov @ 2016-02-08 11:55 UTC (permalink / raw)
To: netdev; +Cc: roopa, stephen, Nikolay Aleksandrov
From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
This patch implements support for the IFLA_BR_MCAST_QUERY_USE_IFADDR
attribute in iproute2 so it can toggle the multicast_query_use_ifaddr val.
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
---
ip/iplink_bridge.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c
index 208d155df440..30f7b8014e2a 100644
--- a/ip/iplink_bridge.c
+++ b/ip/iplink_bridge.c
@@ -34,6 +34,7 @@ static void print_explain(FILE *f)
" [ vlan_default_pvid VLAN_DEFAULT_PVID ]\n"
" [ mcast_snooping MULTICAST_SNOOPING ]\n"
" [ mcast_router MULTICAST_ROUTER ]\n"
+ " [ mcast_query_use_ifaddr MCAST_QUERY_USE_IFADDR ]\n"
"\n"
"Where: VLAN_PROTOCOL := { 802.1Q | 802.1ad }\n"
);
@@ -157,6 +158,16 @@ static int bridge_parse_opt(struct link_util *lu, int argc, char **argv,
invarg("invalid mcast_snooping", *argv);
addattr8(n, 1024, IFLA_BR_MCAST_SNOOPING, mcast_snoop);
+ } else if (matches(*argv, "mcast_query_use_ifaddr") == 0) {
+ __u8 mcast_qui;
+
+ NEXT_ARG();
+ if (get_u8(&mcast_qui, *argv, 0))
+ invarg("invalid mcast_query_use_ifaddr",
+ *argv);
+
+ addattr8(n, 1024, IFLA_BR_MCAST_QUERY_USE_IFADDR,
+ mcast_qui);
} else if (matches(*argv, "help") == 0) {
explain();
return -1;
@@ -284,6 +295,10 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
if (tb[IFLA_BR_MCAST_ROUTER])
fprintf(f, "mcast_router %u ",
rta_getattr_u8(tb[IFLA_BR_MCAST_ROUTER]));
+
+ if (tb[IFLA_BR_MCAST_QUERY_USE_IFADDR])
+ fprintf(f, "mcast_query_use_ifaddr %u ",
+ rta_getattr_u8(tb[IFLA_BR_MCAST_QUERY_USE_IFADDR]));
}
static void bridge_print_help(struct link_util *lu, int argc, char **argv,
--
2.4.3
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH iproute2 10/21] iplink: bridge: add support for IFLA_BR_MCAST_QUERIER
2016-02-08 11:55 [PATCH iproute2 00/21] bridge: complete netlink support Nikolay Aleksandrov
` (8 preceding siblings ...)
2016-02-08 11:55 ` [PATCH iproute2 09/21] iplink: bridge: add support for IFLA_BR_MCAST_QUERY_USE_IFADDR Nikolay Aleksandrov
@ 2016-02-08 11:55 ` Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 11/21] iplink: bridge: add support for IFLA_BR_MCAST_HASH_ELASTICITY Nikolay Aleksandrov
` (10 subsequent siblings)
20 siblings, 0 replies; 27+ messages in thread
From: Nikolay Aleksandrov @ 2016-02-08 11:55 UTC (permalink / raw)
To: netdev; +Cc: roopa, stephen, Nikolay Aleksandrov
From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
This patch implements support for the IFLA_BR_MCAST_QUERIER attribute
in iproute2 so it can toggle the mcast querier value.
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
---
ip/iplink_bridge.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c
index 30f7b8014e2a..0d5c70312f1d 100644
--- a/ip/iplink_bridge.c
+++ b/ip/iplink_bridge.c
@@ -35,6 +35,7 @@ static void print_explain(FILE *f)
" [ mcast_snooping MULTICAST_SNOOPING ]\n"
" [ mcast_router MULTICAST_ROUTER ]\n"
" [ mcast_query_use_ifaddr MCAST_QUERY_USE_IFADDR ]\n"
+ " [ mcast_querier MULTICAST_QUERIER ]\n"
"\n"
"Where: VLAN_PROTOCOL := { 802.1Q | 802.1ad }\n"
);
@@ -168,6 +169,14 @@ static int bridge_parse_opt(struct link_util *lu, int argc, char **argv,
addattr8(n, 1024, IFLA_BR_MCAST_QUERY_USE_IFADDR,
mcast_qui);
+ } else if (matches(*argv, "mcast_querier") == 0) {
+ __u8 mcast_querier;
+
+ NEXT_ARG();
+ if (get_u8(&mcast_querier, *argv, 0))
+ invarg("invalid mcast_querier", *argv);
+
+ addattr8(n, 1024, IFLA_BR_MCAST_QUERIER, mcast_querier);
} else if (matches(*argv, "help") == 0) {
explain();
return -1;
@@ -299,6 +308,10 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
if (tb[IFLA_BR_MCAST_QUERY_USE_IFADDR])
fprintf(f, "mcast_query_use_ifaddr %u ",
rta_getattr_u8(tb[IFLA_BR_MCAST_QUERY_USE_IFADDR]));
+
+ if (tb[IFLA_BR_MCAST_QUERIER])
+ fprintf(f, "mcast_querier %u ",
+ rta_getattr_u8(tb[IFLA_BR_MCAST_QUERIER]));
}
static void bridge_print_help(struct link_util *lu, int argc, char **argv,
--
2.4.3
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH iproute2 11/21] iplink: bridge: add support for IFLA_BR_MCAST_HASH_ELASTICITY
2016-02-08 11:55 [PATCH iproute2 00/21] bridge: complete netlink support Nikolay Aleksandrov
` (9 preceding siblings ...)
2016-02-08 11:55 ` [PATCH iproute2 10/21] iplink: bridge: add support for IFLA_BR_MCAST_QUERIER Nikolay Aleksandrov
@ 2016-02-08 11:55 ` Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 12/21] iplink: bridge: add support for IFLA_BR_MCAST_HASH_MAX Nikolay Aleksandrov
` (9 subsequent siblings)
20 siblings, 0 replies; 27+ messages in thread
From: Nikolay Aleksandrov @ 2016-02-08 11:55 UTC (permalink / raw)
To: netdev; +Cc: roopa, stephen, Nikolay Aleksandrov
From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
This patch implements support for the IFLA_BR_MCAST_HASH_ELASTICTITY
attribute in iproute2 so it can change the hash elasticity value.
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
---
ip/iplink_bridge.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c
index 0d5c70312f1d..14aae3e9b0d2 100644
--- a/ip/iplink_bridge.c
+++ b/ip/iplink_bridge.c
@@ -36,6 +36,7 @@ static void print_explain(FILE *f)
" [ mcast_router MULTICAST_ROUTER ]\n"
" [ mcast_query_use_ifaddr MCAST_QUERY_USE_IFADDR ]\n"
" [ mcast_querier MULTICAST_QUERIER ]\n"
+ " [ mcast_hash_elasticity HASH_ELASTICITY ]\n"
"\n"
"Where: VLAN_PROTOCOL := { 802.1Q | 802.1ad }\n"
);
@@ -177,6 +178,16 @@ static int bridge_parse_opt(struct link_util *lu, int argc, char **argv,
invarg("invalid mcast_querier", *argv);
addattr8(n, 1024, IFLA_BR_MCAST_QUERIER, mcast_querier);
+ } else if (matches(*argv, "mcast_hash_elasticity") == 0) {
+ __u32 mcast_hash_el;
+
+ NEXT_ARG();
+ if (get_u32(&mcast_hash_el, *argv, 0))
+ invarg("invalid mcast_hash_elasticity",
+ *argv);
+
+ addattr32(n, 1024, IFLA_BR_MCAST_HASH_ELASTICITY,
+ mcast_hash_el);
} else if (matches(*argv, "help") == 0) {
explain();
return -1;
@@ -312,6 +323,10 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
if (tb[IFLA_BR_MCAST_QUERIER])
fprintf(f, "mcast_querier %u ",
rta_getattr_u8(tb[IFLA_BR_MCAST_QUERIER]));
+
+ if (tb[IFLA_BR_MCAST_HASH_ELASTICITY])
+ fprintf(f, "mcast_hash_elasticity %u ",
+ rta_getattr_u32(tb[IFLA_BR_MCAST_HASH_ELASTICITY]));
}
static void bridge_print_help(struct link_util *lu, int argc, char **argv,
--
2.4.3
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH iproute2 12/21] iplink: bridge: add support for IFLA_BR_MCAST_HASH_MAX
2016-02-08 11:55 [PATCH iproute2 00/21] bridge: complete netlink support Nikolay Aleksandrov
` (10 preceding siblings ...)
2016-02-08 11:55 ` [PATCH iproute2 11/21] iplink: bridge: add support for IFLA_BR_MCAST_HASH_ELASTICITY Nikolay Aleksandrov
@ 2016-02-08 11:55 ` Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 13/21] iplink: bridge: add support for IFLA_BR_MCAST_LAST_MEMBER_CNT Nikolay Aleksandrov
` (8 subsequent siblings)
20 siblings, 0 replies; 27+ messages in thread
From: Nikolay Aleksandrov @ 2016-02-08 11:55 UTC (permalink / raw)
To: netdev; +Cc: roopa, stephen, Nikolay Aleksandrov
From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
This patch implements support for the IFLA_BR_MCAST_HASH_MAX attribute
in iproute2 so it can change the maximum hashed entries.
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
---
ip/iplink_bridge.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c
index 14aae3e9b0d2..d15bd45dcdf6 100644
--- a/ip/iplink_bridge.c
+++ b/ip/iplink_bridge.c
@@ -37,6 +37,7 @@ static void print_explain(FILE *f)
" [ mcast_query_use_ifaddr MCAST_QUERY_USE_IFADDR ]\n"
" [ mcast_querier MULTICAST_QUERIER ]\n"
" [ mcast_hash_elasticity HASH_ELASTICITY ]\n"
+ " [ mcast_hash_max HASH_MAX ]\n"
"\n"
"Where: VLAN_PROTOCOL := { 802.1Q | 802.1ad }\n"
);
@@ -188,6 +189,15 @@ static int bridge_parse_opt(struct link_util *lu, int argc, char **argv,
addattr32(n, 1024, IFLA_BR_MCAST_HASH_ELASTICITY,
mcast_hash_el);
+ } else if (matches(*argv, "mcast_hash_max") == 0) {
+ __u32 mcast_hash_max;
+
+ NEXT_ARG();
+ if (get_u32(&mcast_hash_max, *argv, 0))
+ invarg("invalid mcast_hash_max", *argv);
+
+ addattr32(n, 1024, IFLA_BR_MCAST_HASH_MAX,
+ mcast_hash_max);
} else if (matches(*argv, "help") == 0) {
explain();
return -1;
@@ -327,6 +337,10 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
if (tb[IFLA_BR_MCAST_HASH_ELASTICITY])
fprintf(f, "mcast_hash_elasticity %u ",
rta_getattr_u32(tb[IFLA_BR_MCAST_HASH_ELASTICITY]));
+
+ if (tb[IFLA_BR_MCAST_HASH_MAX])
+ fprintf(f, "mcast_hash_max %u ",
+ rta_getattr_u32(tb[IFLA_BR_MCAST_HASH_MAX]));
}
static void bridge_print_help(struct link_util *lu, int argc, char **argv,
--
2.4.3
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH iproute2 13/21] iplink: bridge: add support for IFLA_BR_MCAST_LAST_MEMBER_CNT
2016-02-08 11:55 [PATCH iproute2 00/21] bridge: complete netlink support Nikolay Aleksandrov
` (11 preceding siblings ...)
2016-02-08 11:55 ` [PATCH iproute2 12/21] iplink: bridge: add support for IFLA_BR_MCAST_HASH_MAX Nikolay Aleksandrov
@ 2016-02-08 11:55 ` Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 14/21] iplink: bridge: add support for IFLA_BR_MCAST_STARTUP_QUERY_CNT Nikolay Aleksandrov
` (7 subsequent siblings)
20 siblings, 0 replies; 27+ messages in thread
From: Nikolay Aleksandrov @ 2016-02-08 11:55 UTC (permalink / raw)
To: netdev; +Cc: roopa, stephen, Nikolay Aleksandrov
From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
This patch implements support for the IFLA_BR_MCAST_LAST_MEMBER_CNT
attribute in iproute2 so it can change the last member count value.
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
---
ip/iplink_bridge.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c
index d15bd45dcdf6..d98b126698e2 100644
--- a/ip/iplink_bridge.c
+++ b/ip/iplink_bridge.c
@@ -38,6 +38,7 @@ static void print_explain(FILE *f)
" [ mcast_querier MULTICAST_QUERIER ]\n"
" [ mcast_hash_elasticity HASH_ELASTICITY ]\n"
" [ mcast_hash_max HASH_MAX ]\n"
+ " [ mcast_last_member_count LAST_MEMBER_COUNT ]\n"
"\n"
"Where: VLAN_PROTOCOL := { 802.1Q | 802.1ad }\n"
);
@@ -198,6 +199,16 @@ static int bridge_parse_opt(struct link_util *lu, int argc, char **argv,
addattr32(n, 1024, IFLA_BR_MCAST_HASH_MAX,
mcast_hash_max);
+ } else if (matches(*argv, "mcast_last_member_count") == 0) {
+ __u32 mcast_lmc;
+
+ NEXT_ARG();
+ if (get_u32(&mcast_lmc, *argv, 0))
+ invarg("invalid mcast_last_member_count",
+ *argv);
+
+ addattr32(n, 1024, IFLA_BR_MCAST_LAST_MEMBER_CNT,
+ mcast_lmc);
} else if (matches(*argv, "help") == 0) {
explain();
return -1;
@@ -341,6 +352,10 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
if (tb[IFLA_BR_MCAST_HASH_MAX])
fprintf(f, "mcast_hash_max %u ",
rta_getattr_u32(tb[IFLA_BR_MCAST_HASH_MAX]));
+
+ if (tb[IFLA_BR_MCAST_LAST_MEMBER_CNT])
+ fprintf(f, "mcast_last_member_count %u ",
+ rta_getattr_u32(tb[IFLA_BR_MCAST_LAST_MEMBER_CNT]));
}
static void bridge_print_help(struct link_util *lu, int argc, char **argv,
--
2.4.3
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH iproute2 14/21] iplink: bridge: add support for IFLA_BR_MCAST_STARTUP_QUERY_CNT
2016-02-08 11:55 [PATCH iproute2 00/21] bridge: complete netlink support Nikolay Aleksandrov
` (12 preceding siblings ...)
2016-02-08 11:55 ` [PATCH iproute2 13/21] iplink: bridge: add support for IFLA_BR_MCAST_LAST_MEMBER_CNT Nikolay Aleksandrov
@ 2016-02-08 11:55 ` Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 15/21] iplink: bridge: add support for IFLA_BR_MCAST_LAST_MEMBER_INTVL Nikolay Aleksandrov
` (6 subsequent siblings)
20 siblings, 0 replies; 27+ messages in thread
From: Nikolay Aleksandrov @ 2016-02-08 11:55 UTC (permalink / raw)
To: netdev; +Cc: roopa, stephen, Nikolay Aleksandrov
From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
This patch implements support for the IFLA_BR_MCAST_STARTUP_QUERY_CNT
attribute in iproute2 so it can change the startup query count.
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
---
ip/iplink_bridge.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c
index d98b126698e2..d10a9255eb56 100644
--- a/ip/iplink_bridge.c
+++ b/ip/iplink_bridge.c
@@ -39,6 +39,7 @@ static void print_explain(FILE *f)
" [ mcast_hash_elasticity HASH_ELASTICITY ]\n"
" [ mcast_hash_max HASH_MAX ]\n"
" [ mcast_last_member_count LAST_MEMBER_COUNT ]\n"
+ " [ mcast_startup_query_count STARTUP_QUERY_COUNT ]\n"
"\n"
"Where: VLAN_PROTOCOL := { 802.1Q | 802.1ad }\n"
);
@@ -209,6 +210,16 @@ static int bridge_parse_opt(struct link_util *lu, int argc, char **argv,
addattr32(n, 1024, IFLA_BR_MCAST_LAST_MEMBER_CNT,
mcast_lmc);
+ } else if (matches(*argv, "mcast_startup_query_count") == 0) {
+ __u32 mcast_sqc;
+
+ NEXT_ARG();
+ if (get_u32(&mcast_sqc, *argv, 0))
+ invarg("invalid mcast_startup_query_count",
+ *argv);
+
+ addattr32(n, 1024, IFLA_BR_MCAST_STARTUP_QUERY_CNT,
+ mcast_sqc);
} else if (matches(*argv, "help") == 0) {
explain();
return -1;
@@ -356,6 +367,10 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
if (tb[IFLA_BR_MCAST_LAST_MEMBER_CNT])
fprintf(f, "mcast_last_member_count %u ",
rta_getattr_u32(tb[IFLA_BR_MCAST_LAST_MEMBER_CNT]));
+
+ if (tb[IFLA_BR_MCAST_STARTUP_QUERY_CNT])
+ fprintf(f, "mcast_startup_query_count %u ",
+ rta_getattr_u32(tb[IFLA_BR_MCAST_STARTUP_QUERY_CNT]));
}
static void bridge_print_help(struct link_util *lu, int argc, char **argv,
--
2.4.3
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH iproute2 15/21] iplink: bridge: add support for IFLA_BR_MCAST_LAST_MEMBER_INTVL
2016-02-08 11:55 [PATCH iproute2 00/21] bridge: complete netlink support Nikolay Aleksandrov
` (13 preceding siblings ...)
2016-02-08 11:55 ` [PATCH iproute2 14/21] iplink: bridge: add support for IFLA_BR_MCAST_STARTUP_QUERY_CNT Nikolay Aleksandrov
@ 2016-02-08 11:55 ` Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 16/21] iplink: bridge: add support for IFLA_BR_MCAST_MEMBERSHIP_INTVL Nikolay Aleksandrov
` (5 subsequent siblings)
20 siblings, 0 replies; 27+ messages in thread
From: Nikolay Aleksandrov @ 2016-02-08 11:55 UTC (permalink / raw)
To: netdev; +Cc: roopa, stephen, Nikolay Aleksandrov
From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
This patch implements support for the IFLA_BR_MCAST_LAST_MEMBER_INTVL
attribute in iproute2 so it can change the last member interval.
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
---
ip/iplink_bridge.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c
index d10a9255eb56..f2f52e078dbd 100644
--- a/ip/iplink_bridge.c
+++ b/ip/iplink_bridge.c
@@ -40,6 +40,7 @@ static void print_explain(FILE *f)
" [ mcast_hash_max HASH_MAX ]\n"
" [ mcast_last_member_count LAST_MEMBER_COUNT ]\n"
" [ mcast_startup_query_count STARTUP_QUERY_COUNT ]\n"
+ " [ mcast_last_member_interval LAST_MEMBER_INTERVAL ]\n"
"\n"
"Where: VLAN_PROTOCOL := { 802.1Q | 802.1ad }\n"
);
@@ -220,6 +221,16 @@ static int bridge_parse_opt(struct link_util *lu, int argc, char **argv,
addattr32(n, 1024, IFLA_BR_MCAST_STARTUP_QUERY_CNT,
mcast_sqc);
+ } else if (matches(*argv, "mcast_last_member_interval") == 0) {
+ __u64 mcast_last_member_intvl;
+
+ NEXT_ARG();
+ if (get_u64(&mcast_last_member_intvl, *argv, 0))
+ invarg("invalid mcast_last_member_interval",
+ *argv);
+
+ addattr64(n, 1024, IFLA_BR_MCAST_LAST_MEMBER_INTVL,
+ mcast_last_member_intvl);
} else if (matches(*argv, "help") == 0) {
explain();
return -1;
@@ -371,6 +382,10 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
if (tb[IFLA_BR_MCAST_STARTUP_QUERY_CNT])
fprintf(f, "mcast_startup_query_count %u ",
rta_getattr_u32(tb[IFLA_BR_MCAST_STARTUP_QUERY_CNT]));
+
+ if (tb[IFLA_BR_MCAST_LAST_MEMBER_INTVL])
+ fprintf(f, "mcast_last_member_interval %llu ",
+ rta_getattr_u64(tb[IFLA_BR_MCAST_LAST_MEMBER_INTVL]));
}
static void bridge_print_help(struct link_util *lu, int argc, char **argv,
--
2.4.3
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH iproute2 16/21] iplink: bridge: add support for IFLA_BR_MCAST_MEMBERSHIP_INTVL
2016-02-08 11:55 [PATCH iproute2 00/21] bridge: complete netlink support Nikolay Aleksandrov
` (14 preceding siblings ...)
2016-02-08 11:55 ` [PATCH iproute2 15/21] iplink: bridge: add support for IFLA_BR_MCAST_LAST_MEMBER_INTVL Nikolay Aleksandrov
@ 2016-02-08 11:55 ` Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 17/21] iplink: bridge: add support for IFLA_BR_MCAST_QUERIER_INTVL Nikolay Aleksandrov
` (4 subsequent siblings)
20 siblings, 0 replies; 27+ messages in thread
From: Nikolay Aleksandrov @ 2016-02-08 11:55 UTC (permalink / raw)
To: netdev; +Cc: roopa, stephen, Nikolay Aleksandrov
From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
This patch implements support for the IFLA_BR_MCAST_MEMBERSHIP_INTVL
attribute in iproute2 so it can change the membership interval.
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
---
ip/iplink_bridge.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c
index f2f52e078dbd..9a6c9418ff0f 100644
--- a/ip/iplink_bridge.c
+++ b/ip/iplink_bridge.c
@@ -41,6 +41,7 @@ static void print_explain(FILE *f)
" [ mcast_last_member_count LAST_MEMBER_COUNT ]\n"
" [ mcast_startup_query_count STARTUP_QUERY_COUNT ]\n"
" [ mcast_last_member_interval LAST_MEMBER_INTERVAL ]\n"
+ " [ mcast_membership_interval MEMBERSHIP_INTERVAL ]\n"
"\n"
"Where: VLAN_PROTOCOL := { 802.1Q | 802.1ad }\n"
);
@@ -231,6 +232,17 @@ static int bridge_parse_opt(struct link_util *lu, int argc, char **argv,
addattr64(n, 1024, IFLA_BR_MCAST_LAST_MEMBER_INTVL,
mcast_last_member_intvl);
+ } else if (matches(*argv, "mcast_membership_interval") == 0) {
+ __u64 mcast_membership_intvl;
+
+ NEXT_ARG();
+ if (get_u64(&mcast_membership_intvl, *argv, 0)) {
+ invarg("invalid mcast_membership_interval",
+ *argv);
+ return -1;
+ }
+ addattr64(n, 1024, IFLA_BR_MCAST_MEMBERSHIP_INTVL,
+ mcast_membership_intvl);
} else if (matches(*argv, "help") == 0) {
explain();
return -1;
@@ -386,6 +398,10 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
if (tb[IFLA_BR_MCAST_LAST_MEMBER_INTVL])
fprintf(f, "mcast_last_member_interval %llu ",
rta_getattr_u64(tb[IFLA_BR_MCAST_LAST_MEMBER_INTVL]));
+
+ if (tb[IFLA_BR_MCAST_MEMBERSHIP_INTVL])
+ fprintf(f, "mcast_membership_interval %llu ",
+ rta_getattr_u64(tb[IFLA_BR_MCAST_MEMBERSHIP_INTVL]));
}
static void bridge_print_help(struct link_util *lu, int argc, char **argv,
--
2.4.3
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH iproute2 17/21] iplink: bridge: add support for IFLA_BR_MCAST_QUERIER_INTVL
2016-02-08 11:55 [PATCH iproute2 00/21] bridge: complete netlink support Nikolay Aleksandrov
` (15 preceding siblings ...)
2016-02-08 11:55 ` [PATCH iproute2 16/21] iplink: bridge: add support for IFLA_BR_MCAST_MEMBERSHIP_INTVL Nikolay Aleksandrov
@ 2016-02-08 11:55 ` Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 18/21] iplink: bridge: add support for IFLA_BR_MCAST_QUERY_INTVL Nikolay Aleksandrov
` (3 subsequent siblings)
20 siblings, 0 replies; 27+ messages in thread
From: Nikolay Aleksandrov @ 2016-02-08 11:55 UTC (permalink / raw)
To: netdev; +Cc: roopa, stephen, Nikolay Aleksandrov
From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
This patch implements support for the IFLA_BR_MCAST_QUERIER_INTVL
attribute in iproute2 so it can change the querier interval.
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
---
ip/iplink_bridge.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c
index 9a6c9418ff0f..f896f54aa6f8 100644
--- a/ip/iplink_bridge.c
+++ b/ip/iplink_bridge.c
@@ -42,6 +42,7 @@ static void print_explain(FILE *f)
" [ mcast_startup_query_count STARTUP_QUERY_COUNT ]\n"
" [ mcast_last_member_interval LAST_MEMBER_INTERVAL ]\n"
" [ mcast_membership_interval MEMBERSHIP_INTERVAL ]\n"
+ " [ mcast_querier_interval QUERIER_INTERVAL ]\n"
"\n"
"Where: VLAN_PROTOCOL := { 802.1Q | 802.1ad }\n"
);
@@ -243,6 +244,17 @@ static int bridge_parse_opt(struct link_util *lu, int argc, char **argv,
}
addattr64(n, 1024, IFLA_BR_MCAST_MEMBERSHIP_INTVL,
mcast_membership_intvl);
+ } else if (matches(*argv, "mcast_querier_interval") == 0) {
+ __u64 mcast_querier_intvl;
+
+ NEXT_ARG();
+ if (get_u64(&mcast_querier_intvl, *argv, 0)) {
+ invarg("invalid mcast_querier_interval",
+ *argv);
+ return -1;
+ }
+ addattr64(n, 1024, IFLA_BR_MCAST_QUERIER_INTVL,
+ mcast_querier_intvl);
} else if (matches(*argv, "help") == 0) {
explain();
return -1;
@@ -402,6 +414,10 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
if (tb[IFLA_BR_MCAST_MEMBERSHIP_INTVL])
fprintf(f, "mcast_membership_interval %llu ",
rta_getattr_u64(tb[IFLA_BR_MCAST_MEMBERSHIP_INTVL]));
+
+ if (tb[IFLA_BR_MCAST_QUERIER_INTVL])
+ fprintf(f, "mcast_querier_interval %llu ",
+ rta_getattr_u64(tb[IFLA_BR_MCAST_QUERIER_INTVL]));
}
static void bridge_print_help(struct link_util *lu, int argc, char **argv,
--
2.4.3
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH iproute2 18/21] iplink: bridge: add support for IFLA_BR_MCAST_QUERY_INTVL
2016-02-08 11:55 [PATCH iproute2 00/21] bridge: complete netlink support Nikolay Aleksandrov
` (16 preceding siblings ...)
2016-02-08 11:55 ` [PATCH iproute2 17/21] iplink: bridge: add support for IFLA_BR_MCAST_QUERIER_INTVL Nikolay Aleksandrov
@ 2016-02-08 11:55 ` Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 19/21] iplink: bridge: add support for IFLA_BR_MCAST_QUERY_RESPONSE_INTVL Nikolay Aleksandrov
` (2 subsequent siblings)
20 siblings, 0 replies; 27+ messages in thread
From: Nikolay Aleksandrov @ 2016-02-08 11:55 UTC (permalink / raw)
To: netdev; +Cc: roopa, stephen, Nikolay Aleksandrov
From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
This patch implements support for the IFLA_BR_MCAST_QUERY_INTVL attribute
in iproute2 so it can change the query interval.
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
---
ip/iplink_bridge.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c
index f896f54aa6f8..c5e1fcc6b9a9 100644
--- a/ip/iplink_bridge.c
+++ b/ip/iplink_bridge.c
@@ -43,6 +43,7 @@ static void print_explain(FILE *f)
" [ mcast_last_member_interval LAST_MEMBER_INTERVAL ]\n"
" [ mcast_membership_interval MEMBERSHIP_INTERVAL ]\n"
" [ mcast_querier_interval QUERIER_INTERVAL ]\n"
+ " [ mcast_query_interval QUERY_INTERVAL ]\n"
"\n"
"Where: VLAN_PROTOCOL := { 802.1Q | 802.1ad }\n"
);
@@ -255,6 +256,17 @@ static int bridge_parse_opt(struct link_util *lu, int argc, char **argv,
}
addattr64(n, 1024, IFLA_BR_MCAST_QUERIER_INTVL,
mcast_querier_intvl);
+ } else if (matches(*argv, "mcast_query_interval") == 0) {
+ __u64 mcast_query_intvl;
+
+ NEXT_ARG();
+ if (get_u64(&mcast_query_intvl, *argv, 0)) {
+ invarg("invalid mcast_query_interval",
+ *argv);
+ return -1;
+ }
+ addattr64(n, 1024, IFLA_BR_MCAST_QUERY_INTVL,
+ mcast_query_intvl);
} else if (matches(*argv, "help") == 0) {
explain();
return -1;
@@ -418,6 +430,10 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
if (tb[IFLA_BR_MCAST_QUERIER_INTVL])
fprintf(f, "mcast_querier_interval %llu ",
rta_getattr_u64(tb[IFLA_BR_MCAST_QUERIER_INTVL]));
+
+ if (tb[IFLA_BR_MCAST_QUERY_INTVL])
+ fprintf(f, "mcast_query_interval %llu ",
+ rta_getattr_u64(tb[IFLA_BR_MCAST_QUERY_INTVL]));
}
static void bridge_print_help(struct link_util *lu, int argc, char **argv,
--
2.4.3
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH iproute2 19/21] iplink: bridge: add support for IFLA_BR_MCAST_QUERY_RESPONSE_INTVL
2016-02-08 11:55 [PATCH iproute2 00/21] bridge: complete netlink support Nikolay Aleksandrov
` (17 preceding siblings ...)
2016-02-08 11:55 ` [PATCH iproute2 18/21] iplink: bridge: add support for IFLA_BR_MCAST_QUERY_INTVL Nikolay Aleksandrov
@ 2016-02-08 11:55 ` Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 20/21] iplink: bridge: add support for IFLA_BR_MCAST_STARTUP_QUERY_INTVL Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 21/21] iplink: bridge: add support for netfilter call attributes Nikolay Aleksandrov
20 siblings, 0 replies; 27+ messages in thread
From: Nikolay Aleksandrov @ 2016-02-08 11:55 UTC (permalink / raw)
To: netdev; +Cc: roopa, stephen, Nikolay Aleksandrov
From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
This patch implements support for the IFLA_BR_MCAST_QUERY_RESPONSE_INTVL
attribute in iproute2 so it can change the query response interval.
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
---
ip/iplink_bridge.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c
index c5e1fcc6b9a9..063b87142882 100644
--- a/ip/iplink_bridge.c
+++ b/ip/iplink_bridge.c
@@ -44,6 +44,7 @@ static void print_explain(FILE *f)
" [ mcast_membership_interval MEMBERSHIP_INTERVAL ]\n"
" [ mcast_querier_interval QUERIER_INTERVAL ]\n"
" [ mcast_query_interval QUERY_INTERVAL ]\n"
+ " [ mcast_query_response_interval QUERY_RESPONSE_INTERVAL ]\n"
"\n"
"Where: VLAN_PROTOCOL := { 802.1Q | 802.1ad }\n"
);
@@ -267,6 +268,17 @@ static int bridge_parse_opt(struct link_util *lu, int argc, char **argv,
}
addattr64(n, 1024, IFLA_BR_MCAST_QUERY_INTVL,
mcast_query_intvl);
+ } else if (!matches(*argv, "mcast_query_response_interval")) {
+ __u64 mcast_query_resp_intvl;
+
+ NEXT_ARG();
+ if (get_u64(&mcast_query_resp_intvl, *argv, 0)) {
+ invarg("invalid mcast_query_response_interval",
+ *argv);
+ return -1;
+ }
+ addattr64(n, 1024, IFLA_BR_MCAST_QUERY_RESPONSE_INTVL,
+ mcast_query_resp_intvl);
} else if (matches(*argv, "help") == 0) {
explain();
return -1;
@@ -434,6 +446,10 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
if (tb[IFLA_BR_MCAST_QUERY_INTVL])
fprintf(f, "mcast_query_interval %llu ",
rta_getattr_u64(tb[IFLA_BR_MCAST_QUERY_INTVL]));
+
+ if (tb[IFLA_BR_MCAST_QUERY_RESPONSE_INTVL])
+ fprintf(f, "mcast_query_response_interval %llu ",
+ rta_getattr_u64(tb[IFLA_BR_MCAST_QUERY_RESPONSE_INTVL]));
}
static void bridge_print_help(struct link_util *lu, int argc, char **argv,
--
2.4.3
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH iproute2 20/21] iplink: bridge: add support for IFLA_BR_MCAST_STARTUP_QUERY_INTVL
2016-02-08 11:55 [PATCH iproute2 00/21] bridge: complete netlink support Nikolay Aleksandrov
` (18 preceding siblings ...)
2016-02-08 11:55 ` [PATCH iproute2 19/21] iplink: bridge: add support for IFLA_BR_MCAST_QUERY_RESPONSE_INTVL Nikolay Aleksandrov
@ 2016-02-08 11:55 ` Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 21/21] iplink: bridge: add support for netfilter call attributes Nikolay Aleksandrov
20 siblings, 0 replies; 27+ messages in thread
From: Nikolay Aleksandrov @ 2016-02-08 11:55 UTC (permalink / raw)
To: netdev; +Cc: roopa, stephen, Nikolay Aleksandrov
From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
This patch implements support for the IFLA_BR_MCAST_STARTUP_QUERY_INTVL
attribute in iproute2 so it can change the startup query interval.
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
---
ip/iplink_bridge.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c
index 063b87142882..b531cb131e7c 100644
--- a/ip/iplink_bridge.c
+++ b/ip/iplink_bridge.c
@@ -45,6 +45,7 @@ static void print_explain(FILE *f)
" [ mcast_querier_interval QUERIER_INTERVAL ]\n"
" [ mcast_query_interval QUERY_INTERVAL ]\n"
" [ mcast_query_response_interval QUERY_RESPONSE_INTERVAL ]\n"
+ " [ mcast_startup_query_interval STARTUP_QUERY_INTERVAL ]\n"
"\n"
"Where: VLAN_PROTOCOL := { 802.1Q | 802.1ad }\n"
);
@@ -279,6 +280,17 @@ static int bridge_parse_opt(struct link_util *lu, int argc, char **argv,
}
addattr64(n, 1024, IFLA_BR_MCAST_QUERY_RESPONSE_INTVL,
mcast_query_resp_intvl);
+ } else if (!matches(*argv, "mcast_startup_query_interval")) {
+ __u64 mcast_startup_query_intvl;
+
+ NEXT_ARG();
+ if (get_u64(&mcast_startup_query_intvl, *argv, 0)) {
+ invarg("invalid mcast_startup_query_interval",
+ *argv);
+ return -1;
+ }
+ addattr64(n, 1024, IFLA_BR_MCAST_STARTUP_QUERY_INTVL,
+ mcast_startup_query_intvl);
} else if (matches(*argv, "help") == 0) {
explain();
return -1;
@@ -450,6 +462,10 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
if (tb[IFLA_BR_MCAST_QUERY_RESPONSE_INTVL])
fprintf(f, "mcast_query_response_interval %llu ",
rta_getattr_u64(tb[IFLA_BR_MCAST_QUERY_RESPONSE_INTVL]));
+
+ if (tb[IFLA_BR_MCAST_STARTUP_QUERY_INTVL])
+ fprintf(f, "mcast_startup_query_interval %llu ",
+ rta_getattr_u64(tb[IFLA_BR_MCAST_STARTUP_QUERY_INTVL]));
}
static void bridge_print_help(struct link_util *lu, int argc, char **argv,
--
2.4.3
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH iproute2 21/21] iplink: bridge: add support for netfilter call attributes
2016-02-08 11:55 [PATCH iproute2 00/21] bridge: complete netlink support Nikolay Aleksandrov
` (19 preceding siblings ...)
2016-02-08 11:55 ` [PATCH iproute2 20/21] iplink: bridge: add support for IFLA_BR_MCAST_STARTUP_QUERY_INTVL Nikolay Aleksandrov
@ 2016-02-08 11:55 ` Nikolay Aleksandrov
20 siblings, 0 replies; 27+ messages in thread
From: Nikolay Aleksandrov @ 2016-02-08 11:55 UTC (permalink / raw)
To: netdev; +Cc: roopa, stephen, Nikolay Aleksandrov
From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
This patch implements support for the IFLA_BR_NF_CALL_(IP|IP6|ARP)TABLES
attributes in iproute2 so it can change their values.
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
---
ip/iplink_bridge.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)
diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c
index b531cb131e7c..05e27fca021b 100644
--- a/ip/iplink_bridge.c
+++ b/ip/iplink_bridge.c
@@ -46,6 +46,9 @@ static void print_explain(FILE *f)
" [ mcast_query_interval QUERY_INTERVAL ]\n"
" [ mcast_query_response_interval QUERY_RESPONSE_INTERVAL ]\n"
" [ mcast_startup_query_interval STARTUP_QUERY_INTERVAL ]\n"
+ " [ nf_call_iptables NF_CALL_IPTABLES ]\n"
+ " [ nf_call_ip6tables NF_CALL_IP6TABLES ]\n"
+ " [ nf_call_arptables NF_CALL_ARPTABLES ]\n"
"\n"
"Where: VLAN_PROTOCOL := { 802.1Q | 802.1ad }\n"
);
@@ -291,6 +294,36 @@ static int bridge_parse_opt(struct link_util *lu, int argc, char **argv,
}
addattr64(n, 1024, IFLA_BR_MCAST_STARTUP_QUERY_INTVL,
mcast_startup_query_intvl);
+ } else if (matches(*argv, "nf_call_iptables") == 0) {
+ __u8 nf_call_ipt;
+
+ NEXT_ARG();
+ if (get_u8(&nf_call_ipt, *argv, 0)) {
+ invarg("invalid nf_call_iptables", *argv);
+ return -1;
+ }
+ addattr8(n, 1024, IFLA_BR_NF_CALL_IPTABLES,
+ nf_call_ipt);
+ } else if (matches(*argv, "nf_call_ip6tables") == 0) {
+ __u8 nf_call_ip6t;
+
+ NEXT_ARG();
+ if (get_u8(&nf_call_ip6t, *argv, 0)) {
+ invarg("invalid nf_call_ip6tables", *argv);
+ return -1;
+ }
+ addattr8(n, 1024, IFLA_BR_NF_CALL_IP6TABLES,
+ nf_call_ip6t);
+ } else if (matches(*argv, "nf_call_arptables") == 0) {
+ __u8 nf_call_arpt;
+
+ NEXT_ARG();
+ if (get_u8(&nf_call_arpt, *argv, 0)) {
+ invarg("invalid nf_call_arptables", *argv);
+ return -1;
+ }
+ addattr8(n, 1024, IFLA_BR_NF_CALL_ARPTABLES,
+ nf_call_arpt);
} else if (matches(*argv, "help") == 0) {
explain();
return -1;
@@ -466,6 +499,18 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
if (tb[IFLA_BR_MCAST_STARTUP_QUERY_INTVL])
fprintf(f, "mcast_startup_query_interval %llu ",
rta_getattr_u64(tb[IFLA_BR_MCAST_STARTUP_QUERY_INTVL]));
+
+ if (tb[IFLA_BR_NF_CALL_IPTABLES])
+ fprintf(f, "nf_call_iptables %u ",
+ rta_getattr_u8(tb[IFLA_BR_NF_CALL_IPTABLES]));
+
+ if (tb[IFLA_BR_NF_CALL_IP6TABLES])
+ fprintf(f, "nf_call_ip6tables %u ",
+ rta_getattr_u8(tb[IFLA_BR_NF_CALL_IP6TABLES]));
+
+ if (tb[IFLA_BR_NF_CALL_ARPTABLES])
+ fprintf(f, "nf_call_arptables %u ",
+ rta_getattr_u8(tb[IFLA_BR_NF_CALL_ARPTABLES]));
}
static void bridge_print_help(struct link_util *lu, int argc, char **argv,
--
2.4.3
^ permalink raw reply related [flat|nested] 27+ messages in thread
* Re: [PATCH iproute2 01/21] iplink: bridge: export bridge_id and designated_root
2016-02-08 11:55 ` [PATCH iproute2 01/21] iplink: bridge: export bridge_id and designated_root Nikolay Aleksandrov
@ 2016-02-08 22:21 ` Stephen Hemminger
2016-02-08 22:25 ` Nikolay Aleksandrov
0 siblings, 1 reply; 27+ messages in thread
From: Stephen Hemminger @ 2016-02-08 22:21 UTC (permalink / raw)
To: Nikolay Aleksandrov; +Cc: netdev, roopa, Nikolay Aleksandrov
On Mon, 8 Feb 2016 12:55:07 +0100
Nikolay Aleksandrov <razor@blackwall.org> wrote:
>
> +static void br_dump_bridge_id(const struct ifla_bridge_id *id, char *buf,
> + size_t len)
> +{
> + const unsigned char *x = (const unsigned char *)id;
> +
> + snprintf(buf, len, "%.2x%.2x.%.2x%.2x%.2x%.2x%.2x%.2x", x[0], x[1],
> + x[2], x[3], x[4], x[5], x[6], x[7]);
> +}
Please don't reinvent ether_ntoa_r
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH iproute2 03/21] iplink: bridge: export read-only timers
2016-02-08 11:55 ` [PATCH iproute2 03/21] iplink: bridge: export read-only timers Nikolay Aleksandrov
@ 2016-02-08 22:23 ` Stephen Hemminger
2016-02-08 22:26 ` Nikolay Aleksandrov
0 siblings, 1 reply; 27+ messages in thread
From: Stephen Hemminger @ 2016-02-08 22:23 UTC (permalink / raw)
To: Nikolay Aleksandrov; +Cc: netdev, roopa, Nikolay Aleksandrov
On Mon, 8 Feb 2016 12:55:09 +0100
Nikolay Aleksandrov <razor@blackwall.org> wrote:
> +
> + if (tb[IFLA_BR_HELLO_TIMER])
> + fprintf(f, "hello_timer %llu ",
> + rta_getattr_u64(tb[IFLA_BR_HELLO_TIMER]));
> +
> + if (tb[IFLA_BR_TCN_TIMER])
> + fprintf(f, "tcn_timer %llu ",
> + rta_getattr_u64(tb[IFLA_BR_TCN_TIMER]));
> +
> + if (tb[IFLA_BR_TOPOLOGY_CHANGE_TIMER])
> + fprintf(f, "topology_change_timer %llu ",
> + rta_getattr_u64(tb[IFLA_BR_TOPOLOGY_CHANGE_TIMER]));
> +
> + if (tb[IFLA_BR_GC_TIMER])
> + fprintf(f, "gc_timer %llu ",
> +
These should be rescaled as seconds.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH iproute2 01/21] iplink: bridge: export bridge_id and designated_root
2016-02-08 22:21 ` Stephen Hemminger
@ 2016-02-08 22:25 ` Nikolay Aleksandrov
2016-02-08 22:29 ` Nikolay Aleksandrov
0 siblings, 1 reply; 27+ messages in thread
From: Nikolay Aleksandrov @ 2016-02-08 22:25 UTC (permalink / raw)
To: Stephen Hemminger, Nikolay Aleksandrov; +Cc: netdev, roopa
On 02/08/2016 11:21 PM, Stephen Hemminger wrote:
> On Mon, 8 Feb 2016 12:55:07 +0100
> Nikolay Aleksandrov <razor@blackwall.org> wrote:
>
>>
>> +static void br_dump_bridge_id(const struct ifla_bridge_id *id, char *buf,
>> + size_t len)
>> +{
>> + const unsigned char *x = (const unsigned char *)id;
>> +
>> + snprintf(buf, len, "%.2x%.2x.%.2x%.2x%.2x%.2x%.2x%.2x", x[0], x[1],
>> + x[2], x[3], x[4], x[5], x[6], x[7]);
>> +}
>
> Please don't reinvent ether_ntoa_r
>
This was taken from bridge-utils, it actually includes 2 more bytes, it's
not only an ethernet address.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH iproute2 03/21] iplink: bridge: export read-only timers
2016-02-08 22:23 ` Stephen Hemminger
@ 2016-02-08 22:26 ` Nikolay Aleksandrov
0 siblings, 0 replies; 27+ messages in thread
From: Nikolay Aleksandrov @ 2016-02-08 22:26 UTC (permalink / raw)
To: Stephen Hemminger, Nikolay Aleksandrov; +Cc: netdev, roopa
On 02/08/2016 11:23 PM, Stephen Hemminger wrote:
> On Mon, 8 Feb 2016 12:55:09 +0100
> Nikolay Aleksandrov <razor@blackwall.org> wrote:
>
>> +
>> + if (tb[IFLA_BR_HELLO_TIMER])
>> + fprintf(f, "hello_timer %llu ",
>> + rta_getattr_u64(tb[IFLA_BR_HELLO_TIMER]));
>> +
>> + if (tb[IFLA_BR_TCN_TIMER])
>> + fprintf(f, "tcn_timer %llu ",
>> + rta_getattr_u64(tb[IFLA_BR_TCN_TIMER]));
>> +
>> + if (tb[IFLA_BR_TOPOLOGY_CHANGE_TIMER])
>> + fprintf(f, "topology_change_timer %llu ",
>> + rta_getattr_u64(tb[IFLA_BR_TOPOLOGY_CHANGE_TIMER]));
>> +
>> + if (tb[IFLA_BR_GC_TIMER])
>> + fprintf(f, "gc_timer %llu ",
>> +
>
> These should be rescaled as seconds.
>
Wanted to be consistent with the other exported time values, but okay
I'll convert these to seconds.
Thanks,
Nik
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH iproute2 01/21] iplink: bridge: export bridge_id and designated_root
2016-02-08 22:25 ` Nikolay Aleksandrov
@ 2016-02-08 22:29 ` Nikolay Aleksandrov
0 siblings, 0 replies; 27+ messages in thread
From: Nikolay Aleksandrov @ 2016-02-08 22:29 UTC (permalink / raw)
To: Stephen Hemminger, Nikolay Aleksandrov; +Cc: netdev, roopa
On 02/08/2016 11:25 PM, Nikolay Aleksandrov wrote:
> On 02/08/2016 11:21 PM, Stephen Hemminger wrote:
>> On Mon, 8 Feb 2016 12:55:07 +0100
>> Nikolay Aleksandrov <razor@blackwall.org> wrote:
>>
>>>
>>> +static void br_dump_bridge_id(const struct ifla_bridge_id *id, char *buf,
>>> + size_t len)
>>> +{
>>> + const unsigned char *x = (const unsigned char *)id;
>>> +
>>> + snprintf(buf, len, "%.2x%.2x.%.2x%.2x%.2x%.2x%.2x%.2x", x[0], x[1],
>>> + x[2], x[3], x[4], x[5], x[6], x[7]);
>>> +}
>>
>> Please don't reinvent ether_ntoa_r
>>
> This was taken from bridge-utils, it actually includes 2 more bytes, it's
> not only an ethernet address.
>
Also the output is very different, i.e. bridge_id 8000.000000000000
there're no colons.
^ permalink raw reply [flat|nested] 27+ messages in thread
end of thread, other threads:[~2016-02-08 22:29 UTC | newest]
Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-08 11:55 [PATCH iproute2 00/21] bridge: complete netlink support Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 01/21] iplink: bridge: export bridge_id and designated_root Nikolay Aleksandrov
2016-02-08 22:21 ` Stephen Hemminger
2016-02-08 22:25 ` Nikolay Aleksandrov
2016-02-08 22:29 ` Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 02/21] iplink: bridge: export root_(port|path_cost), topology_change and change_detected Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 03/21] iplink: bridge: export read-only timers Nikolay Aleksandrov
2016-02-08 22:23 ` Stephen Hemminger
2016-02-08 22:26 ` Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 04/21] iplink: bridge: add support for IFLA_BR_GROUP_FWD_MASK Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 05/21] iplink: bridge: add support for IFLA_BR_GROUP_ADDR Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 06/21] iplink: bridge: add support for IFLA_BR_VLAN_DEFAULT_PVID Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 07/21] iplink: bridge: add support for IFLA_BR_MCAST_ROUTER Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 08/21] iplink: bridge: add support for IFLA_BR_MCAST_SNOOPING Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 09/21] iplink: bridge: add support for IFLA_BR_MCAST_QUERY_USE_IFADDR Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 10/21] iplink: bridge: add support for IFLA_BR_MCAST_QUERIER Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 11/21] iplink: bridge: add support for IFLA_BR_MCAST_HASH_ELASTICITY Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 12/21] iplink: bridge: add support for IFLA_BR_MCAST_HASH_MAX Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 13/21] iplink: bridge: add support for IFLA_BR_MCAST_LAST_MEMBER_CNT Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 14/21] iplink: bridge: add support for IFLA_BR_MCAST_STARTUP_QUERY_CNT Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 15/21] iplink: bridge: add support for IFLA_BR_MCAST_LAST_MEMBER_INTVL Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 16/21] iplink: bridge: add support for IFLA_BR_MCAST_MEMBERSHIP_INTVL Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 17/21] iplink: bridge: add support for IFLA_BR_MCAST_QUERIER_INTVL Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 18/21] iplink: bridge: add support for IFLA_BR_MCAST_QUERY_INTVL Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 19/21] iplink: bridge: add support for IFLA_BR_MCAST_QUERY_RESPONSE_INTVL Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 20/21] iplink: bridge: add support for IFLA_BR_MCAST_STARTUP_QUERY_INTVL Nikolay Aleksandrov
2016-02-08 11:55 ` [PATCH iproute2 21/21] iplink: bridge: add support for netfilter call attributes Nikolay Aleksandrov
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.