| #!/bin/bash |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| source lib.sh |
| |
| h1_create() |
| { |
| <------>simple_if_init $h1 192.0.2.1/28 2001:db8:1::1/64 |
| <------>ip route add vrf v$h1 192.0.2.16/28 via 192.0.2.2 |
| } |
| |
| h1_destroy() |
| { |
| <------>ip route del vrf v$h1 192.0.2.16/28 via 192.0.2.2 |
| <------>simple_if_fini $h1 192.0.2.1/28 |
| } |
| |
| h2_create() |
| { |
| <------>simple_if_init $h2 192.0.2.18/28 |
| <------>ip route add vrf v$h2 192.0.2.0/28 via 192.0.2.17 |
| } |
| |
| h2_destroy() |
| { |
| <------>ip route del vrf v$h2 192.0.2.0/28 via 192.0.2.17 |
| <------>simple_if_fini $h2 192.0.2.18/28 |
| } |
| |
| sw1_flat_create() |
| { |
| <------>local type=$1; shift |
| <------>local ol1=$1; shift |
| <------>local ul1=$1; shift |
| |
| <------>ip link set dev $ol1 up |
| __addr_add_del $ol1 add "192.0.2.2/28" |
| |
| <------>ip link set dev $ul1 up |
| <------>vlan_create $ul1 111 "" 192.0.2.129/28 |
| |
| <------>tunnel_create g1a $type 192.0.2.65 192.0.2.66 tos inherit "$@" |
| <------>ip link set dev g1a up |
| __addr_add_del g1a add "192.0.2.65/32" |
| |
| <------>ip route add 192.0.2.66/32 via 192.0.2.130 |
| |
| <------>ip route add 192.0.2.16/28 nexthop dev g1a |
| } |
| |
| sw1_flat_destroy() |
| { |
| <------>local ol1=$1; shift |
| <------>local ul1=$1; shift |
| |
| <------>ip route del 192.0.2.16/28 |
| |
| <------>ip route del 192.0.2.66/32 via 192.0.2.130 |
| <------>__simple_if_fini g1a 192.0.2.65/32 |
| <------>tunnel_destroy g1a |
| |
| <------>vlan_destroy $ul1 111 |
| <------>__simple_if_fini $ul1 |
| <------>__simple_if_fini $ol1 192.0.2.2/28 |
| } |
| |
| sw2_flat_create() |
| { |
| <------>local type=$1; shift |
| <------>local ol2=$1; shift |
| <------>local ul2=$1; shift |
| |
| <------>simple_if_init $ol2 192.0.2.17/28 |
| <------>__simple_if_init $ul2 v$ol2 |
| <------>vlan_create $ul2 111 v$ol2 192.0.2.130/28 |
| |
| <------>tunnel_create g2a $type 192.0.2.66 192.0.2.65 tos inherit dev v$ol2 \ |
| <------><------>"$@" |
| <------>__simple_if_init g2a v$ol2 192.0.2.66/32 |
| |
| <------>ip route add vrf v$ol2 192.0.2.65/32 via 192.0.2.129 |
| <------>ip route add vrf v$ol2 192.0.2.0/28 nexthop dev g2a |
| } |
| |
| sw2_flat_destroy() |
| { |
| <------>local ol2=$1; shift |
| <------>local ul2=$1; shift |
| |
| <------>ip route del vrf v$ol2 192.0.2.0/28 |
| |
| <------>ip route del vrf v$ol2 192.0.2.65/32 via 192.0.2.129 |
| <------>__simple_if_fini g2a 192.0.2.66/32 |
| <------>tunnel_destroy g2a |
| |
| <------>vlan_destroy $ul2 111 |
| <------>__simple_if_fini $ul2 |
| <------>simple_if_fini $ol2 192.0.2.17/28 |
| } |
| |
| sw1_hierarchical_create() |
| { |
| <------>local type=$1; shift |
| <------>local ol1=$1; shift |
| <------>local ul1=$1; shift |
| |
| <------>simple_if_init $ol1 192.0.2.2/28 |
| <------>simple_if_init $ul1 |
| <------>ip link add name dummy1 type dummy |
| <------>__simple_if_init dummy1 v$ul1 192.0.2.65/32 |
| |
| <------>vlan_create $ul1 111 v$ul1 192.0.2.129/28 |
| <------>tunnel_create g1a $type 192.0.2.65 192.0.2.66 tos inherit dev dummy1 \ |
| <------><------>"$@" |
| <------>ip link set dev g1a master v$ol1 |
| |
| <------>ip route add vrf v$ul1 192.0.2.66/32 via 192.0.2.130 |
| <------>ip route add vrf v$ol1 192.0.2.16/28 nexthop dev g1a |
| } |
| |
| sw1_hierarchical_destroy() |
| { |
| <------>local ol1=$1; shift |
| <------>local ul1=$1; shift |
| |
| <------>ip route del vrf v$ol1 192.0.2.16/28 |
| <------>ip route del vrf v$ul1 192.0.2.66/32 |
| |
| <------>tunnel_destroy g1a |
| <------>vlan_destroy $ul1 111 |
| |
| <------>__simple_if_fini dummy1 192.0.2.65/32 |
| <------>ip link del dev dummy1 |
| |
| <------>simple_if_fini $ul1 |
| <------>simple_if_fini $ol1 192.0.2.2/28 |
| } |
| |
| sw2_hierarchical_create() |
| { |
| <------>local type=$1; shift |
| <------>local ol2=$1; shift |
| <------>local ul2=$1; shift |
| |
| <------>simple_if_init $ol2 192.0.2.17/28 |
| <------>simple_if_init $ul2 |
| |
| <------>ip link add name dummy2 type dummy |
| <------>__simple_if_init dummy2 v$ul2 192.0.2.66/32 |
| |
| <------>vlan_create $ul2 111 v$ul2 192.0.2.130/28 |
| <------>tunnel_create g2a $type 192.0.2.66 192.0.2.65 tos inherit dev dummy2 \ |
| <------><------>"$@" |
| <------>ip link set dev g2a master v$ol2 |
| |
| <------>ip route add vrf v$ul2 192.0.2.65/32 via 192.0.2.129 |
| <------>ip route add vrf v$ol2 192.0.2.0/28 nexthop dev g2a |
| } |
| |
| sw2_hierarchical_destroy() |
| { |
| <------>local ol2=$1; shift |
| <------>local ul2=$1; shift |
| |
| <------>ip route del vrf v$ol2 192.0.2.0/28 |
| <------>ip route del vrf v$ul2 192.0.2.65/32 |
| |
| <------>tunnel_destroy g2a |
| <------>vlan_destroy $ul2 111 |
| |
| <------>__simple_if_fini dummy2 192.0.2.66/32 |
| <------>ip link del dev dummy2 |
| |
| <------>simple_if_fini $ul2 |
| <------>simple_if_fini $ol2 192.0.2.17/28 |
| } |
| |
| topo_mtu_change() |
| { |
| <------>local mtu=$1 |
| |
| <------>ip link set mtu $mtu dev $h1 |
| <------>ip link set mtu $mtu dev $ol1 |
| <------>ip link set mtu $mtu dev g1a |
| <------>ip link set mtu $mtu dev $ul1 |
| <------>ip link set mtu $mtu dev $ul1.111 |
| <------>ip link set mtu $mtu dev $h2 |
| <------>ip link set mtu $mtu dev $ol2 |
| <------>ip link set mtu $mtu dev g2a |
| <------>ip link set mtu $mtu dev $ul2 |
| <------>ip link set mtu $mtu dev $ul2.111 |
| } |
| |
| test_mtu_change() |
| { |
| <------>local encap=$1; shift |
| |
| <------>RET=0 |
| |
| <------>ping_do $h1 192.0.2.18 "-s 1800 -w 3" |
| <------>check_fail $? "ping $encap should not pass with size 1800" |
| |
| <------>RET=0 |
| |
| <------>topo_mtu_change 2000 |
| <------>ping_do $h1 192.0.2.18 "-s 1800 -w 3" |
| <------>check_err $? |
| <------>log_test "ping $encap packet size 1800 after MTU change" |
| } |
| |