2020-08-17 23:04:48

by Karicheri, Muralidharan

[permalink] [raw]
Subject: [PATCH iproute2 v5 0/2] iplink: hsr: add support for creating PRP device

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 v5.9 master

v4 - addressed comment from Stephen Hemminger
- Sending this with a iproute2 prefix so that this can
be merged to v5.9 iprout2 if possible.
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 | 17 +++++++++++++++--
man/man8/ip-link.8.in | 9 ++++++++-
2 files changed, 23 insertions(+), 3 deletions(-)

--
2.17.1


2020-08-17 23:05:02

by Karicheri, Muralidharan

[permalink] [raw]
Subject: [PATCH iproute2 v5 1/2] iplink: hsr: add support for creating PRP device similar to HSR

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 <[email protected]>
---
ip/iplink_hsr.c | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/ip/iplink_hsr.c b/ip/iplink_hsr.c
index 7d9167d4e6a3..da2d03d4bcbc 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,9 @@ 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_hhu(PRINT_ANY, "proto", "proto %hhu ",
+ rta_getattr_u8(tb[IFLA_HSR_PROTOCOL]));
}

static void hsr_print_help(struct link_util *lu, int argc, char **argv,
--
2.17.1

2020-08-17 23:06:41

by Karicheri, Muralidharan

[permalink] [raw]
Subject: [PATCH iproute2 v5 2/2] ip: iplink: prp: update man page for new parameter

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 <[email protected]>
---
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

2020-08-19 21:22:55

by Karicheri, Muralidharan

[permalink] [raw]
Subject: Re: [PATCH iproute2 v5 0/2] iplink: hsr: add support for creating PRP device

Hi, Stephen,

On 8/17/20 5:17 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 v5.9 master
>
> v5 - addressed comment from Stephen Hemminger
> - Sending this with a iproute2 prefix so that this can
> be merged to v5.9 iprout2 if possible.
> 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 | 17 +++++++++++++++--
> man/man8/ip-link.8.in | 9 ++++++++-
> 2 files changed, 23 insertions(+), 3 deletions(-)
>
Can we merge this version please?
--
Murali Karicheri
Texas Instruments

2020-08-21 21:16:30

by Karicheri, Muralidharan

[permalink] [raw]
Subject: Re: [PATCH iproute2 v5 0/2] iplink: hsr: add support for creating PRP device

Stephen,

On 8/19/20 5:21 PM, Murali Karicheri wrote:
> Hi, Stephen,
>
> On 8/17/20 5:17 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 v5.9 master
>>
>> v5 - addressed comment from Stephen Hemminger
>>     - Sending this with a iproute2 prefix so that this can
>>       be merged to v5.9 iprout2 if possible.
>> 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       | 17 +++++++++++++++--
>>   man/man8/ip-link.8.in |  9 ++++++++-
>>   2 files changed, 23 insertions(+), 3 deletions(-)
>>
> Can we merge this version please?

Ping .... Thank you!
--
Murali Karicheri
Texas Instruments

2020-08-23 04:16:38

by Stephen Hemminger

[permalink] [raw]
Subject: Re: [PATCH iproute2 v5 0/2] iplink: hsr: add support for creating PRP device

On Mon, 17 Aug 2020 17:17:35 -0400
Murali Karicheri <[email protected]> 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 v5.9 master
>
> v4 - addressed comment from Stephen Hemminger
> - Sending this with a iproute2 prefix so that this can
> be merged to v5.9 iprout2 if possible.
> 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 | 17 +++++++++++++++--
> man/man8/ip-link.8.in | 9 ++++++++-
> 2 files changed, 23 insertions(+), 3 deletions(-)

Applied. Than
ks for updating