public inbox for openembedded-core@lists.openembedded.org
 help / color / mirror / Atom feed
* [PATCH] libnl: upgrade 3.11.0 -> 3.12.0
@ 2025-12-29 12:45 Alexander Kanavin
  2025-12-30 14:54 ` [OE-core] " Mathieu Dubois-Briand
  0 siblings, 1 reply; 4+ messages in thread
From: Alexander Kanavin @ 2025-12-29 12:45 UTC (permalink / raw)
  To: openembedded-core; +Cc: Alexander Kanavin

From: Alexander Kanavin <alex@linutronix.de>

Remove a patch as the issue has been fixed upstream.

Backport a couple patches to address ptest issues due to missing
kernel modules (they're not built in standard linux-yocto):
https://github.com/thom311/libnl/issues/448

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
 ...nd-use-_nltst_skip_eopnotsupp-helper.patch |  81 ++++++++++++
 ...-cksuite-all-netns.c-disable-route_1.patch |  31 -----
 ...us-tests-when-kernel-returns-EOPNOTS.patch | 120 ++++++++++++++++++
 .../{libnl_3.11.0.bb => libnl_3.12.0.bb}      |   5 +-
 4 files changed, 204 insertions(+), 33 deletions(-)
 create mode 100644 meta/recipes-support/libnl/files/0001-tests-add-and-use-_nltst_skip_eopnotsupp-helper.patch
 delete mode 100644 meta/recipes-support/libnl/files/0001-tests-cksuite-all-netns.c-disable-route_1.patch
 create mode 100644 meta/recipes-support/libnl/files/0002-tests-skip-various-tests-when-kernel-returns-EOPNOTS.patch
 rename meta/recipes-support/libnl/{libnl_3.11.0.bb => libnl_3.12.0.bb} (90%)

diff --git a/meta/recipes-support/libnl/files/0001-tests-add-and-use-_nltst_skip_eopnotsupp-helper.patch b/meta/recipes-support/libnl/files/0001-tests-add-and-use-_nltst_skip_eopnotsupp-helper.patch
new file mode 100644
index 0000000000..0f7ce5ba74
--- /dev/null
+++ b/meta/recipes-support/libnl/files/0001-tests-add-and-use-_nltst_skip_eopnotsupp-helper.patch
@@ -0,0 +1,81 @@
+From 193bd72d1ca66f7c97fdc78782617302b7724c52 Mon Sep 17 00:00:00 2001
+From: Thomas Haller <thom311@gmail.com>
+Date: Tue, 23 Dec 2025 21:31:06 +0100
+Subject: [PATCH] tests: add and use _nltst_skip_eopnotsupp() helper
+
+Upstream-Status: Backport [https://github.com/thom311/libnl/commit/f680f27]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ tests/cksuite-all-netns.c |  3 +--
+ tests/cksuite-route-nh.c  |  4 +---
+ tests/nl-test-util.c      | 11 +++++++++++
+ tests/nl-test-util.h      |  4 ++++
+ 4 files changed, 17 insertions(+), 5 deletions(-)
+
+diff --git a/tests/cksuite-all-netns.c b/tests/cksuite-all-netns.c
+index ff6fd65..4714db2 100644
+--- a/tests/cksuite-all-netns.c
++++ b/tests/cksuite-all-netns.c
+@@ -273,8 +273,7 @@ START_TEST(test_create_iface)
+ 	}
+ 
+ 	r = rtnl_link_add(sk, link, NLM_F_CREATE);
+-	if (r == -NLE_OPNOTSUPP) {
+-		/* Hm, no kernel module? Skip the test. */
++	if (_nltst_skip_eopnotsupp(r)) {
+ 		_nltst_assert_link_not_exists(IFNAME);
+ 		IFNAME = NULL;
+ 		return;
+diff --git a/tests/cksuite-route-nh.c b/tests/cksuite-route-nh.c
+index 07a7a83..8409e18 100644
+--- a/tests/cksuite-route-nh.c
++++ b/tests/cksuite-route-nh.c
+@@ -1054,10 +1054,8 @@ START_TEST(test_kernel_roundtrip_encap_ila)
+ 	ck_assert_int_eq(rtnl_nh_set_oif(nh, (uint32_t)ifindex_dummy), 0);
+ 	ck_assert_int_eq(rtnl_nh_set_family(nh, AF_INET6), 0);
+ 	ret = rtnl_nh_add(sk, nh, NLM_F_CREATE);
+-	if (ret == -NLE_OPNOTSUPP) {
+-		/* ila module is not loaded - skipping */
++	if (_nltst_skip_eopnotsupp(ret))
+ 		return;
+-	}
+ 	ck_assert_int_eq(ret, 0);
+ 
+ 	ck_assert_int_eq(rtnl_nh_alloc_cache(sk, AF_UNSPEC, &cache), 0);
+diff --git a/tests/nl-test-util.c b/tests/nl-test-util.c
+index 51c04c6..75bb540 100644
+--- a/tests/nl-test-util.c
++++ b/tests/nl-test-util.c
+@@ -838,6 +838,17 @@ bool _nltst_skip_no_iproute2(const char *msg)
+ 
+ /*****************************************************************************/
+ 
++bool _nltst_skip_eopnotsupp(int err)
++{
++	if (err != -NLE_OPNOTSUPP)
++		return false;
++
++	printf("skip test after operation failed with NLE_OPNOTSUPP. This indicates missing kernel support");
++	return true;
++}
++
++/*****************************************************************************/
++
+ void _nltst_add_dummy_and_up(struct nl_sock *sk, const char *ifname,
+ 			     int *out_ifindex)
+ {
+diff --git a/tests/nl-test-util.h b/tests/nl-test-util.h
+index ecae885..a2c0e3b 100644
+--- a/tests/nl-test-util.h
++++ b/tests/nl-test-util.h
+@@ -449,6 +449,10 @@ bool _nltst_skip_no_iproute2(const char *msg);
+ 
+ /*****************************************************************************/
+ 
++bool _nltst_skip_eopnotsupp(int err);
++
++/*****************************************************************************/
++
+ typedef struct {
+ 	int addr_family;
+ 	int ifindex;
diff --git a/meta/recipes-support/libnl/files/0001-tests-cksuite-all-netns.c-disable-route_1.patch b/meta/recipes-support/libnl/files/0001-tests-cksuite-all-netns.c-disable-route_1.patch
deleted file mode 100644
index cc5e3890a1..0000000000
--- a/meta/recipes-support/libnl/files/0001-tests-cksuite-all-netns.c-disable-route_1.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 9e45c8809fc4e0aa1dd2ec2ac3e57352049f1b92 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Tue, 20 Aug 2024 19:01:59 +0200
-Subject: [PATCH] tests/cksuite-all-netns.c: disable route_1
-
-This is a new test added in https://github.com/thom311/libnl/commit/49f7822961f5bc6b18cd2a2d3f3b8d2ab0896d3f
-and while it passes on host Debian, it doesn't inside poky.
-
-Investigation into why is proceeding slowly, and I'm simply
-not skilled enough in AF_NETLINK, so let's disable until the
-core reason for the fail is arrived at.
-
-Upstream-Status: Inappropriate [fail reported and investigated at https://github.com/thom311/libnl/issues/399]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- tests/cksuite-all-netns.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tests/cksuite-all-netns.c b/tests/cksuite-all-netns.c
-index 5b9d3a5..b2fc46a 100644
---- a/tests/cksuite-all-netns.c
-+++ b/tests/cksuite-all-netns.c
-@@ -341,7 +341,7 @@ Suite *make_nl_netns_suite(void)
- 				  nltst_netns_fixture_teardown);
- 	tcase_add_test(tc, cache_and_clone);
- 	tcase_add_loop_test(tc, test_create_iface, 0, 17);
--	tcase_add_test(tc, route_1);
-+	//tcase_add_test(tc, route_1);
- 	suite_add_tcase(suite, tc);
- 
- 	return suite;
diff --git a/meta/recipes-support/libnl/files/0002-tests-skip-various-tests-when-kernel-returns-EOPNOTS.patch b/meta/recipes-support/libnl/files/0002-tests-skip-various-tests-when-kernel-returns-EOPNOTS.patch
new file mode 100644
index 0000000000..e00ca9baaf
--- /dev/null
+++ b/meta/recipes-support/libnl/files/0002-tests-skip-various-tests-when-kernel-returns-EOPNOTS.patch
@@ -0,0 +1,120 @@
+From 09330c29d3322881d0215013962bff7549ca885c Mon Sep 17 00:00:00 2001
+From: Thomas Haller <thom311@gmail.com>
+Date: Tue, 23 Dec 2025 21:35:06 +0100
+Subject: [PATCH] tests: skip various tests when kernel returns EOPNOTSUPP
+ (NLE_OPNOTSUPP)
+
+https://github.com/thom311/libnl/issues/448
+
+Upstream-Status: Backport [https://github.com/thom311/libnl/commit/1ac4b32]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ tests/cksuite-link-ip6tnl.c   |  2 ++
+ tests/cksuite-route-nexthop.c |  6 +++++-
+ tests/cksuite-route-nh.c      | 21 ++++++++++++++++++---
+ 3 files changed, 25 insertions(+), 4 deletions(-)
+
+diff --git a/tests/cksuite-link-ip6tnl.c b/tests/cksuite-link-ip6tnl.c
+index ea785b8..c5dc353 100644
+--- a/tests/cksuite-link-ip6tnl.c
++++ b/tests/cksuite-link-ip6tnl.c
+@@ -97,6 +97,8 @@ START_TEST(test_kernel_roundtrip_all)
+ 	 * This tests the netlink-message construction.
+ 	 */
+ 	r = rtnl_link_add(sk, link, NLM_F_CREATE);
++	if (_nltst_skip_eopnotsupp(r))
++		return;
+ 	ck_assert_int_eq(r, 0);
+ 
+ 	/* Now, query it and check whether all the attributes passed.
+diff --git a/tests/cksuite-route-nexthop.c b/tests/cksuite-route-nexthop.c
+index 34fc1d3..971a580 100644
+--- a/tests/cksuite-route-nexthop.c
++++ b/tests/cksuite-route-nexthop.c
+@@ -416,6 +416,7 @@ START_TEST(test_kernel_route_roundtrip_nh_mpls_encap_v4)
+ 	struct rtnl_nh_encap *encap2;
+ 	struct rtnl_nexthop *nh = NULL;
+ 	int ifindex_dummy;
++	int r;
+ 
+ 	if (_nltst_skip_no_netns())
+ 		return;
+@@ -447,7 +448,10 @@ START_TEST(test_kernel_route_roundtrip_nh_mpls_encap_v4)
+ 	ck_assert_int_eq(rtnl_route_nh_set_encap(nh, encap2), 0);
+ 	rtnl_route_add_nexthop(route, nh);
+ 
+-	ck_assert_int_eq(rtnl_route_add(sk, route, NLM_F_CREATE), 0);
++	r = rtnl_route_add(sk, route, NLM_F_CREATE);
++	if (_nltst_skip_eopnotsupp(r))
++		return;
++	ck_assert_int_eq(r, 0);
+ 
+ 	/* Retrieve the route back by its prefix and validate MPLS encap on nexthop */
+ 	ck_assert_int_eq(nltst_route_get_by_dst(sk, dst, &got), 0);
+diff --git a/tests/cksuite-route-nh.c b/tests/cksuite-route-nh.c
+index 8409e18..500768b 100644
+--- a/tests/cksuite-route-nh.c
++++ b/tests/cksuite-route-nh.c
+@@ -91,6 +91,7 @@ START_TEST(test_kernel_roundtrip_encap_mpls)
+ 	_nl_auto_nl_addr struct nl_addr *labels = NULL;
+ 	struct rtnl_nh_encap *encap = NULL;
+ 	int ifindex_dummy;
++	int r;
+ 
+ 	if (_nltst_skip_no_netns())
+ 		return;
+@@ -127,7 +128,11 @@ START_TEST(test_kernel_roundtrip_encap_mpls)
+ 	ck_assert_int_eq(rtnl_nh_add(sk, nh, NLM_F_CREATE), -NLE_INVAL);
+ 
+ 	ck_assert_int_eq(rtnl_nh_set_family(nh, AF_INET), 0);
+-	ck_assert_int_eq(rtnl_nh_add(sk, nh, NLM_F_CREATE), 0);
++
++	r = rtnl_nh_add(sk, nh, NLM_F_CREATE);
++	if (_nltst_skip_eopnotsupp(r))
++		return;
++	ck_assert_int_eq(r, 0);
+ 
+ 	/* Query and verify */
+ 	ck_assert_int_eq(rtnl_nh_alloc_cache(sk, AF_UNSPEC, &cache), 0);
+@@ -944,6 +949,7 @@ START_TEST(test_kernel_roundtrip_encap_ip6)
+ 	_nl_auto_rtnl_nh_encap struct rtnl_nh_encap *encap = NULL;
+ 	uint16_t flags;
+ 	int ifindex_dummy;
++	int r;
+ 
+ 	if (_nltst_skip_no_netns())
+ 		return;
+@@ -980,7 +986,11 @@ START_TEST(test_kernel_roundtrip_encap_ip6)
+ 	/* Set required attributes and add */
+ 	ck_assert_int_eq(rtnl_nh_set_oif(nh, (uint32_t)ifindex_dummy), 0);
+ 	ck_assert_int_eq(rtnl_nh_set_family(nh, AF_INET6), 0);
+-	ck_assert_int_eq(rtnl_nh_add(sk, nh, NLM_F_CREATE), 0);
++
++	r = rtnl_nh_add(sk, nh, NLM_F_CREATE);
++	if (_nltst_skip_eopnotsupp(r))
++		return;
++	ck_assert_int_eq(r, 0);
+ 
+ 	/* Query and verify */
+ 	ck_assert_int_eq(rtnl_nh_alloc_cache(sk, AF_UNSPEC, &cache), 0);
+@@ -1097,6 +1107,7 @@ START_TEST(test_kernel_roundtrip_encap_ip)
+ 	_nl_auto_rtnl_nh_encap struct rtnl_nh_encap *encap = NULL;
+ 	int ifindex_dummy;
+ 	uint64_t id = 0;
++	int r;
+ 
+ 	if (_nltst_skip_no_netns())
+ 		return;
+@@ -1132,7 +1143,11 @@ START_TEST(test_kernel_roundtrip_encap_ip)
+ 	/* Set required attributes and add */
+ 	ck_assert_int_eq(rtnl_nh_set_oif(nh, (uint32_t)ifindex_dummy), 0);
+ 	ck_assert_int_eq(rtnl_nh_set_family(nh, AF_INET), 0);
+-	ck_assert_int_eq(rtnl_nh_add(sk, nh, NLM_F_CREATE), 0);
++
++	r = rtnl_nh_add(sk, nh, NLM_F_CREATE);
++	if (_nltst_skip_eopnotsupp(r))
++		return;
++	ck_assert_int_eq(r, 0);
+ 
+ 	/* Query and verify */
+ 	ck_assert_int_eq(rtnl_nh_alloc_cache(sk, AF_UNSPEC, &cache), 0);
diff --git a/meta/recipes-support/libnl/libnl_3.11.0.bb b/meta/recipes-support/libnl/libnl_3.12.0.bb
similarity index 90%
rename from meta/recipes-support/libnl/libnl_3.11.0.bb
rename to meta/recipes-support/libnl/libnl_3.12.0.bb
index 26c87dbb1c..f28687e695 100644
--- a/meta/recipes-support/libnl/libnl_3.11.0.bb
+++ b/meta/recipes-support/libnl/libnl_3.12.0.bb
@@ -16,10 +16,11 @@ DEPENDS = "flex-native bison-native"
 
 SRC_URI = "${GITHUB_BASE_URI}/download/${BPN}${@d.getVar('PV').replace('.','_')}/${BP}.tar.gz \
            file://run-ptest \
-           file://0001-tests-cksuite-all-netns.c-disable-route_1.patch \
+           file://0002-tests-skip-various-tests-when-kernel-returns-EOPNOTS.patch \
+           file://0001-tests-add-and-use-_nltst_skip_eopnotsupp-helper.patch \
            "
 
-SRC_URI[sha256sum] = "2a56e1edefa3e68a7c00879496736fdbf62fc94ed3232c0baba127ecfa76874d"
+SRC_URI[sha256sum] = "fc51ca7196f1a3f5fdf6ffd3864b50f4f9c02333be28be4eeca057e103c0dd18"
 
 GITHUB_BASE_URI = "https://github.com/thom311/${BPN}/releases"
 UPSTREAM_CHECK_REGEX = "releases/tag/libnl(?P<pver>.+)"
-- 
2.47.3



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [OE-core] [PATCH] libnl: upgrade 3.11.0 -> 3.12.0
  2025-12-29 12:45 [PATCH] libnl: upgrade 3.11.0 -> 3.12.0 Alexander Kanavin
@ 2025-12-30 14:54 ` Mathieu Dubois-Briand
  2026-01-02 11:58   ` Alexander Kanavin
  0 siblings, 1 reply; 4+ messages in thread
From: Mathieu Dubois-Briand @ 2025-12-30 14:54 UTC (permalink / raw)
  To: alex.kanavin, openembedded-core; +Cc: Alexander Kanavin

On Mon Dec 29, 2025 at 1:45 PM CET, Alexander Kanavin via lists.openembedded.org wrote:
> From: Alexander Kanavin <alex@linutronix.de>
>
> Remove a patch as the issue has been fixed upstream.
>
> Backport a couple patches to address ptest issues due to missing
> kernel modules (they're not built in standard linux-yocto):
> https://github.com/thom311/libnl/issues/448
>
> Signed-off-by: Alexander Kanavin <alex@linutronix.de>
> ---

Hi Alexander,

Just some note: it looks like some ptest is failing intermittently on
ARM64 after this upgrade. I'm not sure how bad the whole situation is,
but it's bad enough that I already saw it fail twice today:

Failed ptests:
{'libnl': ['nl-test-util.c:Core:route_1_The_list_of_2_routes_did_not_find_a_one-to-one_match_with_the_list_of_3_expected_routes']}

https://autobuilder.yoctoproject.org/valkyrie/#/builders/61/builds/2800
https://autobuilder.yoctoproject.org/valkyrie/#/builders/61/builds/2802

Yet on both times, the rebuild succeed. No issues on other
architectures.

I will keep the patch in my branch, so I will try to monitor the failure
frequency.

Thanks,
Mathieu

-- 
Mathieu Dubois-Briand, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [OE-core] [PATCH] libnl: upgrade 3.11.0 -> 3.12.0
  2025-12-30 14:54 ` [OE-core] " Mathieu Dubois-Briand
