#!/usr/bin/env bash
# SPDX-License-Identifier: LGPL-2.1-or-later
set -ex
set -o pipefail

setup() {
    for i in {0..3};
    do
        ip netns del "ns${i}" || true
        ip link del "veth${i}" || true
        ip netns add "ns${i}"
        ip link add "veth${i}" type veth peer name "veth${i}_"
        ip link set "veth${i}_" netns "ns${i}"
        ip -n "ns${i}" link set dev "veth${i}_" up
        ip -n "ns${i}" link set dev lo up
        ip -n "ns${i}" addr add "192.168.113."$((4*i+1))/30 dev "veth${i}_"
        ip link set dev "veth${i}" up
        ip link property add dev "veth${i}" altname "veth${i}-altname-with-more-than-15-chars"
        ip addr add "192.168.113."$((4*i+2))/30 dev "veth${i}"
    done
}

# shellcheck disable=SC2317
teardown() {
    set +e

    for i in {0..3}; do
        ip netns del "ns${i}"
        ip link del "veth${i}"
    done
}

if systemd-analyze compare-versions "$(uname -r)" lt 5.7; then
    echo "kernel is not 5.7+" >>/skipped
    exit 77
fi

if systemctl --version | grep -F -- "-BPF_FRAMEWORK" >/dev/null; then
    echo "bpf-framework is disabled" >>/skipped
    exit 77
fi

trap teardown EXIT
setup

systemctl start --wait TEST-62-RESTRICT-IFACES-1.service
systemctl start --wait TEST-62-RESTRICT-IFACES-2.service
systemctl start --wait TEST-62-RESTRICT-IFACES-3.service
systemctl start --wait TEST-62-RESTRICT-IFACES-4.service
systemctl start --wait TEST-62-RESTRICT-IFACES-5.service

touch /testok
