#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
#
# Regression tests for IPv6 flowlabels
#
# run in separate namespaces to avoid mgmt db conflicts betweent tests

set -e

echo "TEST management"
./in_netns.sh ./ipv6_flowlabel_mgr

echo "TEST datapath"
./in_netns.sh \
  sh -c 'sysctl -q -w net.ipv6.auto_flowlabels=0 && ./ipv6_flowlabel -l 1'

echo "TEST datapath (with auto-flowlabels)"
./in_netns.sh \
  sh -c 'sysctl -q -w net.ipv6.auto_flowlabels=1 && ./ipv6_flowlabel -l 1'

echo "TEST datapath (with ping-sockets)"
./in_netns.sh \
  sh -c 'sysctl -q -w net.ipv6.flowlabel_reflect=4 && \
    sysctl -q -w net.ipv4.ping_group_range="0 2147483647" && \
    ./ipv6_flowlabel -l 1 -p'

echo "TEST datapath (with flowinfo-send)"
./in_netns.sh \
  sh -c './ipv6_flowlabel -l 1 -s'

echo "TEST datapath (with ping-sockets flowinfo-send)"
./in_netns.sh \
  sh -c 'sysctl -q -w net.ipv6.flowlabel_reflect=4 && \
    sysctl -q -w net.ipv4.ping_group_range="0 2147483647" && \
    ./ipv6_flowlabel -l 1 -p -s'

echo OK. All tests passed