From 389c8899fef42bb68f990dd8c4032a82d65cf59b Mon Sep 17 00:00:00 2001 From: Patrick Vogelaar Date: Mon, 30 Oct 2023 21:52:36 +0100 Subject: [PATCH] feat(meta-belden-coreos-backport): introduce backport meta-layer The meta-belden-coreos-layer will contain changes that are specfic to a release version. In this case kirkstone. It holds adjustments and/or fixes that will not go into upstream. This commit contains a bugfix for libnl. --- layers/meta-belden-coreos-backport/README | 22 +++++++ .../conf/layer.conf | 13 ++++ ...nk_add_rtnl_link_reasm_overlaps_stat.patch | 62 +++++++++++++++++++ .../libnl/libnl_3.5.0.bbappend | 7 +++ templates/bblayers.conf.sample | 1 + 5 files changed, 105 insertions(+) create mode 100644 layers/meta-belden-coreos-backport/README create mode 100644 layers/meta-belden-coreos-backport/conf/layer.conf create mode 100644 layers/meta-belden-coreos-backport/recipes-support/libnl/files/0001_route_link_add_rtnl_link_reasm_overlaps_stat.patch create mode 100644 layers/meta-belden-coreos-backport/recipes-support/libnl/libnl_3.5.0.bbappend diff --git a/layers/meta-belden-coreos-backport/README b/layers/meta-belden-coreos-backport/README new file mode 100644 index 0000000..dba57a6 --- /dev/null +++ b/layers/meta-belden-coreos-backport/README @@ -0,0 +1,22 @@ +The meta-belden-coreos-layer will contain changes that are specfic to a release +version. In this case kirkstone. It holds adjustments and/or fixes that will +not go into upstream. + +Dependencies +============ + +The dependencies cannot easily be specified since this varies on the packages +that require some backporting or fixes. + +Table of Contents +================= + + I. Adding the meta-belden-coreos-backport layer to your build + II. Misc + + +I. Adding the meta-belden-coreos-backport layer to your build +================================================= + +Run 'bitbake-layers add-layer meta-belden-coreos-backport' + diff --git a/layers/meta-belden-coreos-backport/conf/layer.conf b/layers/meta-belden-coreos-backport/conf/layer.conf new file mode 100644 index 0000000..a77168e --- /dev/null +++ b/layers/meta-belden-coreos-backport/conf/layer.conf @@ -0,0 +1,13 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have recipes-* directories, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "meta-belden-coreos-backport" +BBFILE_PATTERN_meta-belden-coreos-backport = "^${LAYERDIR}/" +BBFILE_PRIORITY_meta-belden-coreos-backport = "6" + +LAYERDEPENDS_meta-belden-coreos-backport = "core meta-belden-coreos" +LAYERSERIES_COMPAT_meta-belden-coreos-backport = "kirkstone" diff --git a/layers/meta-belden-coreos-backport/recipes-support/libnl/files/0001_route_link_add_rtnl_link_reasm_overlaps_stat.patch b/layers/meta-belden-coreos-backport/recipes-support/libnl/files/0001_route_link_add_rtnl_link_reasm_overlaps_stat.patch new file mode 100644 index 0000000..b90e976 --- /dev/null +++ b/layers/meta-belden-coreos-backport/recipes-support/libnl/files/0001_route_link_add_rtnl_link_reasm_overlaps_stat.patch @@ -0,0 +1,62 @@ +From bab9e77c87d3b596e77d669b0a827b50e725bb62 Mon Sep 17 00:00:00 2001 +From: Ilya Pronin +Date: Fri, 3 Apr 2020 20:00:37 -0700 +Subject: [PATCH] route/link: add RTNL_LINK_REASM_OVERLAPS stat + +The new stat exposes IPSTATS_MIB_REASM_OVERLAPS link stat. However, the +original motivation for this change was fixing the issue with missing RX +packets link stat. + +The regression was introduced in version 3.5.0 with commit 73c1d047, +that added a new enum constant IPSTATS_MIB_REASM_OVERLAPS. Without this +patch, IPSTATS_MIB_REASM_OVERLAPS is missing from +map_stat_id_from_IPSTATS_MIB_v2 and is mapped by it to 0. This tricks +inet6_parse_protinfo() into erroneously overwriting RTNL_LINK_RX_PACKETS +stat, which happens to have value 0, when it tries to set +IPSTATS_MIB_REASM_OVERLAPS. + +Fixes: 73c1d0479643 ('Sync linux headers to 4.19.66') + +https://github.com/thom311/libnl/pull/235 +--- + include/netlink/route/link.h | 1 + + lib/route/link.c | 1 + + lib/route/link/inet6.c | 1 + + 3 files changed, 3 insertions(+) + +diff --git a/include/netlink/route/link.h b/include/netlink/route/link.h +index 516d8e161..d0d6d2b55 100644 +--- a/include/netlink/route/link.h ++++ b/include/netlink/route/link.h +@@ -93,6 +93,7 @@ typedef enum { + RTNL_LINK_IP6_ECT0PKTS, /*!< IPv6 SNMP InECT0Pkts */ + RTNL_LINK_IP6_CEPKTS, /*!< IPv6 SNMP InCEPkts */ + RTNL_LINK_RX_NOHANDLER, /*!< Received packets dropped on inactive device */ ++ RTNL_LINK_REASM_OVERLAPS, /*!< SNMP ReasmOverlaps */ + __RTNL_LINK_STATS_MAX, + } rtnl_link_stat_id_t; + +diff --git a/lib/route/link.c b/lib/route/link.c +index 9439fe6d6..ed6f4558b 100644 +--- a/lib/route/link.c ++++ b/lib/route/link.c +@@ -3007,6 +3007,7 @@ static const struct trans_tbl link_stats[] = { + __ADD(RTNL_LINK_IP6_ECT0PKTS, Ip6_InECT0Pkts), + __ADD(RTNL_LINK_IP6_CEPKTS, Ip6_InCEPkts), + __ADD(RTNL_LINK_RX_NOHANDLER, rx_nohandler), ++ __ADD(RTNL_LINK_REASM_OVERLAPS, ReasmOverlaps), + }; + + char *rtnl_link_stat2str(int st, char *buf, size_t len) +diff --git a/lib/route/link/inet6.c b/lib/route/link/inet6.c +index c977b617b..1ad49bf12 100644 +--- a/lib/route/link/inet6.c ++++ b/lib/route/link/inet6.c +@@ -135,6 +135,7 @@ static const uint8_t map_stat_id_from_IPSTATS_MIB_v2[__IPSTATS_MIB_MAX] = { + [33] = RTNL_LINK_IP6_ECT1PKTS, /* IPSTATS_MIB_ECT1PKTS */ + [34] = RTNL_LINK_IP6_ECT0PKTS, /* IPSTATS_MIB_ECT0PKTS */ + [35] = RTNL_LINK_IP6_CEPKTS, /* IPSTATS_MIB_CEPKTS */ ++ [36] = RTNL_LINK_REASM_OVERLAPS, /* IPSTATS_MIB_REASM_OVERLAPS */ + }; + + static int inet6_parse_protinfo(struct rtnl_link *link, struct nlattr *attr, diff --git a/layers/meta-belden-coreos-backport/recipes-support/libnl/libnl_3.5.0.bbappend b/layers/meta-belden-coreos-backport/recipes-support/libnl/libnl_3.5.0.bbappend new file mode 100644 index 0000000..e0187d3 --- /dev/null +++ b/layers/meta-belden-coreos-backport/recipes-support/libnl/libnl_3.5.0.bbappend @@ -0,0 +1,7 @@ +# Backports for libnl3 + +FILESEXTRAPATHS:prepend := "${THISDIR}/files:" + +# The next patch fixes following issue: https://github.com/thom311/libnl/issues/262 +# Requested by Team Wireless -> Can Ercandogu (Can.Ercandogu@belden.com) +SRC_URI += "file://0001_route_link_add_rtnl_link_reasm_overlaps_stat.patch" diff --git a/templates/bblayers.conf.sample b/templates/bblayers.conf.sample index 3f03f07..e6bbc33 100644 --- a/templates/bblayers.conf.sample +++ b/templates/bblayers.conf.sample @@ -8,6 +8,7 @@ BBFILES ?= "" BBLAYERS ?= " \ ##OEROOT##/meta \ ##COREOS_LAYERSDIR##/meta-belden-coreos \ + ##COREOS_LAYERSDIR##/meta-belden-coreos-backport \ ##COREOS_LAYERSDIR##/meta-belden-coreos-bsp \ ##COREOS_LAYERSDIR##/meta-belden-coreos-demo \ ##COREOS_LAYERSDIR##/meta-belden-marvell-bsp \