brintos

brintos / linux-shallow public Read only

0
0
Text · 1.0 KiB · 1f78a87 Raw
45 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03 4readonly server_ns=$(mktemp -u server-XXXXXXXX)5readonly client_ns=$(mktemp -u client-XXXXXXXX)6 7setup_veth_ns() {8	local -r link_dev="$1"9	local -r ns_name="$2"10	local -r ns_dev="$3"11	local -r ns_mac="$4"12 13	[[ -e /var/run/netns/"${ns_name}" ]] || ip netns add "${ns_name}"14	echo 1000000 > "/sys/class/net/${ns_dev}/gro_flush_timeout"15	ip link set dev "${ns_dev}" netns "${ns_name}" mtu 6553516	ip -netns "${ns_name}" link set dev "${ns_dev}" up17 18	ip netns exec "${ns_name}" ethtool -K "${ns_dev}" gro on tso off19}20 21setup_ns() {22	# Set up server_ns namespace and client_ns namespace23	ip link add name server type veth peer name client24 25	setup_veth_ns "${dev}" ${server_ns} server "${SERVER_MAC}"26	setup_veth_ns "${dev}" ${client_ns} client "${CLIENT_MAC}"27}28 29cleanup_ns() {30	local ns_name31 32	for ns_name in ${client_ns} ${server_ns}; do33		[[ -e /var/run/netns/"${ns_name}" ]] && ip netns del "${ns_name}"34	done35}36 37setup() {38	# no global init setup step needed39	:40}41 42cleanup() {43	cleanup_ns44}45