@ 2026-01-02 11:58   ` Alexander Kanavin
  2026-01-05  8:36     ` Mathieu Dubois-Briand
  0 siblings, 1 reply; 4+ messages in thread
From: Alexander Kanavin @ 2026-01-02 11:58 UTC (permalink / raw)
  To: Mathieu Dubois-Briand; +Cc: openembedded-core, Alexander Kanavin

On Tue, 30 Dec 2025 at 15:54, Mathieu Dubois-Briand
<mathieu.dubois-briand@bootlin.com> wrote:

> Just some note: it looks like some ptest is failing intermittently on
> ARM64 after this upgrade. I'm not sure how bad the whole situation is,
> but it's bad enough that I already saw it fail twice today:
>
> Failed ptests:
> {'libnl': ['nl-test-util.c:Core:route_1_The_list_of_2_routes_did_not_find_a_one-to-one_match_with_the_list_of_3_expected_routes']}
>
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/61/builds/2800
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/61/builds/2802
>
> Yet on both times, the rebuild succeed. No issues on other
> architectures.
>
> I will keep the patch in my branch, so I will try to monitor the failure
> frequency.

Hello Mathieu,

the update has landed in master, let me know if you see it happening
again. It shouldn't be difficult to patch the test out and file a
ticket upstream, I just want a definite confirmation of the
intermittent issue.

Alex


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [OE-core] [PATCH] libnl: upgrade 3.11.0 -> 3.12.0
  2026-01-02 11:58   ` Alexander Kanavin
@ 2026-01-05  8:36     ` Mathieu Dubois-Briand
  0 siblings, 0 replies; 4+ messages in thread
From: Mathieu Dubois-Briand @ 2026-01-05  8:36 UTC (permalink / raw)
  To: alex.kanavin; +Cc: openembedded-core, Alexander Kanavin

On Fri Jan 2, 2026 at 12:58 PM CET, Alexander Kanavin via lists.openembedded.org wrote:
> On Tue, 30 Dec 2025 at 15:54, Mathieu Dubois-Briand
> <mathieu.dubois-briand@bootlin.com> wrote:
>
>> Just some note: it looks like some ptest is failing intermittently on
>> ARM64 after this upgrade. I'm not sure how bad the whole situation is,
>> but it's bad enough that I already saw it fail twice today:
>>
>> Failed ptests:
>> {'libnl': ['nl-test-util.c:Core:route_1_The_list_of_2_routes_did_not_find_a_one-to-one_match_with_the_list_of_3_expected_routes']}
>>
>> https://autobuilder.yoctoproject.org/valkyrie/#/builders/61/builds/2800
>> https://autobuilder.yoctoproject.org/valkyrie/#/builders/61/builds/2802
>>
>> Yet on both times, the rebuild succeed. No issues on other
>> architectures.
>>
>> I will keep the patch in my branch, so I will try to monitor the failure
>> frequency.
>
> Hello Mathieu,
>
> the update has landed in master, let me know if you see it happening
> again. It shouldn't be difficult to patch the test out and file a
> ticket upstream, I just want a definite confirmation of the
> intermittent issue.
>
> Alex

Hi Alex,

For some reason this did not happen on master so far, but I bet it will
happen soon. I opened a bugzilla entry to track these:

https://bugzilla.yoctoproject.org/show_bug.cgi?id=16118

Thanks,
Mathieu

-- 
Mathieu Dubois-Briand, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-01-05  8:37 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-29 12:45 [PATCH] libnl: upgrade 3.11.0 -> 3.12.0 Alexander Kanavin
2025-12-30 14:54 ` [OE-core] " Mathieu Dubois-Briand
2026-01-02 11:58   ` Alexander Kanavin
2026-01-05  8:36     ` Mathieu Dubois-Briand

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox