3 AT_SETUP([ovs-ofctl parse-flows (OpenFlow 1.0)])
4 AT_DATA([flows.txt], [[
6 tcp,tp_src=123,actions=flood
7 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
8 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
9 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
10 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
11 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
12 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
15 AT_CHECK([ovs-ofctl parse-flows flows.txt
17 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
18 [[usable protocols: any
19 chosen protocol: OpenFlow10-table_id
20 OFPT_FLOW_MOD: ADD tcp,tp_src=123 actions=FLOOD
21 OFPT_FLOW_MOD: ADD in_port=65534,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
22 OFPT_FLOW_MOD: ADD udp,dl_vlan_pcp=7 idle:5 actions=strip_vlan,output:0
23 OFPT_FLOW_MOD: ADD tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
24 OFPT_FLOW_MOD: ADD udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
25 OFPT_FLOW_MOD: ADD priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
26 OFPT_FLOW_MOD: ADD actions=note:41.42.43.00.00.00,note:00.01.02.03.04.05.06.07.00.00.00.00.00.00,note:00.00.00.00.00.00
30 AT_SETUP([ovs-ofctl parse-flows (NXM)])
31 AT_DATA([flows.txt], [[
33 tcp,tp_src=123,actions=flood
34 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
35 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
36 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
37 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
38 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
39 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
40 tcp,tp_src=0x1230/0xfff0,tun_id=0x1234,cookie=0x5678,actions=flood
41 actions=set_tunnel:0x1234,set_tunnel64:0x9876,set_tunnel:0x123456789
42 actions=multipath(eth_src, 50, hrw, 12, 0, NXM_NX_REG0[0..3]),multipath(symmetric_l4, 1024, iter_hash, 5000, 5050, NXM_NX_REG0[0..12])
44 tun_id=0x1234000056780000/0xffff0000ffff0000,actions=drop
45 actions=bundle(eth_src,50,active_backup,ofport,slaves:1)
46 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:2,3)
47 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:)
48 actions=output:1,bundle(eth_src,0,hrw,ofport,slaves:1),output:2
49 actions=bundle_load(eth_src,50,active_backup,ofport,NXM_NX_REG0[],slaves:1)
50 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:2,3)
51 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:[2,3])
52 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..30],slaves:)
53 actions=output:1,bundle_load(eth_src,0,hrw,ofport,NXM_NX_REG0[16..31],slaves:1),output:2
54 actions=resubmit:1,resubmit(2),resubmit(,3),resubmit(2,3)
55 send_flow_rem,actions=output:1,output:NXM_NX_REG0[],output:2,output:NXM_NX_REG1[16..31],output:3
56 check_overlap,actions=output:1,exit,output:2
57 actions=fin_timeout(idle_timeout=5,hard_timeout=15)
58 actions=controller(max_len=123,reason=invalid_ttl,id=555)
61 AT_CHECK([ovs-ofctl parse-flows flows.txt
63 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
64 [[usable protocols: NXM+table_id
65 chosen protocol: NXM+table_id
66 NXT_FLOW_MOD: ADD table:255 tcp,tp_src=123 actions=FLOOD
67 NXT_FLOW_MOD: ADD table:255 in_port=65534,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
68 NXT_FLOW_MOD: ADD table:255 udp,dl_vlan_pcp=7 idle:5 actions=strip_vlan,output:0
69 NXT_FLOW_MOD: ADD table:255 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
70 NXT_FLOW_MOD: ADD table:255 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
71 NXT_FLOW_MOD: ADD table:255 priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
72 NXT_FLOW_MOD: ADD table:255 actions=note:41.42.43.00.00.00,note:00.01.02.03.04.05.06.07.00.00.00.00.00.00,note:00.00.00.00.00.00
73 NXT_FLOW_MOD: ADD table:255 tcp,tun_id=0x1234,tp_src=0x1230/0xfff0 cookie:0x5678 actions=FLOOD
74 NXT_FLOW_MOD: ADD table:255 actions=set_tunnel:0x1234,set_tunnel64:0x9876,set_tunnel64:0x123456789
75 NXT_FLOW_MOD: ADD table:255 actions=multipath(eth_src,50,hrw,12,0,NXM_NX_REG0[0..3]),multipath(symmetric_l4,1024,iter_hash,5000,5050,NXM_NX_REG0[0..12])
76 NXT_FLOW_MOD: ADD table:1 actions=drop
77 NXT_FLOW_MOD: ADD table:255 tun_id=0x1234000056780000/0xffff0000ffff0000 actions=drop
78 NXT_FLOW_MOD: ADD table:255 actions=bundle(eth_src,50,active_backup,ofport,slaves:1)
79 NXT_FLOW_MOD: ADD table:255 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:2,3)
80 NXT_FLOW_MOD: ADD table:255 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:)
81 NXT_FLOW_MOD: ADD table:255 actions=output:1,bundle(eth_src,0,hrw,ofport,slaves:1),output:2
82 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(eth_src,50,active_backup,ofport,NXM_NX_REG0[],slaves:1)
83 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:2,3)
84 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:2,3)
85 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..30],slaves:)
86 NXT_FLOW_MOD: ADD table:255 actions=output:1,bundle_load(eth_src,0,hrw,ofport,NXM_NX_REG0[16..31],slaves:1),output:2
87 NXT_FLOW_MOD: ADD table:255 actions=resubmit:1,resubmit:2,resubmit(,3),resubmit(2,3)
88 NXT_FLOW_MOD: ADD table:255 send_flow_rem actions=output:1,output:NXM_NX_REG0[],output:2,output:NXM_NX_REG1[16..31],output:3
89 NXT_FLOW_MOD: ADD table:255 check_overlap actions=output:1,exit,output:2
90 NXT_FLOW_MOD: ADD table:255 actions=fin_timeout(idle_timeout=5,hard_timeout=15)
91 NXT_FLOW_MOD: ADD table:255 actions=controller(reason=invalid_ttl,max_len=123,id=555)
95 AT_SETUP([ovs-ofctl -F nxm parse-flows])
96 AT_DATA([flows.txt], [
98 tcp,tp_src=123,actions=flood
99 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
100 arp,dl_src=00:0A:E4:25:6B:B0,arp_sha=00:0A:E4:25:6B:B0 actions=drop
101 ipv6,ipv6_label=0x12345 actions=2
102 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=3
103 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5/64 actions=4
104 ipv6,ipv6_dst=2001:db8:3c4d:1:2:3:4:5/127 actions=5
105 tcp6,ipv6_src=2001:db8:3c4d:1::1,tp_dst=80 actions=drop
106 udp6,ipv6_src=2001:db8:3c4d:1::3,tp_dst=53 actions=drop
107 in_port=3 icmp6,ipv6_src=2001:db8:3c4d:1::1,icmp_type=134 actions=drop
108 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
109 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
110 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
111 icmp6,icmp_type=135,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571 actions=drop
112 icmp6,icmp_type=135,nd_target=FEC0::1234:F045:8FFF:1111:FE4F:0571/112 actions=drop
113 icmp6,icmp_type=135,nd_sll=00:0A:E4:25:6B:B0 actions=drop
114 icmp6,icmp_type=136,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571,nd_tll=00:0A:E4:25:6B:B1 actions=drop
115 icmp6,icmp_type=136,nd_target=FEC0::1234:F045:8FFF:1111:FE00:0000/96,nd_tll=00:0A:E4:25:6B:B1 actions=drop
116 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
117 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
118 tun_id=0x1234,cookie=0x5678,actions=flood
120 tun_id=0x1234000056780000/0xffff0000ffff0000,actions=drop
121 dl_dst=01:00:00:00:00:00/01:00:00:00:00:00,actions=drop
122 dl_dst=00:00:00:00:00:00/01:00:00:00:00:00,actions=drop
123 dl_dst=aa:bb:cc:dd:ee:ff/fe:ff:ff:ff:ff:ff,actions=drop
124 dl_dst=aa:bb:cc:dd:ee:ff/00:00:00:00:00:00,actions=drop
126 AT_CHECK([ovs-ofctl -F nxm parse-flows flows.txt], [0], [stdout])
127 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0], [dnl
128 usable protocols: NXM
129 chosen protocol: NXM-table_id
130 NXT_FLOW_MOD: ADD tcp,tp_src=123 actions=FLOOD
131 NXT_FLOW_MOD: ADD in_port=65534,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
132 NXT_FLOW_MOD: ADD arp,dl_src=00:0a:e4:25:6b:b0,arp_sha=00:0a:e4:25:6b:b0 actions=drop
133 NXT_FLOW_MOD: ADD ipv6,ipv6_label=0x12345 actions=output:2
134 NXT_FLOW_MOD: ADD ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=output:3
135 NXT_FLOW_MOD: ADD ipv6,ipv6_src=2001:db8:3c4d:1::/64 actions=output:4
136 NXT_FLOW_MOD: ADD ipv6,ipv6_dst=2001:db8:3c4d:1:2:3:4:4/127 actions=output:5
137 NXT_FLOW_MOD: ADD tcp6,ipv6_src=2001:db8:3c4d:1::1,tp_dst=80 actions=drop
138 NXT_FLOW_MOD: ADD udp6,ipv6_src=2001:db8:3c4d:1::3,tp_dst=53 actions=drop
139 NXT_FLOW_MOD: ADD icmp6,in_port=3,ipv6_src=2001:db8:3c4d:1::1,icmp_type=134 actions=drop
140 NXT_FLOW_MOD: ADD udp,dl_vlan_pcp=7 idle:5 actions=strip_vlan,output:0
141 NXT_FLOW_MOD: ADD tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
142 NXT_FLOW_MOD: ADD udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
143 NXT_FLOW_MOD: ADD icmp6,icmp_type=135,nd_target=fec0:0:1234:f045:8fff:1111:fe4e:571 actions=drop
144 NXT_FLOW_MOD: ADD icmp6,icmp_type=135,nd_target=fec0:0:1234:f045:8fff:1111:fe4f:0/112 actions=drop
145 NXT_FLOW_MOD: ADD icmp6,icmp_type=135,nd_sll=00:0a:e4:25:6b:b0 actions=drop
146 NXT_FLOW_MOD: ADD icmp6,icmp_type=136,nd_target=fec0:0:1234:f045:8fff:1111:fe4e:571,nd_tll=00:0a:e4:25:6b:b1 actions=drop
147 NXT_FLOW_MOD: ADD icmp6,icmp_type=136,nd_target=fec0:0:1234:f045:8fff:1111::/96,nd_tll=00:0a:e4:25:6b:b1 actions=drop
148 NXT_FLOW_MOD: ADD priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
149 NXT_FLOW_MOD: ADD actions=note:41.42.43.00.00.00,note:00.01.02.03.04.05.06.07.00.00.00.00.00.00,note:00.00.00.00.00.00
150 NXT_FLOW_MOD: ADD tun_id=0x1234 cookie:0x5678 actions=FLOOD
151 NXT_FLOW_MOD: ADD actions=drop
152 NXT_FLOW_MOD: ADD tun_id=0x1234000056780000/0xffff0000ffff0000 actions=drop
153 NXT_FLOW_MOD: ADD dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=drop
154 NXT_FLOW_MOD: ADD dl_dst=00:00:00:00:00:00/01:00:00:00:00:00 actions=drop
155 NXT_FLOW_MOD: ADD dl_dst=aa:bb:cc:dd:ee:ff/fe:ff:ff:ff:ff:ff actions=drop
156 NXT_FLOW_MOD: ADD actions=drop
160 AT_SETUP([ovs-ofctl -F nxm -mmm parse-flows])
161 AT_DATA([flows.txt], [[
163 tcp,tp_src=123,actions=flood
164 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
165 arp,dl_src=00:0A:E4:25:6B:B0,arp_sha=00:0A:E4:25:6B:B0 actions=drop
166 ipv6,ipv6_label=0x12345 actions=2
167 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=3
168 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5/64 actions=4
169 ipv6,ipv6_dst=2001:db8:3c4d:1:2:3:4:5/127 actions=5
170 tcp6,ipv6_src=2001:db8:3c4d:1::1,tp_dst=80 actions=drop
171 udp6,ipv6_src=2001:db8:3c4d:1::3,tp_dst=53 actions=drop
172 in_port=3 icmp6,ipv6_src=2001:db8:3c4d:1::1,icmp_type=134 actions=drop
173 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
174 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
175 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
176 icmp6,icmp_type=135,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571 actions=drop
177 icmp6,icmp_type=135,nd_sll=00:0A:E4:25:6B:B0 actions=drop
178 icmp6,icmp_type=136,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571,nd_tll=00:0A:E4:25:6B:B1 actions=drop
179 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
180 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
181 tun_id=0x1234,cookie=0x5678,actions=flood
183 reg0=123,actions=move:NXM_NX_REG0[0..5]->NXM_NX_REG1[26..31],load:55->NXM_NX_REG2[0..31],move:NXM_NX_REG0[0..31]->NXM_NX_TUN_ID[0..31],move:NXM_NX_REG0[0..15]->NXM_OF_VLAN_TCI[]
184 actions=autopath(5,NXM_NX_REG0[])
185 vlan_tci=0x1123/0x1fff,actions=drop
187 AT_CHECK([ovs-ofctl -F nxm -mmm parse-flows flows.txt], [0], [stdout])
188 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
189 [[usable protocols: NXM
190 chosen protocol: NXM-table_id
191 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC(007b) actions=FLOOD
192 NXT_FLOW_MOD: ADD NXM_OF_IN_PORT(fffe), NXM_OF_ETH_SRC(000ae4256bb0), NXM_OF_VLAN_TCI_W(1009/1fff) actions=drop
193 NXT_FLOW_MOD: ADD NXM_OF_ETH_SRC(000ae4256bb0), NXM_OF_ETH_TYPE(0806), NXM_NX_ARP_SHA(000ae4256bb0) actions=drop
194 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_LABEL(00012345) actions=output:2
195 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005) actions=output:3
196 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000) actions=output:4
197 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST_W(20010db83c4d00010002000300040004/fffffffffffffffffffffffffffffffe) actions=output:5
198 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010000000000000001), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST(0050) actions=drop
199 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010000000000000003), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST(0035) actions=drop
200 NXT_FLOW_MOD: ADD NXM_OF_IN_PORT(0003), NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010000000000000001), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(86) actions=drop
201 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800), NXM_OF_VLAN_TCI_W(f000/f000), NXM_OF_IP_PROTO(11) idle:5 actions=strip_vlan,output:0
202 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC(c0a80003), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST(0050) actions=set_queue:37,output:1
203 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC(c0a80003), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST(0035) actions=pop_queue,output:1
204 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87), NXM_NX_ND_TARGET(fec000001234f0458fff1111fe4e0571) actions=drop
205 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87), NXM_NX_ND_SLL(000ae4256bb0) actions=drop
206 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(88), NXM_NX_ND_TARGET(fec000001234f0458fff1111fe4e0571), NXM_NX_ND_TLL(000ae4256bb1) actions=drop
207 NXT_FLOW_MOD: ADD <any> cookie:0x123456789abcdef hard:10 pri:60000 actions=CONTROLLER:65535
208 NXT_FLOW_MOD: ADD <any> actions=note:41.42.43.00.00.00,note:00.01.02.03.04.05.06.07.00.00.00.00.00.00,note:00.00.00.00.00.00
209 NXT_FLOW_MOD: ADD NXM_NX_TUN_ID(0000000000001234) cookie:0x5678 actions=FLOOD
210 NXT_FLOW_MOD: ADD <any> actions=drop
211 NXT_FLOW_MOD: ADD NXM_NX_REG0(0000007b) actions=move:NXM_NX_REG0[0..5]->NXM_NX_REG1[26..31],load:0x37->NXM_NX_REG2[],move:NXM_NX_REG0[]->NXM_NX_TUN_ID[0..31],move:NXM_NX_REG0[0..15]->NXM_OF_VLAN_TCI[]
212 NXT_FLOW_MOD: ADD <any> actions=autopath(5,NXM_NX_REG0[])
213 NXT_FLOW_MOD: ADD NXM_OF_VLAN_TCI_W(1123/1fff) actions=drop
217 AT_SETUP([ovs-ofctl parse-nx-match])
218 AT_KEYWORDS([nx-match])
219 AT_DATA([nx-match.txt], [dnl
227 NXM_OF_ETH_DST(0002e30f80a4)
228 NXM_OF_ETH_DST_W(010000000000/010000000000)
229 NXM_OF_ETH_DST_W(000000000000/010000000000)
230 NXM_OF_ETH_DST_W(ffffffffffff/010000000000)
231 NXM_OF_ETH_DST_W(0002e30f80a4/ffffffffffff)
232 NXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
233 NXM_OF_ETH_DST_W(60175619848f/5a5a5a5a5a5a)
236 NXM_OF_ETH_SRC(020898456ddb)
237 NXM_OF_ETH_SRC_W(012345abcdef/ffffff555555)
238 NXM_OF_ETH_SRC_W(020898456ddb/ffffffffffff)
241 NXM_OF_ETH_TYPE(0800)
242 NXM_OF_ETH_TYPE(0800) NXM_OF_IN_PORT(0012)
245 NXM_OF_VLAN_TCI(f009)
246 NXM_OF_VLAN_TCI(f009) NXM_OF_VLAN_TCI(f009)
247 NXM_OF_VLAN_TCI(0000) # Packets without 802.1Q header.
248 NXM_OF_VLAN_TCI(3123) # Packets with VID=123, PCP=1.
249 NXM_OF_VLAN_TCI(0123) # Does not make sense (but supported anyway)
250 NXM_OF_VLAN_TCI_W(1123/1fff) # Packets with VID=123, any PCP.
251 NXM_OF_VLAN_TCI_W(f000/f000) # Packets with any VID, PCP=7.
252 NXM_OF_VLAN_TCI_W(0000/e000) # No 802.1Q or with VID=0
255 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_TOS(f0)
256 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_TOS(41)
260 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_ECN(03)
261 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_ECN(06)
265 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(01)
266 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(05)
270 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_TTL(80)
271 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_TTL(ff)
275 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC(ac100014)
276 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC_W(C0a80000/FFFF0000)
277 NXM_OF_ETH_TYPE(0806) NXM_OF_IP_SRC(ac100014)
278 NXM_OF_IP_SRC_W(C0D80000/FFFF0000)
281 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST(ac100014)
282 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST_W(C0a88012/FFFF0000)
283 NXM_OF_IP_DST(ac100014)
284 NXM_OF_ETH_TYPE(0806) NXM_OF_IP_DST_W(C0D80000/FFFF0000)
287 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_SRC(4231)
288 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_SRC_W(5050/F0F0)
289 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(07) NXM_OF_TCP_SRC(4231)
291 # TCP destination port
292 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_DST(4231)
293 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_DST_W(FDE0/FFF0)
294 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(07) NXM_OF_TCP_DST(4231)
297 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_SRC(8732)
298 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_SRC_W(0132/01FF)
299 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_UDP_SRC(7823)
301 # UDP destination port
302 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_DST(1782)
303 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_DST_W(5005/F00F)
304 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(02) NXM_OF_UDP_DST(1293)
307 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(01) NXM_OF_ICMP_TYPE(12)
308 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(00) NXM_OF_ICMP_TYPE(10)
311 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(01) NXM_OF_ICMP_CODE(12)
312 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(00) NXM_OF_ICMP_CODE(10)
313 NXM_OF_ETH_TYPE(0800) NXM_OF_ICMP_CODE(10)
317 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_OP(0001)
318 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_OP(1111)
319 NXM_OF_ETH_TYPE(0000) NXM_OF_ARP_OP(0001)
321 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_OP(0001) NXM_OF_ARP_OP(0001)
323 # ARP source protocol address
324 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA(ac100014)
325 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA_W(C0a81234/FFFFFF00)
326 NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_SPA(ac100014)
327 NXM_OF_ARP_SPA_W(C0D8fedc/FFFF0000)
329 # ARP destination protocol address
330 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA(ac100014)
331 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA_W(C0a812fe/FFFFFF00)
332 NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_TPA(ac100014)
333 NXM_OF_ARP_TPA_W(C0D80000/FFFF0000)
335 # ARP source hardware address
336 NXM_OF_ETH_TYPE(0806) NXM_NX_ARP_SHA(0002e30f80a4)
337 NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_SHA(0002e30f80a4)
338 NXM_NX_ARP_SHA(0002e30f80a4)
340 # ARP destination hardware address
341 NXM_OF_ETH_TYPE(0806) NXM_NX_ARP_THA(0002e30f80a4)
342 NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_THA(0002e30f80a4)
343 NXM_NX_ARP_THA(0002e30f80a4)
346 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005)
347 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005)
348 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
349 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
352 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST(20010db83c4d00010002000300040005)
353 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_DST(20010db83c4d00010002000300040005)
354 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
355 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
357 # ND source hardware address
358 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005) NXM_NX_ND_SLL(0002e30f80a4)
359 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(88) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005) NXM_NX_ND_SLL(0002e30f80a4)
360 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3b) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005) NXM_NX_ND_SLL(0002e30f80a4)
361 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005) NXM_NX_ND_SLL(0002e30f80a4)
363 # ND destination hardware address
364 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(88) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005) NXM_NX_ND_TLL(0002e30f80a4)
365 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005) NXM_NX_ND_TLL(0002e30f80a4)
366 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3b) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005) NXM_NX_ND_TLL(0002e30f80a4)
367 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(88) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005) NXM_NX_ND_TLL(0002e30f80a4)
370 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(00)
371 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(01)
372 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(02)
373 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(03)
374 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(00/03)
375 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(00/fd)
376 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(00/02)
377 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(01/01)
378 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(02/02)
379 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(03/03)
380 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(f3)
383 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(00)
384 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(01)
385 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(02)
386 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(03)
387 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(00/03)
388 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(00/01)
389 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(00/02)
390 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(01/01)
391 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(02/02)
392 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(03/03)
393 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(f3)
396 NXM_NX_COOKIE(00000000abcdef01)
397 NXM_NX_COOKIE_W(84200000abcdef01/84200000FFFFFFFF)
400 NXM_NX_TUN_ID(00000000abcdef01)
401 NXM_NX_TUN_ID_W(84200000abcdef01/84200000FFFFFFFF)
404 NXM_NX_REG0(acebdf56)
405 NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
407 # Invalid field number.
410 # Unimplemented registers.
412 # This test assumes that at least two registers, but fewer than 16,
413 # registers are implemented.
415 00010108(12345678/12345678)
417 00011f08(12345678/12345678)
419 AT_CHECK([ovs-ofctl --strict parse-nx-match < nx-match.txt], [0], [dnl
427 NXM_OF_ETH_DST(0002e30f80a4)
428 NXM_OF_ETH_DST_W(010000000000/010000000000)
429 NXM_OF_ETH_DST_W(000000000000/010000000000)
430 NXM_OF_ETH_DST_W(010000000000/010000000000)
431 NXM_OF_ETH_DST(0002e30f80a4)
432 NXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
433 NXM_OF_ETH_DST_W(40125218000a/5a5a5a5a5a5a)
436 NXM_OF_ETH_SRC(020898456ddb)
437 NXM_OF_ETH_SRC_W(012345014545/ffffff555555)
438 NXM_OF_ETH_SRC(020898456ddb)
441 NXM_OF_ETH_TYPE(0800)
442 NXM_OF_IN_PORT(0012), NXM_OF_ETH_TYPE(0800)
445 NXM_OF_VLAN_TCI(f009)
446 nx_pull_match() returned error OFPBMC_DUP_FIELD
447 NXM_OF_VLAN_TCI(0000)
448 NXM_OF_VLAN_TCI(3123)
449 NXM_OF_VLAN_TCI(0123)
450 NXM_OF_VLAN_TCI_W(1123/1fff)
451 NXM_OF_VLAN_TCI_W(f000/f000)
452 NXM_OF_VLAN_TCI_W(0000/e000)
455 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_TOS(f0)
456 nx_pull_match() returned error OFPBMC_BAD_VALUE
457 nx_pull_match() returned error OFPBMC_BAD_PREREQ
460 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_ECN(03)
461 nx_pull_match() returned error OFPBMC_BAD_VALUE
462 nx_pull_match() returned error OFPBMC_BAD_PREREQ
465 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(01)
466 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(05)
467 nx_pull_match() returned error OFPBMC_BAD_PREREQ
470 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_TTL(80)
471 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_TTL(ff)
472 nx_pull_match() returned error OFPBMC_BAD_PREREQ
475 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC(ac100014)
476 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC_W(c0a80000/ffff0000)
477 nx_pull_match() returned error OFPBMC_BAD_PREREQ
478 nx_pull_match() returned error OFPBMC_BAD_PREREQ
481 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_DST(ac100014)
482 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_DST_W(c0a80000/ffff0000)
483 nx_pull_match() returned error OFPBMC_BAD_PREREQ
484 nx_pull_match() returned error OFPBMC_BAD_PREREQ
487 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC(4231)
488 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC_W(5050/f0f0)
489 nx_pull_match() returned error OFPBMC_BAD_PREREQ
491 # TCP destination port
492 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST(4231)
493 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST_W(fde0/fff0)
494 nx_pull_match() returned error OFPBMC_BAD_PREREQ
497 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_SRC(8732)
498 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_SRC_W(0132/01ff)
499 nx_pull_match() returned error OFPBMC_BAD_PREREQ
501 # UDP destination port
502 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST(1782)
503 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST_W(5005/f00f)
504 nx_pull_match() returned error OFPBMC_BAD_PREREQ
507 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(01), NXM_OF_ICMP_TYPE(12)
508 nx_pull_match() returned error OFPBMC_BAD_PREREQ
511 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(01), NXM_OF_ICMP_CODE(12)
512 nx_pull_match() returned error OFPBMC_BAD_PREREQ
513 nx_pull_match() returned error OFPBMC_BAD_PREREQ
514 nx_pull_match() returned error OFPBMC_BAD_PREREQ
517 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_OP(0001)
518 nx_pull_match() returned error OFPBMC_BAD_VALUE
519 nx_pull_match() returned error OFPBMC_BAD_PREREQ
520 nx_pull_match() returned error OFPBMC_BAD_PREREQ
521 nx_pull_match() returned error OFPBMC_DUP_FIELD
523 # ARP source protocol address
524 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_SPA(ac100014)
525 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_SPA_W(c0a81200/ffffff00)
526 nx_pull_match() returned error OFPBMC_BAD_PREREQ
527 nx_pull_match() returned error OFPBMC_BAD_PREREQ
529 # ARP destination protocol address
530 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_TPA(ac100014)
531 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_TPA_W(c0a81200/ffffff00)
532 nx_pull_match() returned error OFPBMC_BAD_PREREQ
533 nx_pull_match() returned error OFPBMC_BAD_PREREQ
535 # ARP source hardware address
536 NXM_OF_ETH_TYPE(0806), NXM_NX_ARP_SHA(0002e30f80a4)
537 nx_pull_match() returned error OFPBMC_BAD_PREREQ
538 nx_pull_match() returned error OFPBMC_BAD_PREREQ
540 # ARP destination hardware address
541 NXM_OF_ETH_TYPE(0806), NXM_NX_ARP_THA(0002e30f80a4)
542 nx_pull_match() returned error OFPBMC_BAD_PREREQ
543 nx_pull_match() returned error OFPBMC_BAD_PREREQ
546 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005)
547 nx_pull_match() returned error OFPBMC_BAD_PREREQ
548 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
549 nx_pull_match() returned error OFPBMC_BAD_PREREQ
552 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST(20010db83c4d00010002000300040005)
553 nx_pull_match() returned error OFPBMC_BAD_PREREQ
554 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
555 nx_pull_match() returned error OFPBMC_BAD_PREREQ
557 # ND source hardware address
558 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87), NXM_NX_ND_TARGET(20010db83c4d00010002000300040005), NXM_NX_ND_SLL(0002e30f80a4)
559 nx_pull_match() returned error OFPBMC_BAD_PREREQ
560 nx_pull_match() returned error OFPBMC_BAD_PREREQ
561 nx_pull_match() returned error OFPBMC_BAD_PREREQ
563 # ND destination hardware address
564 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(88), NXM_NX_ND_TARGET(20010db83c4d00010002000300040005), NXM_NX_ND_TLL(0002e30f80a4)
565 nx_pull_match() returned error OFPBMC_BAD_PREREQ
566 nx_pull_match() returned error OFPBMC_BAD_PREREQ
567 nx_pull_match() returned error OFPBMC_BAD_PREREQ
570 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(00)
571 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(01)
572 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(02)
573 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(03)
574 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(00)
575 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(00/01)
576 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(00/02)
577 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(01/01)
578 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(02/02)
579 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(03)
580 nx_pull_match() returned error OFPBMC_BAD_VALUE
583 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(00)
584 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(01)
585 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(02)
586 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(03)
587 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(00)
588 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(00/01)
589 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(00/02)
590 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(01/01)
591 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(02/02)
592 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(03)
593 nx_pull_match() returned error OFPBMC_BAD_VALUE
596 NXM_NX_COOKIE(00000000abcdef01)
597 NXM_NX_COOKIE_W(84200000abcdef01/84200000ffffffff)
600 NXM_NX_TUN_ID(00000000abcdef01)
601 NXM_NX_TUN_ID_W(84200000abcdef01/84200000ffffffff)
604 NXM_NX_REG0(acebdf56)
605 NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
607 # Invalid field number.
608 nx_pull_match() returned error OFPBMC_BAD_FIELD
610 # Unimplemented registers.
612 # This test assumes that at least two registers, but fewer than 16,
613 # registers are implemented.
614 NXM_NX_REG0(12345678)
615 NXM_NX_REG0_W(12345678/12345678)
616 nx_pull_match() returned error OFPBMC_BAD_FIELD
617 nx_pull_match() returned error OFPBMC_BAD_FIELD
621 AT_SETUP([ovs-ofctl parse-ofp11-match])
623 AT_DATA([test-data], [dnl
625 0000 0058 fffffffe 000003fe dnl
626 000000000000ffffffffffff 000000000000ffffffffffff dnl
627 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
628 00000000 00 000000 0000000000000000ffffffffffffffff
630 # bad ofp11_match: OFPBMC_BAD_VALUE
631 & ofp_util|WARN|port 305419896 is outside the supported range 0 through 65279 or 0xffffff00 through 0xffffffff
632 0000 0058 12345678 000003fe dnl
633 000000000000ffffffffffff 000000000000ffffffffffff dnl
634 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
635 00000000 00 000000 0000000000000000ffffffffffffffff
637 # dl_src=00:01:02:03:04:05
638 0000 0058 00000000 000003ff dnl
639 000102030405000000000000 000000000000ffffffffffff dnl
640 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
641 00000000 00 000000 0000000000000000ffffffffffffffff
643 # dl_src=55:55:55:55:55:55/55:55:55:55:55:55
644 0000 0058 00000000 000003ff dnl
645 555555555555aaaaaaaaaaaa 000000000000ffffffffffff dnl
646 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
647 00000000 00 000000 0000000000000000ffffffffffffffff
649 # dl_dst=00:01:02:03:04:05
650 0000 0058 00000000 000003ff dnl
651 000000000000ffffffffffff 000102030405000000000000 dnl
652 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
653 00000000 00 000000 0000000000000000ffffffffffffffff
655 # dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
656 0000 0058 00000000 000003ff dnl
657 000000000000ffffffffffff 010000000000feffffffffff dnl
658 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
659 00000000 00 000000 0000000000000000ffffffffffffffff
661 # dl_dst=00:01:02:03:04:05/fe:ff:ff:ff:ff:ff
662 0000 0058 00000000 000003ff dnl
663 000000000000ffffffffffff 000102030405010000000000 dnl
664 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
665 00000000 00 000000 0000000000000000ffffffffffffffff
667 # dl_dst=55:55:55:55:55:55/55:55:55:55:55:55
668 0000 0058 00000000 000003ff dnl
669 000000000000ffffffffffff 555555555555aaaaaaaaaaaa dnl
670 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
671 00000000 00 000000 0000000000000000ffffffffffffffff
673 dnl dl_vlan_pcp is ignored if dl_vlan is wildcarded, which causes the
674 dnl the wildcard bit and the dl_vlan_pcp to be dropped for output:
678 0000 0058 00000001 000003fa dnl
679 000000000000ffffffffffff 000000000000ffffffffffff dnl
680 0000 03 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
681 00000000 00 000000 0000000000000000ffffffffffffffff
684 0000 0058 00000000 000003fd dnl
685 000000000000ffffffffffff 000000000000ffffffffffff dnl
686 0123 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
687 00000000 00 000000 0000000000000000ffffffffffffffff
691 0000 0058 00000000 000003fd dnl
692 000000000000ffffffffffff 000000000000ffffffffffff dnl
693 ffff 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
694 00000000 00 000000 0000000000000000ffffffffffffffff
696 dnl OFPVID_NONE ignores dl_vlan_pcp even if not wildcarded, which causes
697 dnl the wildcard bit and the dl_vlan_pcp to be dropped for output:
701 0000 0058 00000000 000003f9 dnl
702 000000000000ffffffffffff 000000000000ffffffffffff dnl
703 ffff 05 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
704 00000000 00 000000 0000000000000000ffffffffffffffff
706 # vlan_tci=0x1000/0x1000
707 0000 0058 00000000 000003fd dnl
708 000000000000ffffffffffff 000000000000ffffffffffff dnl
709 fffe 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
710 00000000 00 000000 0000000000000000ffffffffffffffff
713 # bad ofp11_match: OFPBMC_BAD_VALUE
714 0000 0058 00000000 000003fd dnl
715 000000000000ffffffffffff 000000000000ffffffffffff dnl
716 1234 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
717 00000000 00 000000 0000000000000000ffffffffffffffff
720 0000 0058 00000000 000003f9 dnl
721 000000000000ffffffffffff 000000000000ffffffffffff dnl
722 fffe 04 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
723 00000000 00 000000 0000000000000000ffffffffffffffff
725 # dl_vlan=10,dl_vlan_pcp=6
726 0000 0058 00000000 000003f9 dnl
727 000000000000ffffffffffff 000000000000ffffffffffff dnl
728 000a 06 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
729 00000000 00 000000 0000000000000000ffffffffffffffff
732 0000 0058 00000000 000003f7 dnl
733 000000000000ffffffffffff 000000000000ffffffffffff dnl
734 0000 00 00 1234 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
735 00000000 00 000000 0000000000000000ffffffffffffffff
738 0000 0058 00000000 000003e7 dnl
739 000000000000ffffffffffff 000000000000ffffffffffff dnl
740 0000 00 00 0800 fc 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
741 00000000 00 000000 0000000000000000ffffffffffffffff
744 # bad ofp11_match: OFPBMC_BAD_VALUE
745 0000 0058 00000000 000003e7 dnl
746 000000000000ffffffffffff 000000000000ffffffffffff dnl
747 0000 00 00 0800 01 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
748 00000000 00 000000 0000000000000000ffffffffffffffff
751 0000 0058 00000000 000003d7 dnl
752 000000000000ffffffffffff 000000000000ffffffffffff dnl
753 0000 00 00 0800 00 05 00000000ffffffff 00000000ffffffff 0000 0000 dnl
754 00000000 00 000000 0000000000000000ffffffffffffffff
757 0000 0058 00000000 000003d7 dnl
758 000000000000ffffffffffff 000000000000ffffffffffff dnl
759 0000 00 00 0806 00 02 00000000ffffffff 00000000ffffffff 0000 0000 dnl
760 00000000 00 000000 0000000000000000ffffffffffffffff
762 # ip,nw_src=192.168.128.0/24
763 0000 0058 00000000 000003f7 dnl
764 000000000000ffffffffffff 000000000000ffffffffffff dnl
765 0000 00 00 0800 00 00 c0a88000000000ff 00000000ffffffff 0000 0000 dnl
766 00000000 00 000000 0000000000000000ffffffffffffffff
768 dnl Try non-CIDR nw_src_mask:
769 # bad ofp11_match: OFPBMC_BAD_NW_ADDR_MASK
770 0000 0058 00000000 000003f7 dnl
771 000000000000ffffffffffff 000000000000ffffffffffff dnl
772 0000 00 00 0800 00 00 c0a880005a5a5a5a 00000000ffffffff 0000 0000 dnl
773 00000000 00 000000 0000000000000000ffffffffffffffff
775 # ip,nw_dst=192.168.128.0/24
776 0000 0058 00000000 000003f7 dnl
777 000000000000ffffffffffff 000000000000ffffffffffff dnl
778 0000 00 00 0800 00 00 00000000ffffffff c0a88000000000ff 0000 0000 dnl
779 00000000 00 000000 0000000000000000ffffffffffffffff
781 dnl Try non-CIDR nw_dst_mask:
782 # bad ofp11_match: OFPBMC_BAD_NW_ADDR_MASK
783 0000 0058 00000000 000003f7 dnl
784 000000000000ffffffffffff 000000000000ffffffffffff dnl
785 0000 00 00 0800 00 00 00000000ffffffff c0a880005a5a5a5a 0000 0000 dnl
786 00000000 00 000000 0000000000000000ffffffffffffffff
788 # arp,nw_src=192.168.128.0/24
789 0000 0058 00000000 000003f7 dnl
790 000000000000ffffffffffff 000000000000ffffffffffff dnl
791 0000 00 00 0806 00 00 c0a88000000000ff 00000000ffffffff 0000 0000 dnl
792 00000000 00 000000 0000000000000000ffffffffffffffff
794 # arp,nw_dst=192.168.128.0/24
795 0000 0058 00000000 000003f7 dnl
796 000000000000ffffffffffff 000000000000ffffffffffff dnl
797 0000 00 00 0806 00 00 00000000ffffffff c0a88000000000ff 0000 0000 dnl
798 00000000 00 000000 0000000000000000ffffffffffffffff
801 0000 0058 00000000 00000397 dnl
802 000000000000ffffffffffff 000000000000ffffffffffff dnl
803 0000 00 00 0800 00 06 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
804 00000000 00 000000 0000000000000000ffffffffffffffff
807 0000 0058 00000000 00000357 dnl
808 000000000000ffffffffffff 000000000000ffffffffffff dnl
809 0000 00 00 0800 00 06 00000000ffffffff 00000000ffffffff 0000 01bb dnl
810 00000000 00 000000 0000000000000000ffffffffffffffff
813 0000 0058 00000000 00000397 dnl
814 000000000000ffffffffffff 000000000000ffffffffffff dnl
815 0000 00 00 0800 00 11 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
816 00000000 00 000000 0000000000000000ffffffffffffffff
819 0000 0058 00000000 00000397 dnl
820 000000000000ffffffffffff 000000000000ffffffffffff dnl
821 0000 00 00 0800 00 01 00000000ffffffff 00000000ffffffff 0005 0000 dnl
822 00000000 00 000000 0000000000000000ffffffffffffffff
825 0000 0058 00000000 00000357 dnl
826 000000000000ffffffffffff 000000000000ffffffffffff dnl
827 0000 00 00 0800 00 01 00000000ffffffff 00000000ffffffff 0000 0008 dnl
828 00000000 00 000000 0000000000000000ffffffffffffffff
831 0000 0058 00000000 00000397 dnl
832 000000000000ffffffffffff 000000000000ffffffffffff dnl
833 0000 00 00 0800 00 11 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
834 00000000 00 000000 0000000000000000ffffffffffffffff
837 0000 0058 00000000 00000357 dnl
838 000000000000ffffffffffff 000000000000ffffffffffff dnl
839 0000 00 00 0800 00 11 00000000ffffffff 00000000ffffffff 0000 01bb dnl
840 00000000 00 000000 0000000000000000ffffffffffffffff
844 0000 0058 00000000 000003d7 dnl
845 000000000000ffffffffffff 000000000000ffffffffffff dnl
846 0000 00 00 0800 00 84 00000000ffffffff 00000000ffffffff 0000 0000 dnl
847 00000000 00 000000 0000000000000000ffffffffffffffff
849 dnl SCTP tp_src matching not supported:
850 # bad ofp11_match: OFPBMC_BAD_FIELD
851 0000 0058 00000000 00000397 dnl
852 000000000000ffffffffffff 000000000000ffffffffffff dnl
853 0000 00 00 0800 00 84 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
854 00000000 00 000000 0000000000000000ffffffffffffffff
856 dnl SCTP tp_dst matching not supported:
857 # bad ofp11_match: OFPBMC_BAD_FIELD
858 0000 0058 00000000 00000357 dnl
859 000000000000ffffffffffff 000000000000ffffffffffff dnl
860 0000 00 00 0800 00 84 00000000ffffffff 00000000ffffffff 0000 01bb dnl
861 00000000 00 000000 0000000000000000ffffffffffffffff
863 dnl Ignore tp_src if not TCP or UDP or SCTP:
868 0000 0058 00000000 00000397 dnl
869 000000000000ffffffffffff 000000000000ffffffffffff dnl
870 0000 00 00 0800 00 15 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
871 00000000 00 000000 0000000000000000ffffffffffffffff
873 dnl Ignore tp_dst if not TCP or UDP or SCTP:
878 0000 0058 00000000 00000357 dnl
879 000000000000ffffffffffff 000000000000ffffffffffff dnl
880 0000 00 00 0800 00 16 00000000ffffffff 00000000ffffffff 0000 01bb dnl
881 00000000 00 000000 0000000000000000ffffffffffffffff
883 dnl mpls_label not yet supported:
884 # bad ofp11_match: OFPBMC_BAD_TAG
885 0000 0058 00000000 000002f7 dnl
886 000000000000ffffffffffff 000000000000ffffffffffff dnl
887 0000 00 00 8847 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
888 12345678 00 000000 0000000000000000ffffffffffffffff
890 dnl mpls_tc not yet supported:
891 # bad ofp11_match: OFPBMC_BAD_TAG
892 0000 0058 00000000 000001f7 dnl
893 000000000000ffffffffffff 000000000000ffffffffffff dnl
894 0000 00 00 8848 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
895 00000000 5a 000000 0000000000000000ffffffffffffffff
897 dnl mpls_label and mpls_tc must be ignored if dl_type is not MPLS:
905 0000 0058 00000000 000000f7 dnl
906 000000000000ffffffffffff 000000000000ffffffffffff dnl
907 0000 00 00 1234 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
908 12345678 5a 000000 0000000000000000ffffffffffffffff
910 dnl metadata match not yet supported:
911 # bad ofp11_match: OFPBMC_BAD_FIELD
912 0000 0058 00000000 000003ff dnl
913 000000000000ffffffffffff 000000000000ffffffffffff dnl
914 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
915 00000000 00 000000 0000000000000001fffffffffffffffe
918 sed '/^[[#&]]/d' < test-data > input.txt
919 sed -n 's/^# //p; /^$/p' < test-data > expout
920 sed -n 's/^& //p' < test-data > experr
921 AT_CAPTURE_FILE([input.txt])
922 AT_CAPTURE_FILE([expout])
923 AT_CAPTURE_FILE([experr])
925 [ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-ofp11-match < input.txt],
926 [0], [expout], [experr])
929 AT_SETUP([ovs-ofctl parse-nx-match loose])
930 AT_KEYWORDS([nx-match])
931 AT_DATA([nx-match.txt], [dnl
932 NXM_OF_IN_PORT(0001), 01020304(1111/2222), NXM_OF_ETH_TYPE(0800)
935 AT_CHECK([ovs-ofctl --strict parse-nx-match < nx-match.txt], [0], [dnl
936 nx_pull_match() returned error OFPBMC_BAD_FIELD
939 AT_CHECK([ovs-ofctl parse-nx-match < nx-match.txt], [0], [dnl
940 NXM_OF_IN_PORT(0001), NXM_OF_ETH_TYPE(0800)
944 AT_SETUP([ovs-ofctl parse-oxm])
946 AT_DATA([oxm.txt], [dnl
950 OXM_OF_IN_PORT(00000000)
951 OXM_OF_IN_PORT(fffffffe)
954 OXM_OF_ETH_DST(0002e30f80a4)
955 OXM_OF_ETH_DST_W(010000000000/010000000000)
956 OXM_OF_ETH_DST_W(000000000000/010000000000)
957 OXM_OF_ETH_DST_W(ffffffffffff/010000000000)
958 OXM_OF_ETH_DST_W(0002e30f80a4/ffffffffffff)
959 OXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
962 OXM_OF_ETH_SRC(020898456ddb)
965 OXM_OF_ETH_TYPE(0800)
966 OXM_OF_ETH_TYPE(0800) OXM_OF_IN_PORT(00000012)
969 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_ECN(03)
970 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_ECN(06)
974 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01)
975 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(05)
979 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC(ac100014)
980 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC_W(C0a80000/FFFF0000)
981 OXM_OF_ETH_TYPE(0806) OXM_OF_IPV4_SRC(ac100014)
982 OXM_OF_IPV4_SRC_W(C0D80000/FFFF0000)
985 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST(ac100014)
986 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST_W(C0a88012/FFFF0000)
987 OXM_OF_IPV4_DST(ac100014)
988 OXM_OF_ETH_TYPE(0806) OXM_OF_IPV4_DST_W(C0D80000/FFFF0000)
991 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC(4231)
992 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC_W(5050/F0F0)
993 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(07) OXM_OF_TCP_SRC(4231)
995 # TCP destination port
996 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST(4231)
997 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST_W(FDE0/FFF0)
998 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(07) OXM_OF_TCP_DST(4231)
1001 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC(8732)
1002 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC_W(0132/01FF)
1003 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_UDP_SRC(7823)
1005 # UDP destination port
1006 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST(1782)
1007 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST_W(5005/F00F)
1008 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(02) OXM_OF_UDP_DST(1293)
1011 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01) OXM_OF_ICMPV4_TYPE(12)
1012 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(00) OXM_OF_ICMPV4_TYPE(10)
1015 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01) OXM_OF_ICMPV4_CODE(12)
1016 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(00) OXM_OF_ICMPV4_CODE(10)
1017 OXM_OF_ETH_TYPE(0800) OXM_OF_ICMPV4_CODE(10)
1018 OXM_OF_ICMPV4_CODE(00)
1021 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(0001)
1022 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(1111)
1023 OXM_OF_ETH_TYPE(0000) OXM_OF_ARP_OP(0001)
1025 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(0001) OXM_OF_ARP_OP(0001)
1027 # ARP source protocol address
1028 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA(ac100014)
1029 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA_W(C0a81234/FFFFFF00)
1030 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_SPA(ac100014)
1031 OXM_OF_ARP_SPA_W(C0D8fedc/FFFF0000)
1033 # ARP destination protocol address
1034 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA(ac100014)
1035 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA_W(C0a812fe/FFFFFF00)
1036 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_TPA(ac100014)
1037 OXM_OF_ARP_TPA_W(C0D80000/FFFF0000)
1039 # ARP source hardware address
1040 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA(0002e30f80a4)
1041 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_SHA(0002e30f80a4)
1042 OXM_OF_ARP_SHA(0002e30f80a4)
1044 # ARP destination hardware address
1045 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA(0002e30f80a4)
1046 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_THA(0002e30f80a4)
1047 OXM_OF_ARP_THA(0002e30f80a4)
1050 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
1051 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
1052 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1053 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1056 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
1057 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
1058 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1059 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1061 # ND source hardware address
1062 OXM_OF_ETH_TYPE(86dd) OXM_OF_IP_PROTO(3a) OXM_OF_ICMPV6_TYPE(87) OXM_OF_IPV6_ND_TARGET(20010db83c4d00010002000300040005) OXM_OF_IPV6_ND_SLL(0002e30f80a4)
1063 OXM_OF_ETH_TYPE(86dd) OXM_OF_IP_PROTO(3a) OXM_OF_ICMPV6_TYPE(88) OXM_OF_IPV6_ND_TARGET(20010db83c4d00010002000300040005) OXM_OF_IPV6_ND_SLL(0002e30f80a4)
1064 OXM_OF_ETH_TYPE(86dd) OXM_OF_IP_PROTO(3b) OXM_OF_ICMPV6_TYPE(87) OXM_OF_IPV6_ND_TARGET(20010db83c4d00010002000300040005) OXM_OF_IPV6_ND_SLL(0002e30f80a4)
1065 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(3a) OXM_OF_ICMPV6_TYPE(87) OXM_OF_IPV6_ND_TARGET(20010db83c4d00010002000300040005) OXM_OF_IPV6_ND_SLL(0002e30f80a4)
1067 # ND destination hardware address
1068 OXM_OF_ETH_TYPE(86dd) OXM_OF_IP_PROTO(3a) OXM_OF_ICMPV6_TYPE(88) OXM_OF_IPV6_ND_TARGET(20010db83c4d00010002000300040005) OXM_OF_IPV6_ND_TLL(0002e30f80a4)
1069 OXM_OF_ETH_TYPE(86dd) OXM_OF_IP_PROTO(3a) OXM_OF_ICMPV6_TYPE(87) OXM_OF_IPV6_ND_TARGET(20010db83c4d00010002000300040005) OXM_OF_IPV6_ND_TLL(0002e30f80a4)
1070 OXM_OF_ETH_TYPE(86dd) OXM_OF_IP_PROTO(3b) OXM_OF_ICMPV6_TYPE(87) OXM_OF_IPV6_ND_TARGET(20010db83c4d00010002000300040005) OXM_OF_IPV6_ND_TLL(0002e30f80a4)
1071 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(3a) OXM_OF_ICMPV6_TYPE(88) OXM_OF_IPV6_ND_TARGET(20010db83c4d00010002000300040005) OXM_OF_IPV6_ND_TLL(0002e30f80a4)
1073 # Invalid field number.
1076 AT_CHECK([ovs-ofctl --strict parse-oxm < oxm.txt], [0], [dnl
1080 OXM_OF_IN_PORT(00000000)
1081 OXM_OF_IN_PORT(fffffffe)
1084 OXM_OF_ETH_DST(0002e30f80a4)
1085 OXM_OF_ETH_DST_W(010000000000/010000000000)
1086 OXM_OF_ETH_DST_W(000000000000/010000000000)
1087 OXM_OF_ETH_DST_W(010000000000/010000000000)
1088 OXM_OF_ETH_DST(0002e30f80a4)
1089 OXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
1092 OXM_OF_ETH_SRC(020898456ddb)
1095 OXM_OF_ETH_TYPE(0800)
1096 OXM_OF_IN_PORT(00000012), OXM_OF_ETH_TYPE(0800)
1099 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_ECN(03)
1100 nx_pull_match() returned error OFPBMC_BAD_VALUE
1101 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1104 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01)
1105 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(05)
1106 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1109 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_SRC(ac100014)
1110 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_SRC_W(c0a80000/ffff0000)
1111 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1112 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1115 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_DST(ac100014)
1116 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_DST_W(c0a80000/ffff0000)
1117 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1118 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1121 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_SRC(4231)
1122 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_SRC_W(5050/f0f0)
1123 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1125 # TCP destination port
1126 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_DST(4231)
1127 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_DST_W(fde0/fff0)
1128 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1131 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_SRC(8732)
1132 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_SRC_W(0132/01ff)
1133 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1135 # UDP destination port
1136 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_DST(1782)
1137 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_DST_W(5005/f00f)
1138 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1141 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01), OXM_OF_ICMPV4_TYPE(12)
1142 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1145 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01), OXM_OF_ICMPV4_CODE(12)
1146 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1147 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1148 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1151 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_OP(0001)
1152 nx_pull_match() returned error OFPBMC_BAD_VALUE
1153 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1154 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1155 nx_pull_match() returned error OFPBMC_DUP_FIELD
1157 # ARP source protocol address
1158 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SPA(ac100014)
1159 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SPA_W(c0a81200/ffffff00)
1160 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1161 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1163 # ARP destination protocol address
1164 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_TPA(ac100014)
1165 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_TPA_W(c0a81200/ffffff00)
1166 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1167 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1169 # ARP source hardware address
1170 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SHA(0002e30f80a4)
1171 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1172 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1174 # ARP destination hardware address
1175 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_THA(0002e30f80a4)
1176 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1177 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1180 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
1181 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1182 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1183 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1186 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
1187 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1188 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1189 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1191 # ND source hardware address
1192 OXM_OF_ETH_TYPE(86dd), OXM_OF_IP_PROTO(3a), OXM_OF_ICMPV6_TYPE(87), OXM_OF_IPV6_ND_TARGET(20010db83c4d00010002000300040005), OXM_OF_IPV6_ND_SLL(0002e30f80a4)
1193 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1194 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1195 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1197 # ND destination hardware address
1198 OXM_OF_ETH_TYPE(86dd), OXM_OF_IP_PROTO(3a), OXM_OF_ICMPV6_TYPE(88), OXM_OF_IPV6_ND_TARGET(20010db83c4d00010002000300040005), OXM_OF_IPV6_ND_TLL(0002e30f80a4)
1199 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1200 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1201 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1203 # Invalid field number.
1204 nx_pull_match() returned error OFPBMC_BAD_FIELD
1208 AT_SETUP([ovs-ofctl parse-oxm loose])
1210 AT_DATA([oxm.txt], [dnl
1211 OXM_OF_IN_PORT(00000001), 01020304(1111/2222), OXM_OF_ETH_TYPE(0800)
1214 AT_CHECK([ovs-ofctl --strict parse-oxm < oxm.txt], [0], [dnl
1215 nx_pull_match() returned error OFPBMC_BAD_FIELD
1218 AT_CHECK([ovs-ofctl parse-oxm < oxm.txt], [0], [dnl
1219 OXM_OF_IN_PORT(00000001), OXM_OF_ETH_TYPE(0800)
1223 dnl Check that "-F openflow10" rejects a flow_mod with a tun_id, since
1224 dnl OpenFlow 1.0 doesn't support tunnels.
1225 AT_SETUP([ovs-ofctl -F option and tun_id])
1226 AT_CHECK([ovs-ofctl -F openflow10 add-flow dummy tun_id=123,actions=drop],
1227 [1], [], [ovs-ofctl: none of the usable flow formats (NXM) is among the allowed flow formats (OpenFlow10)
1231 dnl Check that "-F nxm" really forces add-flow to use the NXM flow format.
1232 dnl (If it doesn't, then either the tun_id won't show up at all, or it will
1233 dnl additionally show up as the top 32 bits of the cookie.) This checks
1234 dnl for regression against bug #4566.
1235 AT_SETUP([ovs-ofctl -F option with flow_mods])
1237 AT_CHECK([ovs-ofctl -F nxm add-flow br0 tun_id=0x12345678,actions=drop])
1238 AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip], [0], [dnl
1240 tun_id=0x12345678 actions=drop
1245 dnl Check that "-F openflow10" is really honored on dump-flows.
1246 dnl (If it isn't, then dump-flows will show the register match.)
1247 AT_SETUP([ovs-ofctl dump-flows honors -F option])
1249 AT_CHECK([ovs-ofctl add-flow br0 reg0=0x12345,actions=drop])
1250 AT_CHECK([ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip], [0], [dnl
1257 dnl Check that "-F openflow10" fails on dump-flows if the requested match
1258 dnl can't be represented in OpenFlow 1.0.
1259 AT_SETUP([ovs-ofctl dump-flows rejects bad -F option])
1261 AT_CHECK([ovs-ofctl -F openflow10 dump-flows unix:br0.mgmt reg0=0xabcdef], [1], [],
1262 [ovs-ofctl: none of the usable flow formats (NXM) is among the allowed flow formats (OpenFlow10)
1267 dnl Check that add-flow reports non-normalized flows (feature #5029).
1268 AT_SETUP([ovs-ofctl add-flow reports non-normalized flows])
1270 AT_CHECK([ovs-ofctl TESTABLE_LOG add-flow br0 nw_src=1.2.3.4,actions=5],
1272 ofp_util|INFO|normalization changed ofp_match, details:
1273 ofp_util|INFO| pre: nw_src=1.2.3.4
1274 ofp_util|INFO|post: @&t@