On Tue, Jul 07, 2020 at 01:45:00PM -0400, Murali Karicheri wrote:
> 
> 
> On 7/7/20 1:43 PM, Murali via lists.yoctoproject.org wrote:
> >Denys,
> >
> >What is the email id for meta-arago. I am subscribed to it, but my mail
> >bounced.
> >
> >I tried [email protected]
> >
> I think I got it. Is it [email protected] ?

Correct.


> >Thanks
> >
> >Murali
> >
> >On 7/7/20 1:07 PM, Denys Dmytriyenko wrote:
> >>Wrong mailing list. Please send this to meta-arago list instead.
> >>
> >>
> >>On Tue, Jul 07, 2020 at 01:02:07PM -0400, Murali Karicheri wrote:
> >>>This recipe includes the patches required in iproute2 to add
> >>>PRP ip link support as well as allow use of VLAN for supervision
> >>>frames.
> >>>
> >>>Signed-off-by: Murali Karicheri <[email protected]>
> >>>---
> >>>  ...upport-for-creating-PRP-device-simil.patch | 109 ++++++++++++++++++
> >>>  ...dd-support-for-vlan-tagged-supervisi.patch | 108 +++++++++++++++++
> >>>  .../iproute2/iproute2_5.5.0.bbappend          |   8 ++
> >>>  3 files changed, 225 insertions(+)
> >>>  create mode 100644 
> >>>meta-arago-distro/recipes-connectivity/iproute2/iproute2/0013-iplink-hsr-add-support-for-creating-PRP-device-simil.patch
> >>>
> >>>  create mode 100644 
> >>>meta-arago-distro/recipes-connectivity/iproute2/iproute2/0014-iplink-hsr-prp-add-support-for-vlan-tagged-supervisi.patch
> >>>
> >>>  create mode 100644
> >>>meta-arago-distro/recipes-connectivity/iproute2/iproute2_5.5.0.bbappend
> >>>
> >>>diff --git 
> >>>a/meta-arago-distro/recipes-connectivity/iproute2/iproute2/0013-iplink-hsr-add-support-for-creating-PRP-device-simil.patch
> >>> 
> >>>b/meta-arago-distro/recipes-connectivity/iproute2/iproute2/0013-iplink-hsr-add-support-for-creating-PRP-device-simil.patch
> >>>
> >>>new file mode 100644
> >>>index 000000000000..dfeaeb01b485
> >>>--- /dev/null
> >>>+++ 
> >>>b/meta-arago-distro/recipes-connectivity/iproute2/iproute2/0013-iplink-hsr-add-support-for-creating-PRP-device-simil.patch
> >>>
> >>>@@ -0,0 +1,109 @@
> >>>+From e3aa94814e9467af5829a04c335a615c0082a362 Mon Sep 17 00:00:00 2001
> >>>+From: Murali Karicheri <[email protected]>
> >>>+Date: Fri, 5 Jun 2020 11:02:05 -0400
> >>>+Subject: [PATCH 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]>
> >>>+---
> >>>+ include/uapi/linux/if_link.h | 12 +++++++++++-
> >>>+ ip/iplink_hsr.c              | 19 +++++++++++++++++--
> >>>+ 2 files changed, 28 insertions(+), 3 deletions(-)
> >>>+
> >>>+diff --git a/include/uapi/linux/if_link.h
> >>>b/include/uapi/linux/if_link.h
> >>>+index 1c49f436424d..de08704c5862 100644
> >>>+--- a/include/uapi/linux/if_link.h
> >>>++++ b/include/uapi/linux/if_link.h
> >>>+@@ -881,7 +881,14 @@ enum {
> >>>+ #define IFLA_IPOIB_MAX (__IFLA_IPOIB_MAX - 1)
> >>>+
> >>>+
> >>>+-/* HSR section */
> >>>++/* HSR/PRP section, both uses same interface */
> >>>++
> >>>++/* Different redundancy protocols for hsr device */
> >>>++enum {
> >>>++    HSR_PROTOCOL_HSR,
> >>>++    HSR_PROTOCOL_PRP,
> >>>++    HSR_PROTOCOL_MAX,
> >>>++};
> >>>+
> >>>+ enum {
> >>>+     IFLA_HSR_UNSPEC,
> >>>+@@ -891,6 +898,9 @@ enum {
> >>>+     IFLA_HSR_SUPERVISION_ADDR,    /* Supervision frame multicast
> >>>addr */
> >>>+     IFLA_HSR_SEQ_NR,
> >>>+     IFLA_HSR_VERSION,        /* HSR version */
> >>>++    IFLA_HSR_PROTOCOL,        /* Indicate different protocol than
> >>>++                     * HSR. For example PRP.
> >>>++                     */
> >>>+     __IFLA_HSR_MAX,
> >>>+ };
> >>>+
> >>>+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
> >>>+
> >>>diff --git 
> >>>a/meta-arago-distro/recipes-connectivity/iproute2/iproute2/0014-iplink-hsr-prp-add-support-for-vlan-tagged-supervisi.patch
> >>> 
> >>>b/meta-arago-distro/recipes-connectivity/iproute2/iproute2/0014-iplink-hsr-prp-add-support-for-vlan-tagged-supervisi.patch
> >>>
> >>>new file mode 100644
> >>>index 000000000000..fa0eecccdf59
> >>>--- /dev/null
> >>>+++ 
> >>>b/meta-arago-distro/recipes-connectivity/iproute2/iproute2/0014-iplink-hsr-prp-add-support-for-vlan-tagged-supervisi.patch
> >>>
> >>>@@ -0,0 +1,108 @@
> >>>+From 6e48ed61da3b03da415a87bfbd3651fde8742647 Mon Sep 17 00:00:00 2001
> >>>+From: Murali Karicheri <[email protected]>
> >>>+Date: Fri, 5 Jun 2020 12:07:43 -0400
> >>>+Subject: [PATCH 2/2] iplink: hsr/prp: add support for vlan tagged
> >>>supervision
> >>>+ frames
> >>>+
> >>>+This patch adds support to configure vlan tag information
> >>>+(vid, pcp and dei) at the hsr/prp lre device. This tag values
> >>>+will be used by the lre device to generate a VLAN tagged
> >>>+Supervision frames. This is done by adding 3 additional attributes
> >>>+to the hsr/prp link type and passing this to Linux HSR/PRP
> >>>+device through the ip link command.
> >>>+
> >>>+Signed-off-by: Murali Karicheri <[email protected]>
> >>>+---
> >>>+ include/uapi/linux/if_link.h |  3 +++
> >>>+ ip/iplink_hsr.c              | 40 +++++++++++++++++++++++++++++++++++-
> >>>+ 2 files changed, 42 insertions(+), 1 deletion(-)
> >>>+
> >>>+diff --git a/include/uapi/linux/if_link.h
> >>>b/include/uapi/linux/if_link.h
> >>>+index de08704c5862..94a381769e5a 100644
> >>>+--- a/include/uapi/linux/if_link.h
> >>>++++ b/include/uapi/linux/if_link.h
> >>>+@@ -901,6 +901,9 @@ enum {
> >>>+     IFLA_HSR_PROTOCOL,        /* Indicate different protocol than
> >>>+                      * HSR. For example PRP.
> >>>+                      */
> >>>++    IFLA_HSR_SV_VID,        /* Supervision frames VLAN ID */
> >>>++    IFLA_HSR_SV_DEI,        /* Supervision frames VLAN DEI */
> >>>++    IFLA_HSR_SV_PCP,        /* Supervision frames VLAN PCP */
> >>>+     __IFLA_HSR_MAX,
> >>>+ };
> >>>+
> >>>+diff --git a/ip/iplink_hsr.c b/ip/iplink_hsr.c
> >>>+index 6ea138a23cbc..f38c752c0065 100644
> >>>+--- a/ip/iplink_hsr.c
> >>>++++ b/ip/iplink_hsr.c
> >>>+@@ -26,6 +26,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] [proto
> >>>PROTOCOL]\n"
> >>>++        "\t[ sv_vid SV-VID ] [ sv_pcp SV-PCP ] [ sv_dei SV-DEI ]\n"
> >>>+         "\n"
> >>>+         "NAME\n"
> >>>+         "    name of new hsr device (e.g. hsr0)\n"
> >>>+@@ -37,7 +38,15 @@ static void print_usage(FILE *f)
> >>>+         "VERSION\n"
> >>>+         "    0,1; the protocol version to be used. (default = 0)\n"
> >>>+         "PROTOCOL\n"
> >>>+-        "    0 - HSR, 1 - PRP. (default = 0 - HSR)\n");
> >>>++        "    0 - HSR, 1 - PRP. (default = 0 - HSR)\n"
> >>>++        "SV-VID\n"
> >>>++        "      0-4094; VLAN ID to be used in the VLAN tag of SV
> >>>frames (default 0)\n"
> >>>++        "SV-PCP\n"
> >>>++        "      0-7; PCP value to be used in the VLAN tag of SV
> >>>frames (default 0)\n"
> >>>++        "SV-DEI\n"
> >>>++        "      0-1;  DEI value to be used in the VLAN tag of SV
> >>>frames (default 0)\n"
> >>>++        "      Use VLAN tag if one of sv_vid, sv_pcp or sv_dei is
> >>>specified. Default value\n"
> >>>++        "      used for unspecified ones\n");
> >>>+ }
> >>>+
> >>>+ static void usage(void)
> >>>+@@ -52,6 +61,9 @@ static int hsr_parse_opt(struct link_util *lu, int
> >>>argc, char **argv,
> >>>+     unsigned char multicast_spec;
> >>>+     unsigned char protocol_version;
> >>>+     unsigned char protocol = HSR_PROTOCOL_HSR;
> >>>++    unsigned short sv_vid;
> >>>++    unsigned char sv_dei;
> >>>++    unsigned char sv_pcp;
> >>>+
> >>>+     while (argc > 0) {
> >>>+         if (matches(*argv, "supervision") == 0) {
> >>>+@@ -86,6 +98,32 @@ static int hsr_parse_opt(struct link_util *lu, int
> >>>argc, char **argv,
> >>>+             if (ifindex == 0)
> >>>+                 invarg("No such interface", *argv);
> >>>+             addattr_l(n, 1024, IFLA_HSR_SLAVE2, &ifindex, 4);
> >>>++        } else if (matches(*argv, "sv_vid") == 0) {
> >>>++            NEXT_ARG();
> >>>++            if (get_u16(&sv_vid, *argv, 0))
> >>>++                invarg("SV-VID is invalid", *argv);
> >>>++            /* exclude reserved 4095 */
> >>>++            if (sv_vid >= 4095)
> >>>++                invarg("SV-VID is invalid", *argv);
> >>>++            addattr_l(n, 1024, IFLA_HSR_SV_VID,
> >>>++                  &sv_vid, sizeof(sv_vid));
> >>>++        } else if (matches(*argv, "sv_pcp") == 0) {
> >>>++            NEXT_ARG();
> >>>++            if (get_u8(&sv_pcp, *argv, 0))
> >>>++                invarg("SV-PCP is invalid", *argv);
> >>>++            if (sv_pcp > 7)
> >>>++                invarg("SV-PCP is invalid", *argv);
> >>>++            addattr_l(n, 1024, IFLA_HSR_SV_PCP,
> >>>++                  &sv_pcp, sizeof(sv_pcp));
> >>>++        } else if (matches(*argv, "sv_dei") == 0) {
> >>>++            NEXT_ARG();
> >>>++            if (get_u8(&sv_dei, *argv, 0))
> >>>++                invarg("SV-DEI is invalid", *argv);
> >>>++            if (sv_dei > 1)
> >>>++                invarg("SV-DEI is invalid", *argv);
> >>>++            addattr_l(n, 1024, IFLA_HSR_SV_DEI,
> >>>++                  &sv_dei, sizeof(sv_dei));
> >>>++
> >>>+         } else if (matches(*argv, "help") == 0) {
> >>>+             usage();
> >>>+             return -1;
> >>>+--
> >>>+2.17.1
> >>>+
> >>>diff --git
> >>>a/meta-arago-distro/recipes-connectivity/iproute2/iproute2_5.5.0.bbappend
> >>>b/meta-arago-distro/recipes-connectivity/iproute2/iproute2_5.5.0.bbappend
> >>>
> >>>new file mode 100644
> >>>index 000000000000..d6effcd7ca81
> >>>--- /dev/null
> >>>+++
> >>>b/meta-arago-distro/recipes-connectivity/iproute2/iproute2_5.5.0.bbappend
> >>>
> >>>@@ -0,0 +1,8 @@
> >>>+PR_append = ".arago6"
> >>>+
> >>>+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
> >>>+
> >>>+SRC_URI_append = " \
> >>>+
> >>>file://0013-iplink-hsr-add-support-for-creating-PRP-device-simil.patch
> >>>\
> >>>+
> >>>file://0014-iplink-hsr-prp-add-support-for-vlan-tagged-supervisi.patch
> >>>\
> >>>+"
> >>>-- 
> >>>2.17.1
> >>>
> >
> >
> >
> >
> 
> -- 
> Murali Karicheri
> Texas Instruments
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#13030): 
https://lists.yoctoproject.org/g/meta-ti/message/13030
Mute This Topic: https://lists.yoctoproject.org/mt/75359418/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-ti/unsub  
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to