[v3] batctl: add isolation_mark support

Message ID 1393336784-1094-1-git-send-email-antonio@meshcoding.com (mailing list archive)
State Accepted, archived
Commit 6b3655224ec7ab9d8fe7812d17c057ba5fd3b4ca
Headers

Commit Message

Antonio Quartulli Feb. 25, 2014, 1:59 p.m. UTC
  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(-)
  

Comments

Marek Lindner March 11, 2014, 9:38 a.m. UTC | #1
On Tuesday 25 February 2014 14:59:44 Antonio Quartulli wrote:
> 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(-)

Applied in revision 6b36552.

Thanks,
Marek
  

Patch

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,
 };