mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-02-19 13:38:24 -05:00
selftests/vsock: add namespace helpers to vmtest.sh
Add functions for initializing namespaces with the different vsock NS modes. Callers can use add_namespaces() and del_namespaces() to create namespaces global0, global1, local0, and local1. The add_namespaces() function initializes global0, local0, etc... with their respective vsock NS mode by toggling child_ns_mode before creating the namespace. Remove namespaces upon exiting the program in cleanup(). This is unlikely to be needed for a healthy run, but it is useful for tests that are manually killed mid-test. This patch is in preparation for later namespace tests. Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> Signed-off-by: Bobby Eshleman <bobbyeshleman@meta.com> Link: https://patch.msgid.link/20260121-vsock-vmtest-v16-5-2859a7512097@meta.com Acked-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
committed by
Paolo Abeni
parent
873e7de9f9
commit
423ec6383e
@@ -49,6 +49,7 @@ readonly TEST_DESCS=(
|
||||
)
|
||||
|
||||
readonly USE_SHARED_VM=(vm_server_host_client vm_client_host_server vm_loopback)
|
||||
readonly NS_MODES=("local" "global")
|
||||
|
||||
VERBOSE=0
|
||||
|
||||
@@ -103,6 +104,36 @@ check_result() {
|
||||
fi
|
||||
}
|
||||
|
||||
add_namespaces() {
|
||||
local orig_mode
|
||||
orig_mode=$(cat /proc/sys/net/vsock/child_ns_mode)
|
||||
|
||||
for mode in "${NS_MODES[@]}"; do
|
||||
echo "${mode}" > /proc/sys/net/vsock/child_ns_mode
|
||||
ip netns add "${mode}0" 2>/dev/null
|
||||
ip netns add "${mode}1" 2>/dev/null
|
||||
done
|
||||
|
||||
echo "${orig_mode}" > /proc/sys/net/vsock/child_ns_mode
|
||||
}
|
||||
|
||||
init_namespaces() {
|
||||
for mode in "${NS_MODES[@]}"; do
|
||||
# we need lo for qemu port forwarding
|
||||
ip netns exec "${mode}0" ip link set dev lo up
|
||||
ip netns exec "${mode}1" ip link set dev lo up
|
||||
done
|
||||
}
|
||||
|
||||
del_namespaces() {
|
||||
for mode in "${NS_MODES[@]}"; do
|
||||
ip netns del "${mode}0" &>/dev/null
|
||||
ip netns del "${mode}1" &>/dev/null
|
||||
log_host "removed ns ${mode}0"
|
||||
log_host "removed ns ${mode}1"
|
||||
done
|
||||
}
|
||||
|
||||
vm_ssh() {
|
||||
ssh -q -o UserKnownHostsFile=/dev/null -p ${SSH_HOST_PORT} localhost "$@"
|
||||
return $?
|
||||
@@ -110,6 +141,7 @@ vm_ssh() {
|
||||
|
||||
cleanup() {
|
||||
terminate_pidfiles "${!PIDFILES[@]}"
|
||||
del_namespaces
|
||||
}
|
||||
|
||||
check_args() {
|
||||
|
||||
Reference in New Issue
Block a user