mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	selftests: net: Test for the IOAM encapsulation with IPv6
This patch adds support for testing the encap (ip6ip6) mode of IOAM. Signed-off-by: Justin Iurman <justin.iurman@uliege.be> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									8cb3bf8bff
								
							
						
					
					
						commit
						bf77b1400a
					
				
					 1 changed files with 159 additions and 50 deletions
				
			
		| 
						 | 
				
			
			@ -6,7 +6,7 @@
 | 
			
		|||
# This script evaluates the IOAM insertion for IPv6 by checking the IOAM data
 | 
			
		||||
# consistency directly inside packets on the receiver side. Tests are divided
 | 
			
		||||
# into three categories: OUTPUT (evaluates the IOAM processing by the sender),
 | 
			
		||||
# INPUT (evaluates the IOAM processing by the receiver) and GLOBAL (evaluates
 | 
			
		||||
# INPUT (evaluates the IOAM processing by a receiver) and GLOBAL (evaluates
 | 
			
		||||
# wider use cases that do not fall into the other two categories). Both OUTPUT
 | 
			
		||||
# and INPUT tests only use a two-node topology (alpha and beta), while GLOBAL
 | 
			
		||||
# tests use the entire three-node topology (alpha, beta, gamma). Each test is
 | 
			
		||||
| 
						 | 
				
			
			@ -200,7 +200,7 @@ check_kernel_compatibility()
 | 
			
		|||
  ip -netns ioam-tmp-node link set veth0 up
 | 
			
		||||
  ip -netns ioam-tmp-node link set veth1 up
 | 
			
		||||
 | 
			
		||||
  ip -netns ioam-tmp-node ioam namespace add 0 &>/dev/null
 | 
			
		||||
  ip -netns ioam-tmp-node ioam namespace add 0
 | 
			
		||||
  ns_ad=$?
 | 
			
		||||
 | 
			
		||||
  ip -netns ioam-tmp-node ioam namespace show | grep -q "namespace 0"
 | 
			
		||||
| 
						 | 
				
			
			@ -214,11 +214,11 @@ check_kernel_compatibility()
 | 
			
		|||
    exit 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  ip -netns ioam-tmp-node route add db02::/64 encap ioam6 trace prealloc \
 | 
			
		||||
         type 0x800000 ns 0 size 4 dev veth0 &>/dev/null
 | 
			
		||||
  ip -netns ioam-tmp-node route add db02::/64 encap ioam6 mode inline \
 | 
			
		||||
         trace prealloc type 0x800000 ns 0 size 4 dev veth0
 | 
			
		||||
  tr_ad=$?
 | 
			
		||||
 | 
			
		||||
  ip -netns ioam-tmp-node -6 route | grep -q "encap ioam6 trace"
 | 
			
		||||
  ip -netns ioam-tmp-node -6 route | grep -q "encap ioam6"
 | 
			
		||||
  tr_sh=$?
 | 
			
		||||
 | 
			
		||||
  if [[ $tr_ad != 0 || $tr_sh != 0 ]]
 | 
			
		||||
| 
						 | 
				
			
			@ -232,6 +232,30 @@ check_kernel_compatibility()
 | 
			
		|||
 | 
			
		||||
  ip link del veth0 2>/dev/null || true
 | 
			
		||||
  ip netns del ioam-tmp-node || true
 | 
			
		||||
 | 
			
		||||
  lsmod | grep -q "ip6_tunnel"
 | 
			
		||||
  ip6tnl_loaded=$?
 | 
			
		||||
 | 
			
		||||
  if [ $ip6tnl_loaded = 0 ]
 | 
			
		||||
  then
 | 
			
		||||
    encap_tests=0
 | 
			
		||||
  else
 | 
			
		||||
    modprobe ip6_tunnel &>/dev/null
 | 
			
		||||
    lsmod | grep -q "ip6_tunnel"
 | 
			
		||||
    encap_tests=$?
 | 
			
		||||
 | 
			
		||||
    if [ $encap_tests != 0 ]
 | 
			
		||||
    then
 | 
			
		||||
      ip a | grep -q "ip6tnl0"
 | 
			
		||||
      encap_tests=$?
 | 
			
		||||
 | 
			
		||||
      if [ $encap_tests != 0 ]
 | 
			
		||||
      then
 | 
			
		||||
        echo "Note: ip6_tunnel not found neither as a module nor inside the" \
 | 
			
		||||
             "kernel, tests that require it (encap mode) will be omitted"
 | 
			
		||||
      fi
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
cleanup()
 | 
			
		||||
