]> git.proxmox.com Git - mirror_ovs.git/blame - tests/classifier.at
lib/ofpbuf: Compact
[mirror_ovs.git] / tests / classifier.at
CommitLineData
3223e977
BP
1AT_BANNER([flow classifier unit tests])
2m4_foreach(
3 [testname],
4 [[empty],
5 [destroy-null],
6 [single-rule],
7 [rule-replacement],
b5d97350 8 [many-rules-in-one-list],
3223e977 9 [many-rules-in-one-table],
b5d97350
BP
10 [many-rules-in-two-tables],
11 [many-rules-in-five-tables]],
3223e977
BP
12 [AT_SETUP([flow classifier - m4_bpatsubst(testname, [-], [ ])])
13 AT_CHECK([test-classifier testname], [0], [], [])
14 AT_CLEANUP])])
5cb7a798
BP
15
16AT_BANNER([miniflow unit tests])
17m4_foreach(
18 [testname],
19 [[miniflow],
20 [minimask_has_extra],
21 [minimask_combine]],
22 [AT_SETUP([miniflow - m4_bpatsubst(testname, [-], [ ])])
23 AT_CHECK([test-classifier testname], [0], [], [])
24 AT_CLEANUP])])
476f36e8
JR
25
26AT_BANNER([flow classifier lookup segmentation])
27AT_SETUP([flow classifier - lookup segmentation])
28OVS_VSWITCHD_START
29ADD_OF_PORTS([br0], [1], [2], [3])
30AT_DATA([flows.txt], [dnl
31table=0 in_port=1 priority=16,tcp,nw_dst=10.1.0.0/255.255.0.0,action=output(3)
32table=0 in_port=1 priority=32,tcp,nw_dst=10.1.2.15,action=output(2)
33table=0 in_port=1 priority=33,tcp,nw_dst=10.1.2.15,tp_dst=80,action=drop
34table=0 in_port=1 priority=0,ip,action=drop
35table=0 in_port=2 priority=16,tcp,nw_dst=192.168.0.0/255.255.0.0,action=output(1)
36table=0 in_port=2 priority=0,ip,action=drop
37table=0 in_port=3 priority=16,tcp,nw_src=10.1.0.0/255.255.0.0,action=output(1)
38table=0 in_port=3 priority=0,ip,action=drop
39])
40AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
41AT_CHECK([ovs-appctl ofproto/trace br0 'in_port=2,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'], [0], [stdout])
42AT_CHECK([tail -2 stdout], [0],
41a91a0b 43 [Megaflow: skb_priority=0,tcp,in_port=2,nw_dst=192.168.0.0/16,nw_frag=no
476f36e8
JR
44Datapath actions: 1
45])
46AT_CHECK([ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'], [0], [stdout])
47AT_CHECK([tail -2 stdout], [0],
41a91a0b 48 [Megaflow: skb_priority=0,tcp,in_port=1,nw_dst=192.168.0.2,nw_frag=no
476f36e8
JR
49Datapath actions: drop
50])
51AT_CHECK([ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=10.1.2.15,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'], [0], [stdout])
52AT_CHECK([tail -2 stdout], [0],
41a91a0b 53 [Megaflow: skb_priority=0,tcp,in_port=1,nw_dst=10.1.2.15,nw_frag=no,tp_dst=80
476f36e8
JR
54Datapath actions: drop
55])
56AT_CHECK([ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=10.1.2.15,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=79'], [0], [stdout])
57AT_CHECK([tail -2 stdout], [0],
41a91a0b 58 [Megaflow: skb_priority=0,tcp,in_port=1,nw_dst=10.1.2.15,nw_frag=no,tp_dst=79
476f36e8
JR
59Datapath actions: 2
60])
61OVS_VSWITCHD_STOP
62AT_CLEANUP
13751fd8
JR
63
64AT_BANNER([flow classifier prefix lookup])
65AT_SETUP([flow classifier - prefix lookup])
66OVS_VSWITCHD_START
67ADD_OF_PORTS([br0], [1], [2], [3])
68AT_CHECK([ovs-vsctl set Bridge br0 flow_tables:0=@N1 -- --id=@N1 create Flow_Table name=t0], [0], [ignore], [])
69AT_CHECK([ovs-vsctl set Flow_Table t0 prefixes=ipv6_label], [0])
70AT_CHECK([ovs-vsctl set Flow_Table t0 prefixes=nw_dst,nw_src,tun_dst,tun_src], [1], [],
71[ovs-vsctl: nw_dst,nw_src,tun_dst,tun_src: 4 value(s) specified but the maximum number is 3
72])
73AT_CHECK([ovs-vsctl set Flow_Table t0 prefixes=nw_dst,nw_dst], [1], [],
74[ovs-vsctl: nw_dst,nw_dst: set contains duplicate value
75])
76AT_CHECK([ovs-vsctl set Flow_Table t0 prefixes=nw_dst], [0])
77AT_DATA([flows.txt], [dnl
78table=0 in_port=1 priority=16,tcp,nw_dst=10.1.0.0/255.255.0.0,action=output(3)
79table=0 in_port=1 priority=32,tcp,nw_dst=10.1.2.0/255.255.255.0,tp_src=79,action=output(2)
80table=0 in_port=1 priority=33,tcp,nw_dst=10.1.2.15,tp_dst=80,action=drop
81table=0 in_port=1 priority=0,ip,action=drop
82table=0 in_port=2 priority=16,tcp,nw_dst=192.168.0.0/255.255.0.0,action=output(1)
83table=0 in_port=2 priority=0,ip,action=drop
84table=0 in_port=3 priority=16,tcp,nw_src=10.1.0.0/255.255.0.0,action=output(1)
85table=0 in_port=3 priority=0,ip,action=drop
86])
87AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
88AT_CHECK([ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'], [0], [stdout])
89AT_CHECK([tail -2 stdout], [0],
41a91a0b 90 [Megaflow: skb_priority=0,tcp,in_port=1,nw_dst=192.168.0.0/16,nw_frag=no
13751fd8
JR
91Datapath actions: drop
92])
93AT_CHECK([ovs-appctl ofproto/trace br0 'in_port=2,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'], [0], [stdout])
94AT_CHECK([tail -2 stdout], [0],
41a91a0b 95 [Megaflow: skb_priority=0,tcp,in_port=2,nw_dst=192.168.0.0/16,nw_frag=no
13751fd8
JR
96Datapath actions: 1
97])
98AT_CHECK([ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=10.1.2.15,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'], [0], [stdout])
99AT_CHECK([tail -2 stdout], [0],
41a91a0b 100 [Megaflow: skb_priority=0,tcp,in_port=1,nw_dst=10.1.2.15,nw_frag=no,tp_dst=80
13751fd8
JR
101Datapath actions: drop
102])
103AT_CHECK([ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=10.1.2.15,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=79'], [0], [stdout])
104AT_CHECK([tail -2 stdout], [0],
41a91a0b 105 [Megaflow: skb_priority=0,tcp,in_port=1,nw_dst=10.1.2.15,nw_frag=no,tp_src=8,tp_dst=79
13751fd8
JR
106Datapath actions: 3
107])
108OVS_VSWITCHD_STOP(["/'prefixes' with incompatible field: ipv6_label/d"])
109AT_CLEANUP