netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [net-next iproute2 PATCH v4 0/2] iplink: hsr: add support for creating PRP device
@ 2020-08-06 20:37 Murali Karicheri
  2020-08-06 20:37 ` [net-next iproute2 PATCH v4 1/2] iplink: hsr: add support for creating PRP device similar to HSR Murali Karicheri
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Murali Karicheri @ 2020-08-06 20:37 UTC (permalink / raw)
  To: davem, kuba, netdev, linux-kernel, linux-api, nsekhar,
	vinicius.gomes, stephen, kuznet

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


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [net-next iproute2 PATCH v4 1/2] iplink: hsr: add support for creating PRP device similar to HSR
  2020-08-06 20:37 [net-next iproute2 PATCH v4 0/2] iplink: hsr: add support for creating PRP device Murali Karicheri
@ 2020-08-06 20:37 ` Murali Karicheri
  2020-08-16 22:46   ` Stephen Hemminger
  2020-08-06 20:37 ` [net-next iproute2 PATCH v4 2/2] ip: iplink: prp: update man page for new parameter Murali Karicheri
  2020-08-10 15:43 ` [net-next iproute2 PATCH v4 0/2] iplink: hsr: add support for creating PRP device Murali Karicheri
  2 siblings, 1 reply; 6+ messages in thread
From: Murali Karicheri @ 2020-08-06 20:37 UTC (permalink / raw)
  To: davem, kuba, netdev, linux-kernel, linux-api, nsekhar,
	vinicius.gomes, stephen, kuznet

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 <m-karicheri2@ti.com>
---
 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


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [net-next iproute2 PATCH v4 2/2] ip: iplink: prp: update man page for new parameter
  2020-08-06 20:37 [net-next iproute2 PATCH v4 0/2] iplink: hsr: add support for creating PRP device Murali Karicheri
  2020-08-06 20:37 ` [net-next iproute2 PATCH v4 1/2] iplink: hsr: add support for creating PRP device similar to HSR Murali Karicheri
@ 2020-08-06 20:37 ` Murali Karicheri
  2020-08-10 15:43 ` [net-next iproute2 PATCH v4 0/2] iplink: hsr: add support for creating PRP device Murali Karicheri
  2 siblings, 0 replies; 6+ messages in thread
From: Murali Karicheri @ 2020-08-06 20:37 UTC (permalink / raw)
  To: davem, kuba, netdev, linux-kernel, linux-api, nsekhar,
	vinicius.gomes, stephen, kuznet

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 <m-karicheri2@ti.com>
---
 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


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [net-next iproute2 PATCH v4 0/2] iplink: hsr: add support for creating PRP device
  2020-08-06 20:37 [net-next iproute2 PATCH v4 0/2] iplink: hsr: add support for creating PRP device Murali Karicheri
  2020-08-06 20:37 ` [net-next iproute2 PATCH v4 1/2] iplink: hsr: add support for creating PRP device similar to HSR Murali Karicheri
  2020-08-06 20:37 ` [net-next iproute2 PATCH v4 2/2] ip: iplink: prp: update man page for new parameter Murali Karicheri
@ 2020-08-10 15:43 ` Murali Karicheri
  2 siblings, 0 replies; 6+ messages in thread
From: Murali Karicheri @ 2020-08-10 15:43 UTC (permalink / raw)
  To: davem, kuba, netdev, linux-kernel, linux-api, nsekhar,
	vinicius.gomes, stephen, kuznet

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [net-next iproute2 PATCH v4 1/2] iplink: hsr: add support for creating PRP device similar to HSR
  2020-08-06 20:37 ` [net-next iproute2 PATCH v4 1/2] iplink: hsr: add support for creating PRP device similar to HSR Murali Karicheri
@ 2020-08-16 22:46   ` Stephen Hemminger
  2020-08-17 20:58     ` Murali Karicheri
  0 siblings, 1 reply; 6+ messages in thread
From: Stephen Hemminger @ 2020-08-16 22:46 UTC (permalink / raw)
  To: Murali Karicheri
  Cc: davem, kuba, netdev, linux-kernel, linux-api, nsekhar,
	vinicius.gomes, kuznet

On Thu, 6 Aug 2020 16:37:11 -0400
Murali Karicheri <m-karicheri2@ti.com> 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]));

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [net-next iproute2 PATCH v4 1/2] iplink: hsr: add support for creating PRP device similar to HSR
  2020-08-16 22:46   ` Stephen Hemminger
@ 2020-08-17 20:58     ` Murali Karicheri
  0 siblings, 0 replies; 6+ messages in thread
From: Murali Karicheri @ 2020-08-17 20:58 UTC (permalink / raw)
  To: Stephen Hemminger
  Cc: davem, kuba, netdev, linux-kernel, linux-api, nsekhar,
	vinicius.gomes, kuznet



On 8/16/20 6:46 PM, Stephen Hemminger wrote:
> On Thu, 6 Aug 2020 16:37:11 -0400
> Murali Karicheri <m-karicheri2@ti.com> 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]));
> 
Ok. Will send v5 shortly for this.
-- 
Murali Karicheri
Texas Instruments

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-08-17 20:59 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-06 20:37 [net-next iproute2 PATCH v4 0/2] iplink: hsr: add support for creating PRP device Murali Karicheri
2020-08-06 20:37 ` [net-next iproute2 PATCH v4 1/2] iplink: hsr: add support for creating PRP device similar to HSR Murali Karicheri
2020-08-16 22:46   ` Stephen Hemminger
2020-08-17 20:58     ` Murali Karicheri
2020-08-06 20:37 ` [net-next iproute2 PATCH v4 2/2] ip: iplink: prp: update man page for new parameter Murali Karicheri
2020-08-10 15:43 ` [net-next iproute2 PATCH v4 0/2] iplink: hsr: add support for creating PRP device Murali Karicheri

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).