[net-next iproute2 PATCH v4 0/2] iplink: hsr: add support for creating PRP device

STALE2189d

Revision v4 of 2 in this series.

6 messages, 2 authors, 2020-08-17 · open the first message on its own page

[net-next iproute2 PATCH v4 0/2] iplink: hsr: add support for creating PRP device

From: Murali Karicheri <hidden>
Date: 2020-08-06 20:38:10

This series enhances the iproute2 iplink module to add support
for creating PRP device similar to HSR. The kernel part of this
is already merged to net-next and the same can be referenced
at https://www.spinics.net/lists/linux-api/msg42615.html

v3 of the series is rebased to iproute2-next/master at
git://git.kernel.org/pub/scm/network/iproute2/iproute2-next
and send as v4.

Please apply this if looks good.

Murali Karicheri (2):
  iplink: hsr: add support for creating PRP device similar to HSR
  ip: iplink: prp: update man page for new parameter

 ip/iplink_hsr.c       | 19 +++++++++++++++++--
 man/man8/ip-link.8.in |  9 ++++++++-
 2 files changed, 25 insertions(+), 3 deletions(-)

-- 
2.17.1

[net-next iproute2 PATCH v4 1/2] iplink: hsr: add support for creating PRP device similar to HSR

From: Murali Karicheri <hidden>
Date: 2020-08-06 20:37:43

This patch enhances the iplink command to add a proto parameters to
create PRP device/interface similar to HSR. Both protocols are
quite similar and requires a pair of Ethernet interfaces. So re-use
the existing HSR iplink command to create PRP device/interface as
well. Use proto parameter to differentiate the two protocols.

Signed-off-by: Murali Karicheri <redacted>
---
 ip/iplink_hsr.c | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/ip/iplink_hsr.c b/ip/iplink_hsr.c
index 7d9167d4e6a3..6ea138a23cbc 100644
--- a/ip/iplink_hsr.c
+++ b/ip/iplink_hsr.c
@@ -25,7 +25,7 @@ static void print_usage(FILE *f)
 {
 	fprintf(f,
 		"Usage:\tip link add name NAME type hsr slave1 SLAVE1-IF slave2 SLAVE2-IF\n"
-		"\t[ supervision ADDR-BYTE ] [version VERSION]\n"
+		"\t[ supervision ADDR-BYTE ] [version VERSION] [proto PROTOCOL]\n"
 		"\n"
 		"NAME\n"
 		"	name of new hsr device (e.g. hsr0)\n"
@@ -35,7 +35,9 @@ static void print_usage(FILE *f)
 		"	0-255; the last byte of the multicast address used for HSR supervision\n"
 		"	frames (default = 0)\n"
 		"VERSION\n"
-		"	0,1; the protocol version to be used. (default = 0)\n");
+		"	0,1; the protocol version to be used. (default = 0)\n"
+		"PROTOCOL\n"
+		"	0 - HSR, 1 - PRP. (default = 0 - HSR)\n");
 }
 
 static void usage(void)
