Back to home page

OSCL-LXR

 
 

    


0001 #!/bin/bash
0002 # SPDX-License-Identifier: GPL-2.0
0003 
0004 ALL_TESTS="
0005         ping_ipv4
0006         ping_ipv6
0007 "
0008 NUM_NETIFS=4
0009 source lib.sh
0010 
0011 h1_create()
0012 {
0013         simple_if_init $h1 192.0.2.1/28 2001:db8:1::1/64
0014         ip -4 route add 192.0.2.128/28 vrf v$h1 nexthop via 192.0.2.2
0015         ip -6 route add 2001:db8:2::/64 vrf v$h1 nexthop via 2001:db8:1::2
0016 }
0017 
0018 h1_destroy()
0019 {
0020         ip -6 route del 2001:db8:2::/64 vrf v$h1
0021         ip -4 route del 192.0.2.128/28 vrf v$h1
0022         simple_if_fini $h1 192.0.2.1/28 2001:db8:1::1/64
0023 }
0024 
0025 h2_create()
0026 {
0027         simple_if_init $h2 192.0.2.130/28 2001:db8:2::2/64
0028         ip -4 route add 192.0.2.0/28 vrf v$h2 nexthop via 192.0.2.129
0029         ip -6 route add 2001:db8:1::/64 vrf v$h2 nexthop via 2001:db8:2::1
0030 }
0031 
0032 h2_destroy()
0033 {
0034         ip -6 route del 2001:db8:1::/64 vrf v$h2
0035         ip -4 route del 192.0.2.0/28 vrf v$h2
0036         simple_if_fini $h2 192.0.2.130/28 2001:db8:2::2/64
0037 }
0038 
0039 router_create()
0040 {
0041         ip link add name br1 type bridge vlan_filtering 1
0042         ip link set dev br1 up
0043 
0044         ip link set dev $swp1 master br1
0045         ip link set dev $swp1 up
0046         __addr_add_del br1 add 192.0.2.2/28 2001:db8:1::2/64
0047 
0048         ip link set dev $swp2 up
0049         __addr_add_del $swp2 add 192.0.2.129/28 2001:db8:2::1/64
0050 }
0051 
0052 router_destroy()
0053 {
0054         __addr_add_del $swp2 del 192.0.2.129/28 2001:db8:2::1/64
0055         ip link set dev $swp2 down
0056 
0057         __addr_add_del br1 del 192.0.2.2/28 2001:db8:1::2/64
0058         ip link set dev $swp1 down
0059         ip link set dev $swp1 nomaster
0060 
0061         ip link del dev br1
0062 }
0063 
0064 setup_prepare()
0065 {
0066         h1=${NETIFS[p1]}
0067         swp1=${NETIFS[p2]}
0068 
0069         swp2=${NETIFS[p3]}
0070         h2=${NETIFS[p4]}
0071 
0072         vrf_prepare
0073 
0074         h1_create
0075         h2_create
0076 
0077         router_create
0078 
0079         forwarding_enable
0080 }
0081 
0082 cleanup()
0083 {
0084         pre_cleanup
0085 
0086         forwarding_restore
0087 
0088         router_destroy
0089 
0090         h2_destroy
0091         h1_destroy
0092 
0093         vrf_cleanup
0094 }
0095 
0096 ping_ipv4()
0097 {
0098         ping_test $h1 192.0.2.130
0099 }
0100 
0101 ping_ipv6()
0102 {
0103         ping6_test $h1 2001:db8:2::2
0104 }
0105 
0106 trap cleanup EXIT
0107 
0108 setup_prepare
0109 setup_wait
0110 
0111 tests_run
0112 
0113 exit $EXIT_STATUS