Back to home page

OSCL-LXR

 
 

    


0001 #!/bin/bash
0002 # SPDX-License-Identifier: GPL-2.0
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         # Set up server_ns namespace and client_ns namespace
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         # no global init setup step needed
0036         :
0037 }
0038 
0039 cleanup() {
0040         cleanup_ns
0041 }