19af771d2SPaolo Abeni#!/bin/bash 29af771d2SPaolo Abeni# SPDX-License-Identifier: GPL-2.0 39af771d2SPaolo Abeni 49af771d2SPaolo Abenisetup_veth_ns() { 59af771d2SPaolo Abeni local -r link_dev="$1" 69af771d2SPaolo Abeni local -r ns_name="$2" 79af771d2SPaolo Abeni local -r ns_dev="$3" 89af771d2SPaolo Abeni local -r ns_mac="$4" 99af771d2SPaolo Abeni 109af771d2SPaolo Abeni [[ -e /var/run/netns/"${ns_name}" ]] || ip netns add "${ns_name}" 11*2d0bfd36SPaolo Abeni echo 1000000 > "/sys/class/net/${ns_dev}/gro_flush_timeout" 129af771d2SPaolo Abeni ip link set dev "${ns_dev}" netns "${ns_name}" mtu 65535 139af771d2SPaolo Abeni ip -netns "${ns_name}" link set dev "${ns_dev}" up 149af771d2SPaolo Abeni 159af771d2SPaolo Abeni ip netns exec "${ns_name}" ethtool -K "${ns_dev}" gro on tso off 169af771d2SPaolo Abeni} 179af771d2SPaolo Abeni 189af771d2SPaolo Abenisetup_ns() { 199af771d2SPaolo Abeni # Set up server_ns namespace and client_ns namespace 209af771d2SPaolo Abeni ip link add name server type veth peer name client 219af771d2SPaolo Abeni 229af771d2SPaolo Abeni setup_veth_ns "${dev}" server_ns server "${SERVER_MAC}" 239af771d2SPaolo Abeni setup_veth_ns "${dev}" client_ns client "${CLIENT_MAC}" 249af771d2SPaolo Abeni} 259af771d2SPaolo Abeni 269af771d2SPaolo Abenicleanup_ns() { 279af771d2SPaolo Abeni local ns_name 289af771d2SPaolo Abeni 299af771d2SPaolo Abeni for ns_name in client_ns server_ns; do 309af771d2SPaolo Abeni [[ -e /var/run/netns/"${ns_name}" ]] && ip netns del "${ns_name}" 319af771d2SPaolo Abeni done 329af771d2SPaolo Abeni} 339af771d2SPaolo Abeni 349af771d2SPaolo Abenisetup() { 359af771d2SPaolo Abeni # no global init setup step needed 369af771d2SPaolo Abeni : 379af771d2SPaolo Abeni} 389af771d2SPaolo Abeni 399af771d2SPaolo Abenicleanup() { 409af771d2SPaolo Abeni cleanup_ns 419af771d2SPaolo Abeni} 42