0001
0002
0003
0004 setup_veth_ns() {
0005 local -r link_dev="$1"
0006 local -r ns_name="$2"
0007 local -r ns_dev="$3"
0008 local -r ns_mac="$4"
0009
0010 [[ -e /var/run/netns/"${ns_name}" ]] || ip netns add "${ns_name}"
0011 echo 100000 > "/sys/class/net/${ns_dev}/gro_flush_timeout"
0012 ip link set dev "${ns_dev}" netns "${ns_name}" mtu 65535
0013 ip -netns "${ns_name}" link set dev "${ns_dev}" up
0014
0015 ip netns exec "${ns_name}" ethtool -K "${ns_dev}" gro on tso off
0016 }
0017
0018 setup_ns() {
0019
0020 ip link add name server type veth peer name client
0021
0022 setup_veth_ns "${dev}" server_ns server "${SERVER_MAC}"
0023 setup_veth_ns "${dev}" client_ns client "${CLIENT_MAC}"
0024 }
0025
0026 cleanup_ns() {
0027 local ns_name
0028
0029 for ns_name in client_ns server_ns; do
0030 [[ -e /var/run/netns/"${ns_name}" ]] && ip netns del "${ns_name}"
0031 done
0032 }
0033
0034 setup() {
0035
0036 :
0037 }
0038
0039 cleanup() {
0040 cleanup_ns
0041 }