]> git.proxmox.com Git - ovs.git/blob - tests/vlan-splinters.at
ofp-prop: New module for working with OpenFlow 1.3+ properties.
[ovs.git] / tests / vlan-splinters.at
1 AT_BANNER([VLAN splinters])
2
3 AT_SETUP([VLAN splinters])
4 AT_SKIP_IF([test "$IS_WIN32" = "yes"])
5 OVS_VSWITCHD_START([], [], [=override])
6 ADD_OF_PORTS([br0], 1, 2, 3, 4)
7 AT_CHECK([ovs-vsctl \
8 -- set Bridge br0 fail-mode=standalone flood_vlans=0,9,11,15 \
9 -- set port br0 tag=0 \
10 -- set port p1 trunks=0,9,11,15 \
11 -- set interface p1 other-config:enable-vlan-splinters=true \
12 -- set port p2 tag=9 \
13 -- set port p3 tag=11 \
14 -- set port p4 tag=15])
15
16 ovs-appctl dpif/show | sed -n '
17 s/\./_/g
18 s/^[[ ]]*\([[^ ]][[^ ]]*\) [[0-9]]*\/\([[0-9]]*\).*/\1=\2/p
19 ' > port-numbers
20 cat port-numbers
21 . ./port-numbers
22
23 for args in '9 p2' '11 p3' '15 p4'; do
24 set $args
25 vlan=$1
26 eval access_port=\$$2
27 eval splinter_port=\$p1_$vlan
28
29 # Check that when a packet is received on $splinter_port, it is
30 # treated as if it had been received on p1 in the correct VLAN.
31 AT_CHECK([ovs-appctl ofproto/trace ovs-dummy "in_port($splinter_port)"],
32 [0], [stdout])
33 AT_CHECK_UNQUOTED([sed -n '/^Flow/p; /^Datapath/p' stdout], [0], [dnl
34 Flow: in_port=$p1,dl_vlan=$vlan,dl_vlan_pcp=0,dl_src=00:00:00:00:00:00,dl_dst=00:00:00:00:00:00,dl_type=0x05ff
35 Datapath actions: $access_port
36 ])
37
38 # Check that when an OpenFlow action sends a packet to p1 on
39 # splintered VLAN $vlan, it is actually output to $splinter_port.
40 AT_CHECK([ovs-appctl ofproto/trace ovs-dummy "in_port($access_port)"],
41 [0], [stdout])
42 AT_CHECK_UNQUOTED([tail -1 stdout], [0], [Datapath actions: $splinter_port
43 ])
44 done
45
46 OVS_VSWITCHD_STOP
47 AT_CLEANUP