bridge: vlan: add global mcast_query_response_interval option

Add control and dump support for the global mcast_query_response_interval
option which sets the Max Response Time/Maximum Response Delay for IGMP/MLD
queries sent by the bridge. To be consistent with the same bridge-wide
option the value is reported with USER_HZ granularity and the same
granularity is expected when setting it.
Syntax:
 $ bridge vlan global set dev bridge vid 1 mcast_query_response_interval 13000

Signed-off-by: Nikolay Aleksandrov <nikolay@nvidia.com>
Signed-off-by: David Ahern <dsahern@kernel.org>
This commit is contained in:
Nikolay Aleksandrov 2021-08-28 14:08:02 +03:00 committed by David Ahern
parent 0e4cfa0370
commit 60dcd5c318
2 changed files with 23 additions and 1 deletions

View File

@ -48,6 +48,7 @@ static void usage(void)
" [ mcast_membership_interval MEMBERSHIP_INTERVAL ]\n" " [ mcast_membership_interval MEMBERSHIP_INTERVAL ]\n"
" [ mcast_querier_interval QUERIER_INTERVAL ]\n" " [ mcast_querier_interval QUERIER_INTERVAL ]\n"
" [ mcast_query_interval QUERY_INTERVAL ]\n" " [ mcast_query_interval QUERY_INTERVAL ]\n"
" [ mcast_query_response_interval QUERY_RESPONSE_INTERVAL ]\n"
" bridge vlan global { show } [ dev DEV ] [ vid VLAN_ID ]\n"); " bridge vlan global { show } [ dev DEV ] [ vid VLAN_ID ]\n");
exit(-1); exit(-1);
} }
@ -475,6 +476,14 @@ static int vlan_global_option_set(int argc, char **argv)
addattr64(&req.n, 1024, addattr64(&req.n, 1024,
BRIDGE_VLANDB_GOPTS_MCAST_QUERY_INTVL, BRIDGE_VLANDB_GOPTS_MCAST_QUERY_INTVL,
val64); val64);
} else if (strcmp(*argv, "mcast_query_response_interval") == 0) {
NEXT_ARG();
if (get_u64(&val64, *argv, 0))
invarg("invalid mcast_query_response_interval",
*argv);
addattr64(&req.n, 1024,
BRIDGE_VLANDB_GOPTS_MCAST_QUERY_RESPONSE_INTVL,
val64);
} else { } else {
if (strcmp(*argv, "help") == 0) if (strcmp(*argv, "help") == 0)
NEXT_ARG(); NEXT_ARG();
@ -859,6 +868,12 @@ static void print_vlan_global_opts(struct rtattr *a, int ifindex)
"mcast_query_interval %llu ", "mcast_query_interval %llu ",
rta_getattr_u64(vattr)); rta_getattr_u64(vattr));
} }
if (vtb[BRIDGE_VLANDB_GOPTS_MCAST_QUERY_RESPONSE_INTVL]) {
vattr = vtb[BRIDGE_VLANDB_GOPTS_MCAST_QUERY_RESPONSE_INTVL];
print_lluint(PRINT_ANY, "mcast_query_response_interval",
"mcast_query_response_interval %llu ",
rta_getattr_u64(vattr));
}
print_nl(); print_nl();
close_json_object(); close_json_object();
} }

View File

@ -175,7 +175,9 @@ bridge \- show / manipulate bridge addresses and devices
.B mcast_querier_interval .B mcast_querier_interval
.IR QUERIER_INTERVAL " ] [ " .IR QUERIER_INTERVAL " ] [ "
.B mcast_query_interval .B mcast_query_interval
.IR QUERY_INTERVAL " ]" .IR QUERY_INTERVAL " ] [ "
.B mcast_query_response_interval
.IR QUERY_RESPONSE_INTERVAL " ]"
.ti -8 .ti -8
.BR "bridge vlan global" " [ " show " ] [ " .BR "bridge vlan global" " [ " show " ] [ "
@ -988,6 +990,11 @@ was enabled).
interval between queries sent by the bridge after the end of the interval between queries sent by the bridge after the end of the
startup phase. startup phase.
.TP
.BI mcast_query_response_interval " QUERY_RESPONSE_INTERVAL "
set the Max Response Time/Maximum Response Delay for IGMP/MLD
queries sent by the bridge.
.SS bridge vlan global show - list global vlan options. .SS bridge vlan global show - list global vlan options.
This command displays the global VLAN options for each VLAN entry. This command displays the global VLAN options for each VLAN entry.