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]] -=-=-=-=-=-=-=-=-=-=-=-
