#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
#
# Regression tests for the SO_TXTIME interface

set -e

readonly DEV="veth0"
readonly BIN="./so_txtime"

readonly RAND="$(mktemp -u XXXXXX)"
readonly NSPREFIX="ns-${RAND}"
readonly NS1="${NSPREFIX}1"
readonly NS2="${NSPREFIX}2"

readonly SADDR4='192.168.1.1'
readonly DADDR4='192.168.1.2'
readonly SADDR6='fd::1'
readonly DADDR6='fd::2'

cleanup() {
	ip netns del "${NS2}"
	ip netns del "${NS1}"
}

trap cleanup EXIT

# Create virtual ethernet pair between network namespaces
ip netns add "${NS1}"
ip netns add "${NS2}"

ip link add "${DEV}" netns "${NS1}" type veth \
  peer name "${DEV}" netns "${NS2}"

# Bring the devices up
ip -netns "${NS1}" link set "${DEV}" up
ip -netns "${NS2}" link set "${DEV}" up

# Set fixed MAC addresses on the devices
ip -netns "${NS1}" link set dev "${DEV}" address 02:02:02:02:02:02
ip -netns "${NS2}" link set dev "${DEV}" address 06:06:06:06:06:06

# Add fixed IP addresses to the devices
ip -netns "${NS1}" addr add 192.168.1.1/24 dev "${DEV}"
ip -netns "${NS2}" addr add 192.168.1.2/24 dev "${DEV}"
ip -netns "${NS1}" addr add       fd::1/64 dev "${DEV}" nodad
ip -netns "${NS2}" addr add       fd::2/64 dev "${DEV}" nodad

do_test() {
	local readonly IP="$1"
	local readonly CLOCK="$2"
	local readonly TXARGS="$3"
	local readonly RXARGS="$4"

	if [[ "${IP}" == "4" ]]; then
		local readonly SADDR="${SADDR4}"
		local readonly DADDR="${DADDR4}"
	elif [[ "${IP}" == "6" ]]; then
		local readonly SADDR="${SADDR6}"
		local readonly DADDR="${DADDR6}"
	else
		echo "Invalid IP version ${IP}"
		exit 1
	fi

	local readonly START="$(date +%s%N --date="+ 0.1 seconds")"
	ip netns exec "${NS2}" "${BIN}" -"${IP}" -c "${CLOCK}" -t "${START}" -S "${SADDR}" -D "${DADDR}" "${RXARGS}" -r &
	ip netns exec "${NS1}" "${BIN}" -"${IP}" -c "${CLOCK}" -t "${START}" -S "${SADDR}" -D "${DADDR}" "${TXARGS}"
	wait "$!"
}

ip netns exec "${NS1}" tc qdisc add dev "${DEV}" root fq
do_test 4 mono a,-1 a,-1
do_test 6 mono a,0 a,0
do_test 6 mono a,10 a,10
do_test 4 mono a,10,b,20 a,10,b,20
do_test 6 mono a,20,b,10 b,20,a,20

if ip netns exec "${NS1}" tc qdisc replace dev "${DEV}" root etf clockid CLOCK_TAI delta 400000; then
	! do_test 4 tai a,-1 a,-1
	! do_test 6 tai a,0 a,0
	do_test 6 tai a,10 a,10
	do_test 4 tai a,10,b,20 a,10,b,20
	do_test 6 tai a,20,b,10 b,10,a,20
else
	echo "tc ($(tc -V)) does not support qdisc etf. skipping"
fi

echo OK. All tests passed
