From: Antonio Quartulli antonio@open-mesh.com
With this patch it is now possible to set/unset the value of the isolation_mark used by the Extended Isolation feature in batman-adv.
Signed-off-by: Antonio Quartulli antonio@open-mesh.com ---
Change from v2: - added section in README
Change from v1: - added section in man page
README | 13 +++++++++++++ man/batctl.8 | 20 ++++++++++++++++++++ sys.c | 9 +++++++-- sys.h | 1 + 4 files changed, 41 insertions(+), 2 deletions(-)
diff --git a/README b/README index 5af95c8..a4507b7 100644 --- a/README +++ b/README @@ -399,6 +399,19 @@ display or modify the packet aggregation setting
Usage: batctl aggregation|ag [0|1]
+batctl isolation_mark +===================== + +display or modify the isolation mark. +This value is used by Extended Isolation feature. + +Usage: batctl isolation_mark|mark $value[/0x$mask] + +Example 1: batctl mark 0x00000001/0xffffffff +Example 2: batctl mark 0x00040000/0xffff0000 +Example 3: batctl mark 16 +Example 4: batctl mark 0x0f + batctl translocal =================
diff --git a/man/batctl.8 b/man/batctl.8 index 2fe5941..b808293 100644 --- a/man/batctl.8 +++ b/man/batctl.8 @@ -151,6 +151,26 @@ least XX TQ better than the currently selected gateway (XX has to be a number be .RE .RE .br +.IP "\fBisolation_mark\fP|\fBmark\fP" +If no parameter is given the current isolation mark value is displayed. +Otherwise the parameter is used to set or unset the isolation mark used by the +Extended Isolation feature. +.br +The input is supposed to be of the form $value/$mask, where $value can be any +32bit long integer (expressed in decimal or hex base) and $mask is a generic +bitmask (expressed in hex base) that selects the bits to take into consideration +from $value. It is also possible to enter the input using only $value and in +this case the full bitmask is used by default. + +.br +.br +Example 1: 0x00000001/0xffffffff +.br +Example 2: 0x00040000/0xffff0000 +.br +Example 3: 16 or 0x0F +.br +.br .PP .I \fBdebug tables: .IP diff --git a/sys.c b/sys.c index 5cebf52..fd6e107 100644 --- a/sys.c +++ b/sys.c @@ -96,8 +96,13 @@ const struct settings_data batctl_settings[BATCTL_SETTINGS_NUM] = { .opt_short = "nc", .sysfs_name = "network_coding", .params = sysfs_param_enable, - } - + }, + { + .opt_long = "isolation_mark", + .opt_short = "mark", + .sysfs_name = "isolation_mark", + .params = NULL, + }, };
static void interface_usage(void) diff --git a/sys.h b/sys.h index 2cbbcfb..5633822 100644 --- a/sys.h +++ b/sys.h @@ -46,6 +46,7 @@ enum batctl_settings_list { BATCTL_SETTINGS_BONDING, BATCTL_SETTINGS_FRAGMENTATION, BATCTL_SETTINGS_NETWORK_CODING, + BATCTL_SETTINGS_ISOLATION_MARK, BATCTL_SETTINGS_NUM, };