[Openvpn-devel] [PATCH ovpn net-next v3 4/4] selftests: ovpn: validate target netns ID in notifications
Marco Baffo <[email protected]> Wed, 29 Jul 2026 17:38:15 +0200
| Newsgroups | net.sourceforge.lists.openvpn-devel |
|---|---|
| Message-ID | <[email protected]> |
Move one peer interface to a foreign namespace while keeping its transport socket in the original namespace. Verify that its deletion notification contains the expected target namespace ID. Signed-off-by: Marco Baffo <[email protected]> --- Changes in v3: - Ignore unrelated events when validating notification target netns IDs. Changes in v2: - This is a new patch. tools/testing/selftests/net/ovpn/common.sh | 3 ++- tools/testing/selftests/net/ovpn/test.sh | 25 ++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/net/ovpn/common.sh b/tools/testing/selftests/net/ovpn/common.sh index 4f2510fb6d7f..2b90b7bf8700 100644 --- a/tools/testing/selftests/net/ovpn/common.sh +++ b/tools/testing/selftests/net/ovpn/common.sh @@ -21,7 +21,8 @@ export OVPN_ID_OFFSET=$(( 9 * (OVPN_SYMMETRIC_ID == 0) )) OVPN_JQ_FILTER='map(if type == "array" then .[] else . end) | map(select(.msg.peer | has("remote-ipv6") | not)) | - map(del(.msg.ifindex)) | sort_by(.msg.peer.id)[]' + map(del(.msg.ifindex, .msg["target-netnsid"])) | + sort_by(.msg.peer.id)[]' OVPN_LAN_IP="11.11.11.11" declare -A OVPN_TMP_JSONS=() diff --git a/tools/testing/selftests/net/ovpn/test.sh b/tools/testing/selftests/net/ovpn/test.sh index 468dd7985c8f..52e482641016 100755 --- a/tools/testing/selftests/net/ovpn/test.sh +++ b/tools/testing/selftests/net/ovpn/test.sh @@ -270,8 +270,13 @@ ovpn_run_timeouts() { ovpn_log "Setting timeout to 3s P2P:" + # The transport socket stays in peer3 when its interface is moved. + ovpn_cmd_ok "move peer3 interface to peer0" \ + ip -n ovpn_peer3 link set tun3 netns ovpn_peer0 + for p in $(seq 3 ${OVPN_NUM_PEERS}); do peer_ns="ovpn_peer${p}" + [ "${p}" -eq 3 ] && peer_ns="ovpn_peer0" ovpn_cmd_ok "set peer${p} P2P timeout" \ "${OVPN_CLI}" -n "${peer_ns}" set_peer \ tun${p} $((p + OVPN_ID_OFFSET)) 3 3 @@ -279,9 +284,29 @@ ovpn_run_timeouts() { sleep 5 } +ovpn_validate_ntf_netnsid() { + local peer="$1" + local target="$2" + local expected_netnsid + local received_netnsid + + expected_netnsid=$(ip -n "ovpn_peer${peer}" -j netns list-id | + jq -er --arg target "${target}" \ + '.[] | select(.name == $target) | .nsid') + received_netnsid=$(jq -er \ + 'select(.name == "peer-del-ntf" and + (.msg | has("target-netnsid"))) | + .msg["target-netnsid"]' \ + "${OVPN_TMP_JSONS[$peer]}") + + [ "${received_netnsid}" -eq "${expected_netnsid}" ] +} + ovpn_run_notifications() { local p + ovpn_cmd_ok "validate peer3 target netns ID" \ + ovpn_validate_ntf_netnsid 3 ovpn_peer0 for p in $(seq 0 ${OVPN_NUM_PEERS}); do ovpn_cmd_ok "validate listener output for peer ${p}" \ ovpn_compare_ntfs "${p}" -- 2.43.0 _______________________________________________ Openvpn-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openvpn-devel