[PATCH] tst_test.sh: TCONF on xfrm algorithms rejected via netlink extack
Avinesh Kumar via ltp <[email protected]>
| Newsgroups | gmane.linux.ltp |
|---|---|
| Message-ID | <[email protected]> |
From: Avinesh Kumar <avinesh.kumar-IBi9RG/[email protected]> 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-IBi9RG/[email protected]> --- 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 -- Mailing list info: https://lists.linux.it/listinfo/ltp