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         vlan
0008 "
0009 NUM_NETIFS=4
0010 source lib.sh
0011 
0012 h1_create()
0013 {
0014         simple_if_init $h1
0015         vlan_create $h1 555 v$h1 192.0.2.1/28 2001:db8:1::1/64
0016         ip -4 route add 192.0.2.128/28 vrf v$h1 nexthop via 192.0.2.2
0017         ip -6 route add 2001:db8:2::/64 vrf v$h1 nexthop via 2001:db8:1::2
0018 }
0019 
0020 h1_destroy()
0021 {
0022         ip -6 route del 2001:db8:2::/64 vrf v$h1
0023         ip -4 route del 192.0.2.128/28 vrf v$h1
0024         vlan_destroy $h1 555
0025         simple_if_fini $h1
0026 }
0027 
0028 h2_create()
0029 {
0030         simple_if_init $h2 192.0.2.130/28 2001:db8:2::2/64
0031         ip -4 route add 192.0.2.0/28 vrf v$h2 nexthop via 192.0.2.129
0032         ip -6 route add 2001:db8:1::/64 vrf v$h2 nexthop via 2001:db8:2::1
0033 }
0034 
0035 h2_destroy()
0036 {
0037         ip -6 route del 2001:db8:1::/64 vrf v$h2
0038         ip -4 route del 192.0.2.0/28 vrf v$h2
0039         simple_if_fini $h2 192.0.2.130/28 2001:db8:2::2/64
0040 }
0041 
0042 router_create()
0043 {
0044         ip link add name br1 type bridge vlan_filtering 1
0045         ip link set dev br1 up
0046 
0047         ip link set dev $swp1 master br1
0048         ip link set dev $swp1 up
0049 
0050         bridge vlan add dev br1 vid 555 self pvid untagged
0051         bridge vlan add dev $swp1 vid 555
0052 
0053         __addr_add_del br1 add 192.0.2.2/28 2001:db8:1::2/64
0054 
0055         ip link set dev $swp2 up
0056         __addr_add_del $swp2 add 192.0.2.129/28 2001:db8:2::1/64
0057 }
0058 
0059 router_destroy()
0060 {
0061         __addr_add_del $swp2 del 192.0.2.129/28 2001:db8:2::1/64
0062         ip link set dev $swp2 down
0063 
0064         __addr_add_del br1 del 192.0.2.2/28 2001:db8:1::2/64
0065         ip link set dev $swp1 down
0066         ip link set dev $swp1 nomaster
0067 
0068         ip link del dev br1
0069 }
0070 
0071 setup_prepare()
0072 {
0073         h1=${NETIFS[p1]}
0074         swp1=${NETIFS[p2]}
0075 
0076         swp2=${NETIFS[p3]}
0077         h2=${NETIFS[p4]}
0078 
0079         vrf_prepare
0080 
0081         h1_create
0082         h2_create
0083 
0084         router_create
0085 
0086         forwarding_enable
0087 }
0088 
0089 cleanup()
0090 {
0091         pre_cleanup
0092 
0093         forwarding_restore
0094 
0095         router_destroy
0096 
0097         h2_destroy
0098         h1_destroy
0099 
0100         vrf_cleanup
0101 }
0102 
0103 vlan()
0104 {
0105         RET=0
0106 
0107         bridge vlan add dev br1 vid 333 self
0108         check_err $? "Can't add a non-PVID VLAN"
0109         bridge vlan del dev br1 vid 333 self
0110         check_err $? "Can't remove a non-PVID VLAN"
0111 
0112         log_test "vlan"
0113 }
0114 
0115 ping_ipv4()
0116 {
0117         ping_test $h1 192.0.2.130
0118 }
0119 
0120 ping_ipv6()
0121 {
0122         ping6_test $h1 2001:db8:2::2
0123 }
0124 
0125 trap cleanup EXIT
0126 
0127 setup_prepare
0128 setup_wait
0129 
0130 tests_run
0131 
0132 exit $EXIT_STATUS