]> git.proxmox.com Git - mirror_ovs.git/blob - tests/system-offloads-traffic.at
db-ctl-base: Add {in} and {not-in} set relational operators.
[mirror_ovs.git] / tests / system-offloads-traffic.at
1 AT_BANNER([datapath offloads])
2
3 # DUMP_CLEAN_SORTED([])
4 #
5 # Normilizes output ports, recirc_id, packets and macs.
6 #
7 m4_define([DUMP_CLEAN_SORTED], [sed -e 's/used:[[0-9]].[[0-9]]*s/used:0.001s/;s/eth(src=[[a-z0-9:]]*,dst=[[a-z0-9:]]*)/eth(macs)/;s/actions:[[0-9,]]*/actions:output/;s/recirc_id(0),//' | sort])
8
9 AT_SETUP([offloads - ping between two ports - offloads disabled])
10 OVS_TRAFFIC_VSWITCHD_START()
11
12 AT_CHECK([ovs-ofctl add-flow br0 "actions=normal"])
13
14 ADD_NAMESPACES(at_ns0, at_ns1)
15
16 ADD_VETH(p0, at_ns0, br0, "10.1.1.1/24")
17 ADD_VETH(p1, at_ns1, br0, "10.1.1.2/24")
18
19 NS_CHECK_EXEC([at_ns0], [ping -q -c 10 -i 0.1 -w 2 10.1.1.2 | FORMAT_PING], [0], [dnl
20 10 packets transmitted, 10 received, 0% packet loss, time 0ms
21 ])
22
23 AT_CHECK([ovs-appctl dpctl/dump-flows | grep "eth_type(0x0800)" | DUMP_CLEAN_SORTED], [0], [dnl
24 in_port(2),eth(macs),eth_type(0x0800),ipv4(frag=no), packets:9, bytes:882, used:0.001s, actions:output
25 in_port(3),eth(macs),eth_type(0x0800),ipv4(frag=no), packets:9, bytes:882, used:0.001s, actions:output
26 ])
27
28 AT_CHECK([ovs-appctl dpctl/dump-flows type=ovs | grep "eth_type(0x0800)" | DUMP_CLEAN_SORTED], [0], [dnl
29 in_port(2),eth(macs),eth_type(0x0800),ipv4(frag=no), packets:9, bytes:882, used:0.001s, actions:output
30 in_port(3),eth(macs),eth_type(0x0800),ipv4(frag=no), packets:9, bytes:882, used:0.001s, actions:output
31 ])
32
33 AT_CHECK([ovs-appctl dpctl/dump-flows type=offloaded], [0], [])
34
35 AT_CHECK([test $(ovs-appctl upcall/show | grep -c "offloaded flows") -eq 0], [0], [ignore])
36
37 OVS_TRAFFIC_VSWITCHD_STOP
38 AT_CLEANUP
39
40
41 AT_SETUP([offloads - ping between two ports - offloads enabled])
42 OVS_TRAFFIC_VSWITCHD_START()
43
44 AT_CHECK([ovs-vsctl set Open_vSwitch . other_config:hw-offload=true])
45 AT_CHECK([ovs-ofctl add-flow br0 "actions=normal"])
46
47 ADD_NAMESPACES(at_ns0, at_ns1)
48
49 ADD_VETH(p0, at_ns0, br0, "10.1.1.1/24")
50 ADD_VETH(p1, at_ns1, br0, "10.1.1.2/24")
51 AT_CHECK([ovs-appctl dpctl/dump-flows], [0], [ignore])
52
53 NS_CHECK_EXEC([at_ns0], [ping -q -c 10 -i 0.1 -w 2 10.1.1.2 | FORMAT_PING], [0], [dnl
54 10 packets transmitted, 10 received, 0% packet loss, time 0ms
55 ])
56
57 AT_CHECK([ovs-appctl dpctl/dump-flows | grep "eth_type(0x0800)" | DUMP_CLEAN_SORTED], [0], [dnl
58 in_port(2),eth(macs),eth_type(0x0800),ipv4(frag=no), packets:9, bytes:756, used:0.001s, actions:output
59 in_port(3),eth(macs),eth_type(0x0800),ipv4(frag=no), packets:9, bytes:756, used:0.001s, actions:output
60 ])
61
62 AT_CHECK([ovs-appctl dpctl/dump-flows type=ovs | grep "eth_type(0x0800)" | DUMP_CLEAN_SORTED], [0], [])
63
64 AT_CHECK([ovs-appctl dpctl/dump-flows type=tc,offloaded | grep "eth_type(0x0800)" | DUMP_CLEAN_SORTED], [0], [dnl
65 in_port(2),eth(macs),eth_type(0x0800),ipv4(frag=no), packets:9, bytes:756, used:0.001s, actions:output
66 in_port(3),eth(macs),eth_type(0x0800),ipv4(frag=no), packets:9, bytes:756, used:0.001s, actions:output
67 ])
68
69 AT_CHECK([ovs-appctl upcall/show | grep -E "offloaded flows : [[1-9]]"], [0], [ignore])
70
71 OVS_TRAFFIC_VSWITCHD_STOP
72 AT_CLEANUP