* [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 [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 [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