#!/bin/bash
# SPDX-License-Identifier: GPL-2.0

setup_veth_ns() {
	local -r link_dev="$1"
	local -r ns_name="$2"
	local -r ns_dev="$3"
	local -r ns_mac="$4"

	[[ -e /var/run/netns/"${ns_name}" ]] || ip netns add "${ns_name}"
	echo 100000 > "/sys/class/net/${ns_dev}/gro_flush_timeout"
	ip link set dev "${ns_dev}" netns "${ns_name}" mtu 65535
	ip -netns "${ns_name}" link set dev "${ns_dev}" up

	ip netns exec "${ns_name}" ethtool -K "${ns_dev}" gro on tso off
}

setup_ns() {
	# Set up server_ns namespace and client_ns namespace
	ip link add name server type veth peer name client

	setup_veth_ns "${dev}" server_ns server "${SERVER_MAC}"
	setup_veth_ns "${dev}" client_ns client "${CLIENT_MAC}"
}

cleanup_ns() {
	local ns_name

	for ns_name in client_ns server_ns; do
		[[ -e /var/run/netns/"${ns_name}" ]] && ip netns del "${ns_name}"
	done
}

setup() {
	# no global init setup step needed
	:
}

cleanup() {
	cleanup_ns
}