@@ -49,6 +51,7 @@ static int hsr_parse_opt(struct link_util *lu, int argc, char **argv,
 	int ifindex;
 	unsigned char multicast_spec;
 	unsigned char protocol_version;
+	unsigned char protocol = HSR_PROTOCOL_HSR;
 
 	while (argc > 0) {
 		if (matches(*argv, "supervision") == 0) {
@@ -64,6 +67,13 @@ static int hsr_parse_opt(struct link_util *lu, int argc, char **argv,
 				invarg("version is invalid", *argv);
 			addattr_l(n, 1024, IFLA_HSR_VERSION,
 				  &protocol_version, 1);
+		} else if (matches(*argv, "proto") == 0) {
+			NEXT_ARG();
+			if (!(get_u8(&protocol, *argv, 0) == HSR_PROTOCOL_HSR ||
+			      get_u8(&protocol, *argv, 0) == HSR_PROTOCOL_PRP))
+				invarg("protocol is invalid", *argv);
+			addattr_l(n, 1024, IFLA_HSR_PROTOCOL,
+				  &protocol, 1);
 		} else if (matches(*argv, "slave1") == 0) {
 			NEXT_ARG();
 			ifindex = ll_name_to_index(*argv);
@@ -140,6 +150,11 @@ static void hsr_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
 					 RTA_PAYLOAD(tb[IFLA_HSR_SUPERVISION_ADDR]),
 					 ARPHRD_VOID,
 					 b1, sizeof(b1)));
+	if (tb[IFLA_HSR_PROTOCOL])
+		print_int(PRINT_ANY,
+			  "proto",
+			  "proto %d ",
+			  rta_getattr_u8(tb[IFLA_HSR_PROTOCOL]));
 }
 
 static void hsr_print_help(struct link_util *lu, int argc, char **argv,
-- 
2.17.1

[net-next iproute2 PATCH v4 2/2] ip: iplink: prp: update man page for new parameter

From: Murali Karicheri <hidden>
Date: 2020-08-06 20:38:07

PRP support requires a proto parameter which is 0 for hsr and 1 for
prp. Default is hsr and is backward compatible.

Signed-off-by: Murali Karicheri <redacted>
---
 man/man8/ip-link.8.in | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/man/man8/ip-link.8.in b/man/man8/ip-link.8.in
index c6bd2c530547..367105b72f44 100644
--- a/man/man8/ip-link.8.in
+++ b/man/man8/ip-link.8.in
@@ -1404,7 +1404,8 @@ the following additional arguments are supported:
 .BI slave1 " SLAVE1-IF " slave2 " SLAVE2-IF "
 .RB [ " supervision"
 .IR ADDR-BYTE " ] ["
-.BR version " { " 0 " | " 1 " } ]"
+.BR version " { " 0 " | " 1 " } ["
+.BR proto " { " 0 " | " 1 " } ]"
 
 .in +8
 .sp
@@ -1425,6 +1426,12 @@ Default option is "0", possible values 0-255.
 - Selects the protocol version of the interface. Default option is "0", which
 corresponds to the 2010 version of the HSR standard. Option "1" activates the
 2012 version.
+
+.BR proto " { " 0 " | " 1 " }"
+- Selects the protocol at the interface. Default option is "0", which
+corresponds to the HSR standard. Option "1" activates the Parallel
+Redundancy Protocol (PRP).
+.
 .in -8
 
 .TP
-- 
2.17.1

Re: [net-next iproute2 PATCH v4 0/2] iplink: hsr: add support for creating PRP device

From: Murali Karicheri <hidden>
Date: 2020-08-10 15:44:32

iproute2 maintainers,

On 8/6/20 4:37 PM, Murali Karicheri wrote:
This series enhances the iproute2 iplink module to add support
for creating PRP device similar to HSR. The kernel part of this
is already merged to net-next and the same can be referenced
at https://www.spinics.net/lists/linux-api/msg42615.html

v3 of the series is rebased to iproute2-next/master at
git://git.kernel.org/pub/scm/network/iproute2/iproute2-next
and send as v4.

Please apply this if looks good.

Murali Karicheri (2):
   iplink: hsr: add support for creating PRP device similar to HSR
   ip: iplink: prp: update man page for new parameter

  ip/iplink_hsr.c       | 19 +++++++++++++++++--
  man/man8/ip-link.8.in |  9 ++++++++-
  2 files changed, 25 insertions(+), 3 deletions(-)
Please merge this series to iproute2 as it is the missing piece
needed to fully support PRP protocol support in netdev subsystem. Kernel
part is already merged and expected to be in v5.9.x kernel.

Thanks
-- 
Murali Karicheri
Texas Instruments

Re: [net-next iproute2 PATCH v4 1/2] iplink: hsr: add support for creating PRP device similar to HSR

From: Stephen Hemminger <stephen@networkplumber.org>
Date: 2020-08-16 22:46:22

On Thu, 6 Aug 2020 16:37:11 -0400
Murali Karicheri [off-list ref] wrote:
+	
+		print_int(PRINT_ANY,
+			  "proto",
+			  "proto %d ",
+			  rta_getattr_u8(tb[IFLA_HSR_PROTOCOL]));
Since this unsigned value, you probably want to use print_uint, or print_hhu.
Also please put as many arguments on one line that will fit in 80 (to 90) characters.

	if (tb[IFLA_HSR_PROTOCOL])
		print_hhu(PRINT_ANY, "proto", "proto %hhu ", 
			  rta_getattr_u8(tb[IFLA_HSR_PROTOCOL]));

Re: [net-next iproute2 PATCH v4 1/2] iplink: hsr: add support for creating PRP device similar to HSR

From: Murali Karicheri <hidden>
Date: 2020-08-17 20:59:20


On 8/16/20 6:46 PM, Stephen Hemminger wrote:
On Thu, 6 Aug 2020 16:37:11 -0400
Murali Karicheri [off-list ref] wrote:
quoted
+	
quoted
+		print_int(PRINT_ANY,
+			  "proto",
+			  "proto %d ",
+			  rta_getattr_u8(tb[IFLA_HSR_PROTOCOL]));
Since this unsigned value, you probably want to use print_uint, or print_hhu.
Also please put as many arguments on one line that will fit in 80 (to 90) characters.

	if (tb[IFLA_HSR_PROTOCOL])
		print_hhu(PRINT_ANY, "proto", "proto %hhu ",
			  rta_getattr_u8(tb[IFLA_HSR_PROTOCOL]));
Ok. Will send v5 shortly for this.
-- 
Murali Karicheri
Texas Instruments
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help