File Index
Files and directories
Sign in
FILE

basic_features.sh

File preview with syntax highlighting.

linux-6.19.14/tools/testing/selftests/drivers/net/virtio_net/basic_features.sh BASH
  1#!/bin/bash
  2# SPDX-License-Identifier: GPL-2.0
  3
  4# See virtio_net_common.sh comments for more details about assumed setup
  5
  6ALL_TESTS="
  7	initial_ping_test
  8	f_mac_test
  9"
 10
 11source virtio_net_common.sh
 12
 13lib_dir=$(dirname "$0")
 14source "$lib_dir"/../../../net/forwarding/lib.sh
 15
 16h1=${NETIFS[p1]}
 17h2=${NETIFS[p2]}
 18
 19h1_create()
 20{
 21	simple_if_init $h1 $H1_IPV4/24 $H1_IPV6/64
 22}
 23
 24h1_destroy()
 25{
 26	simple_if_fini $h1 $H1_IPV4/24 $H1_IPV6/64
 27}
 28
 29h2_create()
 30{
 31	simple_if_init $h2 $H2_IPV4/24 $H2_IPV6/64
 32}
 33
 34h2_destroy()
 35{
 36	simple_if_fini $h2 $H2_IPV4/24 $H2_IPV6/64
 37}
 38
 39initial_ping_test()
 40{
 41	setup_cleanup
 42	setup_prepare
 43	ping_test $h1 $H2_IPV4 " simple"
 44}
 45
 46f_mac_test()
 47{
 48	RET=0
 49	local test_name="mac feature filtered"
 50
 51	virtio_feature_present $h1 $VIRTIO_NET_F_MAC
 52	if [ $? -ne 0 ]; then
 53		log_test_skip "$test_name" "Device $h1 is missing feature $VIRTIO_NET_F_MAC."
 54		return 0
 55	fi
 56	virtio_feature_present $h1 $VIRTIO_NET_F_MAC
 57	if [ $? -ne 0 ]; then
 58		log_test_skip "$test_name" "Device $h2 is missing feature $VIRTIO_NET_F_MAC."
 59		return 0
 60	fi
 61
 62	setup_cleanup
 63	setup_prepare
 64
 65	grep -q 0 /sys/class/net/$h1/addr_assign_type
 66	check_err $? "Permanent address assign type for $h1 is not set"
 67	grep -q 0 /sys/class/net/$h2/addr_assign_type
 68	check_err $? "Permanent address assign type for $h2 is not set"
 69
 70	setup_cleanup
 71	virtio_filter_feature_add $h1 $VIRTIO_NET_F_MAC
 72	virtio_filter_feature_add $h2 $VIRTIO_NET_F_MAC
 73	setup_prepare
 74
 75	grep -q 0 /sys/class/net/$h1/addr_assign_type
 76	check_fail $? "Permanent address assign type for $h1 is set when F_MAC feature is filtered"
 77	grep -q 0 /sys/class/net/$h2/addr_assign_type
 78	check_fail $? "Permanent address assign type for $h2 is set when F_MAC feature is filtered"
 79
 80	ping_do $h1 $H2_IPV4
 81	check_err $? "Ping failed"
 82
 83	log_test "$test_name"
 84}
 85
 86setup_prepare()
 87{
 88	virtio_device_rebind $h1
 89	virtio_device_rebind $h2
 90	wait_for_dev $h1
 91	wait_for_dev $h2
 92
 93	vrf_prepare
 94
 95	h1_create
 96	h2_create
 97}
 98
 99setup_cleanup()
100{
101	h2_destroy
102	h1_destroy
103
104	vrf_cleanup
105
106	virtio_filter_features_clear $h1
107	virtio_filter_features_clear $h2
108	virtio_device_rebind $h1
109	virtio_device_rebind $h2
110	wait_for_dev $h1
111	wait_for_dev $h2
112}
113
114cleanup()
115{
116	pre_cleanup
117	setup_cleanup
118}
119
120check_driver $h1 "virtio_net"
121check_driver $h2 "virtio_net"
122check_virtio_debugfs $h1
123check_virtio_debugfs $h2
124
125trap cleanup EXIT
126
127setup_prepare
128
129tests_run
130
131exit "$EXIT_STATUS"
~/ Read-only file preview.