| 
						 | 
				
			
			@ -242,6 +266,11 @@ cleanup()
 | 
			
		|||
  ip netns del ioam-node-alpha || true
 | 
			
		||||
  ip netns del ioam-node-beta || true
 | 
			
		||||
  ip netns del ioam-node-gamma || true
 | 
			
		||||
 | 
			
		||||
  if [ $ip6tnl_loaded != 0 ]
 | 
			
		||||
  then
 | 
			
		||||
    modprobe -r ip6_tunnel 2>/dev/null || true
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
setup()
 | 
			
		||||
| 
						 | 
				
			
			@ -329,6 +358,12 @@ log_test_failed()
 | 
			
		|||
  printf "TEST: %-60s  [FAIL]\n" "${desc}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
log_results()
 | 
			
		||||
{
 | 
			
		||||
  echo "- Tests passed: ${npassed}"
 | 
			
		||||
  echo "- Tests failed: ${nfailed}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
run_test()
 | 
			
		||||
{
 | 
			
		||||
  local name=$1
 | 
			
		||||
| 
						 | 
				
			
			@ -349,16 +384,26 @@ run_test()
 | 
			
		|||
  ip netns exec $node_src ping6 -t 64 -c 1 -W 1 $ip6_dst &>/dev/null
 | 
			
		||||
  if [ $? != 0 ]
 | 
			
		||||
  then
 | 
			
		||||
    nfailed=$((nfailed+1))
 | 
			
		||||
    log_test_failed "${desc}"
 | 
			
		||||
    kill -2 $spid &>/dev/null
 | 
			
		||||
  else
 | 
			
		||||
    wait $spid
 | 
			
		||||
    [ $? = 0 ] && log_test_passed "${desc}" || log_test_failed "${desc}"
 | 
			
		||||
    if [ $? = 0 ]
 | 
			
		||||
    then
 | 
			
		||||
      npassed=$((npassed+1))
 | 
			
		||||
      log_test_passed "${desc}"
 | 
			
		||||
    else
 | 
			
		||||
      nfailed=$((nfailed+1))
 | 
			
		||||
      log_test_failed "${desc}"
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
run()
 | 
			
		||||
{
 | 
			
		||||
  echo
 | 
			
		||||
  printf "%0.s-" {1..74}
 | 
			
		||||
  echo
 | 
			
		||||
  echo "OUTPUT tests"
 | 
			
		||||
  printf "%0.s-" {1..74}
 | 
			
		||||
| 
						 | 
				
			
			@ -369,7 +414,8 @@ run()
 | 
			
		|||
 | 
			
		||||
  for t in $TESTS_OUTPUT
 | 
			
		||||
  do
 | 
			
		||||
    $t
 | 
			
		||||
    $t "inline"
 | 
			
		||||
    [ $encap_tests = 0 ] && $t "encap"
 | 
			
		||||
  done
 | 
			
		||||
 | 
			
		||||
  # clean OUTPUT settings
 | 
			
		||||
| 
						 | 
				
			
			@ -377,6 +423,8 @@ run()
 | 
			
		|||
  ip -netns ioam-node-alpha route change db01::/64 dev veth0
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  echo
 | 
			
		||||
  printf "%0.s-" {1..74}
 | 
			
		||||
  echo
 | 
			
		||||
  echo "INPUT tests"
 | 
			
		||||
  printf "%0.s-" {1..74}
 | 
			
		||||
| 
						 | 
				
			
			@ -387,7 +435,8 @@ run()
 | 
			
		|||
 | 
			
		||||
  for t in $TESTS_INPUT
 | 
			
		||||
  do
 | 
			
		||||
    $t
 | 
			
		||||
    $t "inline"
 | 
			
		||||
    [ $encap_tests = 0 ] && $t "encap"
 | 
			
		||||
  done
 | 
			
		||||
 | 
			
		||||
  # clean INPUT settings
 | 
			
		||||
| 
						 | 
				
			
			@ -396,7 +445,8 @@ run()
 | 
			
		|||
  ip -netns ioam-node-alpha ioam namespace set 123 schema ${ALPHA[8]}
 | 
			
		||||
  ip -netns ioam-node-alpha route change db01::/64 dev veth0
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  echo
 | 
			
		||||
  printf "%0.s-" {1..74}
 | 
			
		||||
  echo
 | 
			
		||||
  echo "GLOBAL tests"
 | 
			
		||||
  printf "%0.s-" {1..74}
 | 
			
		||||
| 
						 | 
				
			
			@ -404,8 +454,12 @@ run()
 | 
			
		|||
 | 
			
		||||
  for t in $TESTS_GLOBAL
 | 
			
		||||
  do
 | 
			
		||||
    $t
 | 
			
		||||
    $t "inline"
 | 
			
		||||
    [ $encap_tests = 0 ] && $t "encap"
 | 
			
		||||
  done
 | 
			
		||||
 | 
			
		||||
  echo
 | 
			
		||||
  log_results
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bit2type=(
 | 
			
		||||
| 
						 | 
				
			
			@ -431,11 +485,16 @@ out_undef_ns()
 | 
			
		|||
  ##############################################################################
 | 
			
		||||
  local desc="Unknown IOAM namespace"
 | 
			
		||||
 | 
			
		||||
  ip -netns ioam-node-alpha route change db01::/64 encap ioam6 trace prealloc \
 | 
			
		||||
         type 0x800000 ns 0 size 4 dev veth0
 | 
			
		||||
  [ "$1" = "encap" ] && mode="$1 tundst db01::1" || mode="$1"
 | 
			
		||||
  [ "$1" = "encap" ] && ip -netns ioam-node-beta link set ip6tnl0 up
 | 
			
		||||
 | 
			
		||||
  run_test ${FUNCNAME[0]} "${desc}" ioam-node-alpha ioam-node-beta db01::2 \
 | 
			
		||||
         db01::1 veth0 0x800000 0
 | 
			
		||||
  ip -netns ioam-node-alpha route change db01::/64 encap ioam6 mode $mode \
 | 
			
		||||
         trace prealloc type 0x800000 ns 0 size 4 dev veth0
 | 
			
		||||
 | 
			
		||||
  run_test ${FUNCNAME[0]} "${desc} ($1 mode)" ioam-node-alpha ioam-node-beta \
 | 
			
		||||
         db01::2 db01::1 veth0 0x800000 0
 | 
			
		||||
 | 
			
		||||
  [ "$1" = "encap" ] && ip -netns ioam-node-beta link set ip6tnl0 down
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
out_no_room()
 | 
			
		||||
| 
						 | 
				
			
			@ -446,11 +505,16 @@ out_no_room()
 | 
			
		|||
  ##############################################################################
 | 
			
		||||
  local desc="Missing trace room"
 | 
			
		||||
 | 
			
		||||
  ip -netns ioam-node-alpha route change db01::/64 encap ioam6 trace prealloc \
 | 
			
		||||
         type 0xc00000 ns 123 size 4 dev veth0
 | 
			
		||||
  [ "$1" = "encap" ] && mode="$1 tundst db01::1" || mode="$1"
 | 
			
		||||
  [ "$1" = "encap" ] && ip -netns ioam-node-beta link set ip6tnl0 up
 | 
			
		||||
 | 
			
		||||
  run_test ${FUNCNAME[0]} "${desc}" ioam-node-alpha ioam-node-beta db01::2 \
 | 
			
		||||
         db01::1 veth0 0xc00000 123
 | 
			
		||||
  ip -netns ioam-node-alpha route change db01::/64 encap ioam6 mode $mode \
 | 
			
		||||
         trace prealloc type 0xc00000 ns 123 size 4 dev veth0
 | 
			
		||||
 | 
			
		||||
  run_test ${FUNCNAME[0]} "${desc} ($1 mode)" ioam-node-alpha ioam-node-beta \
 | 
			
		||||
         db01::2 db01::1 veth0 0xc00000 123
 | 
			
		||||
 | 
			
		||||
  [ "$1" = "encap" ] && ip -netns ioam-node-beta link set ip6tnl0 down
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
out_bits()
 | 
			
		||||
| 
						 | 
				
			
			@ -465,15 +529,21 @@ out_bits()
 | 
			
		|||
  local tmp=${bit2size[22]}
 | 
			
		||||
  bit2size[22]=$(( $tmp + ${#ALPHA[9]} + ((4 - (${#ALPHA[9]} % 4)) % 4) ))
 | 
			
		||||
 | 
			
		||||
  [ "$1" = "encap" ] && mode="$1 tundst db01::1" || mode="$1"
 | 
			
		||||
  [ "$1" = "encap" ] && ip -netns ioam-node-beta link set ip6tnl0 up
 | 
			
		||||
 | 
			
		||||
  for i in {0..22}
 | 
			
		||||
  do
 | 
			
		||||
    ip -netns ioam-node-alpha route change db01::/64 encap ioam6 trace \
 | 
			
		||||
           prealloc type ${bit2type[$i]} ns 123 size ${bit2size[$i]} dev veth0
 | 
			
		||||
    ip -netns ioam-node-alpha route change db01::/64 encap ioam6 mode $mode \
 | 
			
		||||
           trace prealloc type ${bit2type[$i]} ns 123 size ${bit2size[$i]} \
 | 
			
		||||
           dev veth0
 | 
			
		||||
 | 
			
		||||
    run_test "out_bit$i" "${desc/<n>/$i}" ioam-node-alpha ioam-node-beta \
 | 
			
		||||
           db01::2 db01::1 veth0 ${bit2type[$i]} 123
 | 
			
		||||
    run_test "out_bit$i" "${desc/<n>/$i} ($1 mode)" ioam-node-alpha \
 | 
			
		||||
           ioam-node-beta db01::2 db01::1 veth0 ${bit2type[$i]} 123
 | 
			
		||||
  done
 | 
			
		||||
 | 
			
		||||
  [ "$1" = "encap" ] && ip -netns ioam-node-beta link set ip6tnl0 down
 | 
			
		||||
 | 
			
		||||
  bit2size[22]=$tmp
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -485,11 +555,16 @@ out_full_supp_trace()
 | 
			
		|||
  ##############################################################################
 | 
			
		||||
  local desc="Full supported trace"
 | 
			
		||||
 | 
			
		||||
  ip -netns ioam-node-alpha route change db01::/64 encap ioam6 trace prealloc \
 | 
			
		||||
         type 0xfff002 ns 123 size 100 dev veth0
 | 
			
		||||
  [ "$1" = "encap" ] && mode="$1 tundst db01::1" || mode="$1"
 | 
			
		||||
  [ "$1" = "encap" ] && ip -netns ioam-node-beta link set ip6tnl0 up
 | 
			
		||||
 | 
			
		||||
  run_test ${FUNCNAME[0]} "${desc}" ioam-node-alpha ioam-node-beta db01::2 \
 | 
			
		||||
         db01::1 veth0 0xfff002 123
 | 
			
		||||
  ip -netns ioam-node-alpha route change db01::/64 encap ioam6 mode $mode \
 | 
			
		||||
         trace prealloc type 0xfff002 ns 123 size 100 dev veth0
 | 
			
		||||
 | 
			
		||||
  run_test ${FUNCNAME[0]} "${desc} ($1 mode)" ioam-node-alpha ioam-node-beta \
 | 
			
		||||
         db01::2 db01::1 veth0 0xfff002 123
 | 
			
		||||
 | 
			
		||||
  [ "$1" = "encap" ] && ip -netns ioam-node-beta link set ip6tnl0 down
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -510,11 +585,16 @@ in_undef_ns()
 | 
			
		|||
  ##############################################################################
 | 
			
		||||
  local desc="Unknown IOAM namespace"
 | 
			
		||||
 | 
			
		||||
  ip -netns ioam-node-alpha route change db01::/64 encap ioam6 trace prealloc \
 | 
			
		||||
         type 0x800000 ns 0 size 4 dev veth0
 | 
			
		||||
  [ "$1" = "encap" ] && mode="$1 tundst db01::1" || mode="$1"
 | 
			
		||||
  [ "$1" = "encap" ] && ip -netns ioam-node-beta link set ip6tnl0 up
 | 
			
		||||
 | 
			
		||||
  run_test ${FUNCNAME[0]} "${desc}" ioam-node-alpha ioam-node-beta db01::2 \
 | 
			
		||||
         db01::1 veth0 0x800000 0
 | 
			
		||||
  ip -netns ioam-node-alpha route change db01::/64 encap ioam6 mode $mode \
 | 
			
		||||
         trace prealloc type 0x800000 ns 0 size 4 dev veth0
 | 
			
		||||
 | 
			
		||||
  run_test ${FUNCNAME[0]} "${desc} ($1 mode)" ioam-node-alpha ioam-node-beta \
 | 
			
		||||
         db01::2 db01::1 veth0 0x800000 0
 | 
			
		||||
 | 
			
		||||
  [ "$1" = "encap" ] && ip -netns ioam-node-beta link set ip6tnl0 down
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
in_no_room()
 | 
			
		||||
| 
						 | 
				
			
			@ -525,11 +605,16 @@ in_no_room()
 | 
			
		|||
  ##############################################################################
 | 
			
		||||
  local desc="Missing trace room"
 | 
			
		||||
 | 
			
		||||
  ip -netns ioam-node-alpha route change db01::/64 encap ioam6 trace prealloc \
 | 
			
		||||
         type 0xc00000 ns 123 size 4 dev veth0
 | 
			
		||||
  [ "$1" = "encap" ] && mode="$1 tundst db01::1" || mode="$1"
 | 
			
		||||
  [ "$1" = "encap" ] && ip -netns ioam-node-beta link set ip6tnl0 up
 | 
			
		||||
 | 
			
		||||
  run_test ${FUNCNAME[0]} "${desc}" ioam-node-alpha ioam-node-beta db01::2 \
 | 
			
		||||
         db01::1 veth0 0xc00000 123
 | 
			
		||||
  ip -netns ioam-node-alpha route change db01::/64 encap ioam6 mode $mode \
 | 
			
		||||
         trace prealloc type 0xc00000 ns 123 size 4 dev veth0
 | 
			
		||||
 | 
			
		||||
  run_test ${FUNCNAME[0]} "${desc} ($1 mode)" ioam-node-alpha ioam-node-beta \
 | 
			
		||||
         db01::2 db01::1 veth0 0xc00000 123
 | 
			
		||||
 | 
			
		||||
  [ "$1" = "encap" ] && ip -netns ioam-node-beta link set ip6tnl0 down
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
in_bits()
 | 
			
		||||
| 
						 | 
				
			
			@ -544,15 +629,21 @@ in_bits()
 | 
			
		|||
  local tmp=${bit2size[22]}
 | 
			
		||||
  bit2size[22]=$(( $tmp + ${#BETA[9]} + ((4 - (${#BETA[9]} % 4)) % 4) ))
 | 
			
		||||
 | 
			
		||||
  [ "$1" = "encap" ] && mode="$1 tundst db01::1" || mode="$1"
 | 
			
		||||
  [ "$1" = "encap" ] && ip -netns ioam-node-beta link set ip6tnl0 up
 | 
			
		||||
 | 
			
		||||
  for i in {0..22}
 | 
			
		||||
  do
 | 
			
		||||
    ip -netns ioam-node-alpha route change db01::/64 encap ioam6 trace \
 | 
			
		||||
           prealloc type ${bit2type[$i]} ns 123 size ${bit2size[$i]} dev veth0
 | 
			
		||||
    ip -netns ioam-node-alpha route change db01::/64 encap ioam6 mode $mode \
 | 
			
		||||
           trace prealloc type ${bit2type[$i]} ns 123 size ${bit2size[$i]} \
 | 
			
		||||
           dev veth0
 | 
			
		||||
 | 
			
		||||
    run_test "in_bit$i" "${desc/<n>/$i}" ioam-node-alpha ioam-node-beta \
 | 
			
		||||
           db01::2 db01::1 veth0 ${bit2type[$i]} 123
 | 
			
		||||
    run_test "in_bit$i" "${desc/<n>/$i} ($1 mode)" ioam-node-alpha \
 | 
			
		||||
           ioam-node-beta db01::2 db01::1 veth0 ${bit2type[$i]} 123
 | 
			
		||||
  done
 | 
			
		||||
 | 
			
		||||
  [ "$1" = "encap" ] && ip -netns ioam-node-beta link set ip6tnl0 down
 | 
			
		||||
 | 
			
		||||
  bit2size[22]=$tmp
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -569,11 +660,16 @@ in_oflag()
 | 
			
		|||
  #   back the IOAM namespace that was previously configured on the sender.
 | 
			
		||||
  ip -netns ioam-node-alpha ioam namespace add 123
 | 
			
		||||
 | 
			
		||||
  ip -netns ioam-node-alpha route change db01::/64 encap ioam6 trace prealloc \
 | 
			
		||||
         type 0xc00000 ns 123 size 4 dev veth0
 | 
			
		||||
  [ "$1" = "encap" ] && mode="$1 tundst db01::1" || mode="$1"
 | 
			
		||||
  [ "$1" = "encap" ] && ip -netns ioam-node-beta link set ip6tnl0 up
 | 
			
		||||
 | 
			
		||||
  run_test ${FUNCNAME[0]} "${desc}" ioam-node-alpha ioam-node-beta db01::2 \
 | 
			
		||||
         db01::1 veth0 0xc00000 123
 | 
			
		||||
  ip -netns ioam-node-alpha route change db01::/64 encap ioam6 mode $mode \
 | 
			
		||||
         trace prealloc type 0xc00000 ns 123 size 4 dev veth0
 | 
			
		||||
 | 
			
		||||
  run_test ${FUNCNAME[0]} "${desc} ($1 mode)" ioam-node-alpha ioam-node-beta \
 | 
			
		||||
         db01::2 db01::1 veth0 0xc00000 123
 | 
			
		||||
 | 
			
		||||
  [ "$1" = "encap" ] && ip -netns ioam-node-beta link set ip6tnl0 down
 | 
			
		||||
 | 
			
		||||
  # And we clean the exception for this test to get things back to normal for
 | 
			
		||||
  # other INPUT tests
 | 
			
		||||
| 
						 | 
				
			
			@ -588,11 +684,16 @@ in_full_supp_trace()
 | 
			
		|||
  ##############################################################################
 | 
			
		||||
  local desc="Full supported trace"
 | 
			
		||||
 | 
			
		||||
  ip -netns ioam-node-alpha route change db01::/64 encap ioam6 trace prealloc \
 | 
			
		||||
         type 0xfff002 ns 123 size 80 dev veth0
 | 
			
		||||
  [ "$1" = "encap" ] && mode="$1 tundst db01::1" || mode="$1"
 | 
			
		||||
  [ "$1" = "encap" ] && ip -netns ioam-node-beta link set ip6tnl0 up
 | 
			
		||||
 | 
			
		||||
  run_test ${FUNCNAME[0]} "${desc}" ioam-node-alpha ioam-node-beta db01::2 \
 | 
			
		||||
         db01::1 veth0 0xfff002 123
 | 
			
		||||
  ip -netns ioam-node-alpha route change db01::/64 encap ioam6 mode $mode \
 | 
			
		||||
         trace prealloc type 0xfff002 ns 123 size 80 dev veth0
 | 
			
		||||
 | 
			
		||||
  run_test ${FUNCNAME[0]} "${desc} ($1 mode)" ioam-node-alpha ioam-node-beta \
 | 
			
		||||
         db01::2 db01::1 veth0 0xfff002 123
 | 
			
		||||
 | 
			
		||||
  [ "$1" = "encap" ] && ip -netns ioam-node-beta link set ip6tnl0 down
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -611,11 +712,16 @@ fwd_full_supp_trace()
 | 
			
		|||
  ##############################################################################
 | 
			
		||||
  local desc="Forward - Full supported trace"
 | 
			
		||||
 | 
			
		||||
  ip -netns ioam-node-alpha route change db02::/64 encap ioam6 trace prealloc \
 | 
			
		||||
         type 0xfff002 ns 123 size 244 via db01::1 dev veth0
 | 
			
		||||
  [ "$1" = "encap" ] && mode="$1 tundst db02::2" || mode="$1"
 | 
			
		||||
  [ "$1" = "encap" ] && ip -netns ioam-node-gamma link set ip6tnl0 up
 | 
			
		||||
 | 
			
		||||
  run_test ${FUNCNAME[0]} "${desc}" ioam-node-alpha ioam-node-gamma db01::2 \
 | 
			
		||||
         db02::2 veth0 0xfff002 123
 | 
			
		||||
  ip -netns ioam-node-alpha route change db02::/64 encap ioam6 mode $mode \
 | 
			
		||||
         trace prealloc type 0xfff002 ns 123 size 244 via db01::1 dev veth0
 | 
			
		||||
 | 
			
		||||
  run_test ${FUNCNAME[0]} "${desc} ($1 mode)" ioam-node-alpha ioam-node-gamma \
 | 
			
		||||
         db01::2 db02::2 veth0 0xfff002 123
 | 
			
		||||
 | 
			
		||||
  [ "$1" = "encap" ] && ip -netns ioam-node-gamma link set ip6tnl0 down
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -625,6 +731,9 @@ fwd_full_supp_trace()
 | 
			
		|||
#                                                                              #
 | 
			
		||||
################################################################################
 | 
			
		||||
 | 
			
		||||
npassed=0
 | 
			
		||||
nfailed=0
 | 
			
		||||
 | 
			
		||||
if [ "$(id -u)" -ne 0 ]
 | 
			
		||||
then
 | 
			
		||||
  echo "SKIP: Need root privileges"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue