[LTP] [PATCH] tst_test.sh: TCONF on xfrm algorithms rejected via netlink extack

Avinesh Kumar avinesh.kumar@suse.com
Sat Jul 4 10:57:02 CEST 2026


From: Avinesh Kumar <avinesh.kumar@suse.com>

TST_RTNL_CHK maps a kernel's "not supported" reply to TCONF by matching
the "RTNETLINK answers: ..." strings. Since v6.1 the kernel reports an
unknown/removed xfrm algorithm with -ENOSYS plus a netlink extack
message, which iproute2 prints as:

Error: Requested AUTH algorithm not found.

This matches none of the existing strings, so TST_RTNL_CHK() reports
TBROK instead of skipping.

tcp_ipsec 1 TBROK: ip xfrm state add src 10.0.0.2 dst 10.0.0.1 spi 0x1000 proto esp enc serpent 0x81ea7757e7c71dc8f95bee692c0e8b1a2ac6e006066e74ce0024a54ee0175b70 auth hmac(rmd160) 0xf46316501051af3e3b2abd0bdfed7cf21a76fe04 mode transport sel src 10.0.0.2 dst 10.0.0.1 failed: Error: Requested AUTH algorithm not found.

This surfaced with kernel v7.1 commit
05d42dc8ab92 ("xfrm: Drop support for HMAC-RIPEMD-160")
which removed hmac(rmd160) and broke the
net_stress.ipsec_* "-a rmd160" variants. Match the extack form too.

Signed-off-by: Avinesh Kumar <avinesh.kumar@suse.com>
---
 testcases/lib/tst_test.sh | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/testcases/lib/tst_test.sh b/testcases/lib/tst_test.sh
index 2a83c17a5efb..8701bb390388 100644
--- a/testcases/lib/tst_test.sh
+++ b/testcases/lib/tst_test.sh
@@ -266,13 +266,18 @@ TST_RTNL_CHK()
 	local msg1="RTNETLINK answers: Function not implemented"
 	local msg2="RTNETLINK answers: Operation not supported"
 	local msg3="RTNETLINK answers: Protocol not supported"
+	# Since v6.1 the kernel reports an unknown/removed xfrm algorithm via
+	# netlink extack (-ENOSYS + NL_SET_ERR_MSG), which iproute2 prints as
+	# "Error: Requested AUTH algorithm not found."
+	local msg4="Requested .* algorithm not found"
 	local output="$($@ 2>&1 || echo 'LTP_ERR')"
-	local msg
+	local msg match
 
 	echo "$output" | grep -q "LTP_ERR" || return 0
 
-	for msg in "$msg1" "$msg2" "$msg3"; do
-		echo "$output" | grep -q "$msg" && tst_brk TCONF "'$@': $msg"
+	for msg in "$msg1" "$msg2" "$msg3" "$msg4"; do
+		match=$(echo "$output" | grep "$msg") && \
+				tst_brk TCONF "'$@': $match"
 	done
 
 	tst_brk TBROK "$@ failed: $output"
-- 
2.54.0



More information about the ltp mailing list