3 AT_SETUP([ovs-ofctl parse-flows choice of protocol])
4 # This doesn't cover some potential vlan_tci test cases.
7 'tun_id=0/0x1 NXM,OXM' \
8 'tun_src=1.2.3.4 NXM,OXM' \
9 'tun_src=1.2.3.4/0.0.0.1 NXM,OXM' \
10 'tun_dst=1.2.3.4 NXM,OXM' \
11 'tun_dst=1.2.3.4/0.0.0.1 NXM,OXM' \
12 'tun_flags=1 NXM,OXM' \
13 'tun_flags=+oam NXM,OXM' \
16 'tun_gbp_id=0 NXM,OXM' \
17 'tun_gbp_id=0/0x1 NXM,OXM' \
18 'tun_gbp_flags=0 NXM,OXM' \
19 'tun_gbp_flags=0/0x1 NXM,OXM' \
20 'tun_metadata0=0 NXM,OXM' \
21 'tun_metadata0=0/0x1 NXM,OXM' \
22 'tun_metadata0 NXM,OXM' \
23 'metadata=0 NXM,OXM,OpenFlow11' \
24 'metadata=1/1 NXM,OXM,OpenFlow11' \
26 'skb_priority=0 none' \
27 'pkt_mark=1 NXM,OXM' \
28 'pkt_mark=1/1 NXM,OXM' \
53 'dl_src=00:11:22:33:44:55 any' \
54 'dl_src=00:11:22:33:44:55/00:ff:ff:ff:ff:ff NXM,OXM,OpenFlow11' \
55 'dl_dst=00:11:22:33:44:55 any' \
56 'dl_dst=00:11:22:33:44:55/00:ff:ff:ff:ff:ff NXM,OXM,OpenFlow11' \
57 'dl_type=0x1234 any' \
58 'dl_type=0x0800 any' \
59 'dl_type=0x0806 any' \
60 'dl_type=0x86dd any' \
62 'vlan_tci=0x1009 any' \
63 'vlan_tci=0x1009/0x1 NXM,OXM' \
66 'vlan_vid=11/0x1 NXM,OXM' \
69 'mpls,mpls_label=5 NXM,OXM,OpenFlow11' \
70 'mpls,mpls_tc=1 NXM,OXM,OpenFlow11' \
71 'mpls,mpls_bos=0 NXM,OXM' \
72 'ip,ip_src=1.2.3.4 any' \
73 'ip,ip_src=192.168.0.0/24 any' \
74 'ip,ip_src=192.0.168.0/255.0.255.0 NXM,OXM,OpenFlow11' \
75 'ip,ip_dst=1.2.3.4 any' \
76 'ip,ip_dst=192.168.0.0/24 any' \
77 'ip,ip_dst=192.0.168.0/255.0.255.0 NXM,OXM,OpenFlow11' \
78 'ipv6,ipv6_src=::1 NXM,OXM' \
79 'ipv6,ipv6_src=0:0:0:0:0:0:0:1/::1 NXM,OXM' \
80 'ipv6,ipv6_dst=::1 NXM,OXM' \
81 'ipv6,ipv6_dst=0:0:0:0:0:0:0:1/::1 NXM,OXM' \
82 'ipv6,ipv6_label=5 NXM,OXM' \
83 'ipv6,ipv6_label=5/1 NXM,OXM' \
85 'ipv6,nw_proto=1 NXM,OXM' \
86 'ip,nw_tos=0xf0 any' \
87 'ipv6,nw_tos=0xf0 NXM,OXM' \
88 'ip,ip_dscp=0x3c any' \
89 'ipv6,ip_dscp=0x3c NXM,OXM' \
90 'ip,nw_ecn=1 NXM,OXM' \
91 'ipv6,nw_ecn=1 NXM,OXM' \
92 'ip,nw_ttl=5 NXM,OXM' \
93 'ipv6,nw_ttl=5 NXM,OXM' \
94 'ip,ip_frag=no NXM,OXM' \
95 'ipv6,ip_frag=no NXM,OXM' \
97 'arp,arp_spa=1.2.3.4 any' \
98 'arp,arp_spa=1.2.3.4/0.0.0.1 NXM,OXM,OpenFlow11' \
99 'arp,arp_tpa=1.2.3.4 any' \
100 'arp,arp_tpa=1.2.3.4/0.0.0.1 NXM,OXM,OpenFlow11' \
101 'arp,arp_sha=00:11:22:33:44:55 NXM,OXM' \
102 'arp,arp_sha=00:11:22:33:44:55/00:ff:ff:ff:ff:ff NXM,OXM' \
103 'arp,arp_tha=00:11:22:33:44:55 NXM,OXM' \
104 'arp,arp_tha=00:11:22:33:44:55/00:ff:ff:ff:ff:ff NXM,OXM' \
105 'tcp,tcp_src=80 any' \
106 'tcp,tcp_src=0x1000/0x1000 NXM,OXM' \
107 'tcp6,tcp_src=80 NXM,OXM' \
108 'tcp6,tcp_src=0x1000/0x1000 NXM,OXM' \
109 'tcp,tcp_dst=80 any' \
110 'tcp,tcp_dst=0x1000/0x1000 NXM,OXM' \
111 'tcp6,tcp_dst=80 NXM,OXM' \
112 'tcp6,tcp_dst=0x1000/0x1000 NXM,OXM' \
113 'udp,udp_src=80 any' \
114 'udp,udp_src=0x1000/0x1000 NXM,OXM' \
115 'udp6,udp_src=80 NXM,OXM' \
116 'udp6,udp_src=0x1000/0x1000 NXM,OXM' \
117 'udp,udp_dst=80 any' \
118 'udp,udp_dst=0x1000/0x1000 NXM,OXM' \
119 'udp6,udp_dst=80 NXM,OXM' \
120 'udp6,udp_dst=0x1000/0x1000 NXM,OXM' \
121 'icmp,icmp_type=1 any' \
122 'icmp,icmp_code=2 any' \
123 'icmp6,icmpv6_type=1 NXM,OXM' \
124 'icmp6,icmpv6_code=2 NXM,OXM' \
125 'ct_state=+trk NXM,OXM' \
130 echo "### test case: '$1' should have usable protocols '$2'"
131 if test "$2" = none; then
132 AT_CHECK([ovs-ofctl parse-flow "$1,actions=drop"], [1],
135 [ovs-ofctl: actions are invalid with specified match (OFPBAC_MATCH_INCONSISTENT)
138 AT_CHECK_UNQUOTED([ovs-ofctl parse-flow "$1,actions=drop" | sed 1q], [0],
139 [usable protocols: $2
145 AT_SETUP([ovs-ofctl parse-flows (OpenFlow 1.0)])
146 AT_DATA([flows.txt], [[
148 tcp,tp_src=123,actions=flood
149 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
150 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
151 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
152 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
153 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
154 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
155 ip,actions=set_field:10.4.3.77->ip_src
158 in_port=0 actions=resubmit:0
159 actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
162 AT_CHECK([ovs-ofctl parse-flows flows.txt
164 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
165 [[usable protocols: any
166 chosen protocol: OpenFlow10-table_id
167 OFPT_FLOW_MOD: ADD tcp,tp_src=123 actions=FLOOD
168 OFPT_FLOW_MOD: ADD in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
169 OFPT_FLOW_MOD: ADD udp,dl_vlan_pcp=7 idle:5 actions=strip_vlan,output:0
170 OFPT_FLOW_MOD: ADD tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
171 OFPT_FLOW_MOD: ADD udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
172 OFPT_FLOW_MOD: ADD priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
173 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
174 OFPT_FLOW_MOD: ADD ip actions=mod_nw_src:10.4.3.77
175 OFPT_FLOW_MOD: ADD sctp actions=drop
176 OFPT_FLOW_MOD: ADD sctp actions=drop
177 OFPT_FLOW_MOD: ADD in_port=0 actions=resubmit:0
178 OFPT_FLOW_MOD: ADD actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
182 AT_SETUP([ovs-ofctl parse-flows (OpenFlow 1.1)])
183 AT_DATA([flows.txt], [[
185 tcp,tp_src=123,actions=flood
186 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
187 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
188 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
189 udp,nw_src=192.168.0.3,tp_dst=53 actions=mod_nw_ecn:2,output:1
190 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
191 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
192 ip,actions=mod_nw_ttl:1,set_field:10.4.3.77->ip_src
195 in_port=0 actions=resubmit:0
196 actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
199 AT_CHECK([ovs-ofctl --protocols OpenFlow11 parse-flows flows.txt
201 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
202 [[usable protocols: any
203 chosen protocol: OpenFlow11
204 OFPT_FLOW_MOD (OF1.1): ADD tcp,tp_src=123 actions=FLOOD
205 OFPT_FLOW_MOD (OF1.1): ADD in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
206 OFPT_FLOW_MOD (OF1.1): ADD udp,dl_vlan_pcp=7 idle:5 actions=pop_vlan,output:0
207 OFPT_FLOW_MOD (OF1.1): ADD tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
208 OFPT_FLOW_MOD (OF1.1): ADD udp,nw_src=192.168.0.3,tp_dst=53 actions=mod_nw_ecn:2,output:1
209 OFPT_FLOW_MOD (OF1.1): ADD priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
210 OFPT_FLOW_MOD (OF1.1): 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
211 OFPT_FLOW_MOD (OF1.1): ADD ip actions=mod_nw_ttl:1,mod_nw_src:10.4.3.77
212 OFPT_FLOW_MOD (OF1.1): ADD sctp actions=drop
213 OFPT_FLOW_MOD (OF1.1): ADD sctp actions=drop
214 OFPT_FLOW_MOD (OF1.1): ADD in_port=0 actions=resubmit:0
215 OFPT_FLOW_MOD (OF1.1): ADD actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
219 AT_SETUP([ovs-ofctl parse-flows (OpenFlow 1.2)])
220 AT_DATA([flows.txt], [[
222 tcp,tp_src=123,actions=flood
223 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=mod_vlan_vid:7,mod_vlan_pcp:2
224 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
225 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
226 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
227 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
228 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
229 ipv6,actions=set_field:fe80:0123:4567:890a:a6ba:dbff:fefe:59fa->ipv6_src
230 sctp actions=set_field:3334->sctp_src
231 sctp actions=set_field:4445->sctp_dst
232 tcp actions=mod_tp_dst:1234
233 udp actions=mod_tp_src:1111
234 ip actions=mod_nw_src:10.1.1.2,mod_nw_dst:192.168.10.1,mod_nw_ttl:1,mod_nw_tos:16,mod_nw_ecn:2
235 in_port=0 actions=mod_dl_src:11:22:33:44:55:66,mod_dl_dst:10:20:30:40:50:60
236 in_port=0 actions=resubmit:0
237 actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
240 AT_CHECK([ovs-ofctl --protocols OpenFlow12 parse-flows flows.txt
242 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
243 [[usable protocols: NXM,OXM
244 chosen protocol: OXM-OpenFlow12
245 OFPT_FLOW_MOD (OF1.2): ADD tcp,tp_src=123 actions=FLOOD
246 OFPT_FLOW_MOD (OF1.2): ADD in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=set_field:4103->vlan_vid,set_field:2->vlan_pcp
247 OFPT_FLOW_MOD (OF1.2): ADD udp,dl_vlan_pcp=7 idle:5 actions=pop_vlan,output:0
248 OFPT_FLOW_MOD (OF1.2): ADD tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
249 OFPT_FLOW_MOD (OF1.2): ADD udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
250 OFPT_FLOW_MOD (OF1.2): ADD priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
251 OFPT_FLOW_MOD (OF1.2): 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
252 OFPT_FLOW_MOD (OF1.2): ADD ipv6 actions=set_field:fe80:123:4567:890a:a6ba:dbff:fefe:59fa->ipv6_src
253 OFPT_FLOW_MOD (OF1.2): ADD sctp actions=set_field:3334->sctp_src
254 OFPT_FLOW_MOD (OF1.2): ADD sctp actions=set_field:4445->sctp_dst
255 OFPT_FLOW_MOD (OF1.2): ADD tcp actions=set_field:1234->tcp_dst
256 OFPT_FLOW_MOD (OF1.2): ADD udp actions=set_field:1111->udp_src
257 OFPT_FLOW_MOD (OF1.2): ADD ip actions=set_field:10.1.1.2->ip_src,set_field:192.168.10.1->ip_dst,mod_nw_ttl:1,set_field:4->ip_dscp,set_field:2->nw_ecn
258 OFPT_FLOW_MOD (OF1.2): ADD in_port=0 actions=set_field:11:22:33:44:55:66->eth_src,set_field:10:20:30:40:50:60->eth_dst
259 OFPT_FLOW_MOD (OF1.2): ADD in_port=0 actions=resubmit:0
260 OFPT_FLOW_MOD (OF1.2): ADD actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
264 AT_SETUP([ovs-ofctl parse-flow with invalid mask])
269 'eth_type 0x1234/0x1' \
271 'dl_vlan_pcp 6/0x1' \
273 'mpls mpls_label 5/0x1' \
274 'mpls mpls_tc 1/0x1' \
275 'mpls mpls_bos 1/0x1' \
277 'ipv6 nw_proto 1/1' \
278 'ip nw_tos 0xf0/0xf0' \
279 'ipv6 nw_tos 0xf0/0xf0' \
280 'ip ip_dscp 0x3c/0xf0' \
281 'ipv6 ip_dscp 0x3c/0xf0' \
287 'icmp icmp_type 1/1' \
288 'icmp icmp_code 2/1' \
289 'icmp6 icmpv6_code 2/1'
293 prereq=$1, field=$2 value=$3
295 prereq= field=$1 value=$2
297 AT_CHECK_UNQUOTED([ovs-ofctl parse-flow "$prereq$field=$value,actions=drop"], [1], [],
298 [ovs-ofctl: $value: invalid mask for field $field
303 AT_SETUP([ovs-ofctl action inconsistency (OpenFlow 1.1)])
304 AT_CHECK([ovs-ofctl --protocols OpenFlow11 add-flow br0 'ip actions=mod_tp_dst:1234'
305 ], [1], [stdout], [ovs-ofctl: none of the usable flow formats (OpenFlow10,NXM) is among the allowed flow formats (OpenFlow11)
309 AT_SETUP([ovs-ofctl parse-flows (skb_priority)])
310 AT_DATA([flows.txt], [[
311 skb_priority=0x12341234,tcp,tp_src=123,actions=flood
314 AT_CHECK([ovs-ofctl parse-flows flows.txt
321 AT_SETUP([ovs-ofctl parse-flows (NXM)])
322 AT_DATA([flows.txt], [[
324 tcp,tp_src=123,actions=flood
325 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
326 pkt_mark=0xbb,actions=set_field:0xaa->pkt_mark
327 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
328 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
329 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
330 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
331 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
332 tcp,tp_src=0x1230/0xfff0,tun_id=0x1234,cookie=0x5678,actions=flood
333 actions=set_tunnel:0x1234,set_tunnel64:0x9876,set_tunnel:0x123456789
334 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])
336 tun_id=0x1234000056780000/0xffff0000ffff0000,actions=drop
337 metadata=0x1234ffff5678ffff/0xffff0000ffff0000,actions=drop
338 actions=bundle(eth_src,50,active_backup,ofport,slaves:1)
339 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:2,3)
340 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:)
341 actions=output:1,bundle(eth_src,0,hrw,ofport,slaves:1),output:2
342 actions=bundle_load(eth_src,50,active_backup,ofport,NXM_NX_REG0[],slaves:1)
343 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:2,3)
344 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:[2,3])
345 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..30],slaves:)
346 actions=output:1,bundle_load(eth_src,0,hrw,ofport,NXM_NX_REG0[16..31],slaves:1),output:2
347 actions=resubmit:1,resubmit(2),resubmit(,3),resubmit(2,3)
348 send_flow_rem,actions=output:1,output:NXM_NX_REG0[],output:2,output:NXM_NX_REG1[16..31],output:3
349 check_overlap,actions=output:1,exit,output:2
350 tcp,actions=fin_timeout(idle_timeout=5,hard_timeout=15)
351 actions=controller(max_len=123,reason=invalid_ttl,id=555)
352 actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
353 ip,actions=ct(commit,zone=5)
356 AT_CHECK([ovs-ofctl parse-flows flows.txt
358 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
359 [[usable protocols: OXM,NXM+table_id
360 chosen protocol: NXM+table_id
361 NXT_FLOW_MOD: ADD table:255 tcp,tp_src=123 actions=FLOOD
362 NXT_FLOW_MOD: ADD table:255 in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
363 NXT_FLOW_MOD: ADD table:255 pkt_mark=0xbb actions=load:0xaa->NXM_NX_PKT_MARK[]
364 NXT_FLOW_MOD: ADD table:255 udp,dl_vlan_pcp=7 idle:5 actions=strip_vlan,output:0
365 NXT_FLOW_MOD: ADD table:255 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
366 NXT_FLOW_MOD: ADD table:255 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
367 NXT_FLOW_MOD: ADD table:255 priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
368 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
369 NXT_FLOW_MOD: ADD table:255 tcp,tun_id=0x1234,tp_src=0x1230/0xfff0 cookie:0x5678 actions=FLOOD
370 NXT_FLOW_MOD: ADD table:255 actions=set_tunnel:0x1234,set_tunnel64:0x9876,set_tunnel64:0x123456789
371 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])
372 NXT_FLOW_MOD: ADD table:1 actions=drop
373 NXT_FLOW_MOD: ADD table:255 tun_id=0x1234000056780000/0xffff0000ffff0000 actions=drop
374 NXT_FLOW_MOD: ADD table:255 metadata=0x1234000056780000/0xffff0000ffff0000 actions=drop
375 NXT_FLOW_MOD: ADD table:255 actions=bundle(eth_src,50,active_backup,ofport,slaves:1)
376 NXT_FLOW_MOD: ADD table:255 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:2,3)
377 NXT_FLOW_MOD: ADD table:255 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:)
378 NXT_FLOW_MOD: ADD table:255 actions=output:1,bundle(eth_src,0,hrw,ofport,slaves:1),output:2
379 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(eth_src,50,active_backup,ofport,NXM_NX_REG0[],slaves:1)
380 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:2,3)
381 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:2,3)
382 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..30],slaves:)
383 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
384 NXT_FLOW_MOD: ADD table:255 actions=resubmit:1,resubmit:2,resubmit(,3),resubmit(2,3)
385 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
386 NXT_FLOW_MOD: ADD table:255 check_overlap actions=output:1,exit,output:2
387 NXT_FLOW_MOD: ADD table:255 tcp actions=fin_timeout(idle_timeout=5,hard_timeout=15)
388 NXT_FLOW_MOD: ADD table:255 actions=controller(reason=invalid_ttl,max_len=123,id=555)
389 NXT_FLOW_MOD: ADD table:255 actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
390 NXT_FLOW_MOD: ADD table:255 ip actions=ct(commit,zone=5)
394 AT_SETUP([ovs-ofctl -F nxm parse-flows])
395 AT_DATA([flows.txt], [
397 tcp,tp_src=123,actions=flood
398 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
399 arp,dl_src=00:0A:E4:25:6B:B0,arp_sha=00:0A:E4:25:6B:B0 actions=drop
400 ipv6,ipv6_label=0x12345 actions=2
401 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=3
402 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5/64 actions=4
403 ipv6,ipv6_dst=2001:db8:3c4d:1:2:3:4:5/127 actions=5
404 tcp6,ipv6_src=2001:db8:3c4d:1::1,tp_dst=80 actions=drop
405 udp6,ipv6_src=2001:db8:3c4d:1::3,tp_dst=53 actions=drop
406 in_port=3 icmp6,ipv6_src=2001:db8:3c4d:1::1,icmp_type=134 actions=drop
407 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
408 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
409 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
410 icmp6,icmp_type=135,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571 actions=drop
411 icmp6,icmp_type=135,nd_target=FEC0::1234:F045:8FFF:1111:FE4F:0571/112 actions=drop
412 icmp6,icmp_type=135,nd_sll=00:0A:E4:25:6B:B0 actions=drop
413 icmp6,icmp_type=136,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571,nd_tll=00:0A:E4:25:6B:B1 actions=drop
414 icmp6,icmp_type=136,nd_target=FEC0::1234:F045:8FFF:1111:FE00:0000/96,nd_tll=00:0A:E4:25:6B:B1 actions=drop
415 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
416 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
417 tun_id=0x1234,cookie=0x5678,actions=flood
419 tun_id=0x1234000056780000/0xffff0000ffff0000,actions=drop
420 dl_dst=01:00:00:00:00:00/01:00:00:00:00:00,actions=drop
421 dl_dst=00:00:00:00:00:00/01:00:00:00:00:00,actions=drop
422 dl_dst=aa:bb:cc:dd:ee:ff/fe:ff:ff:ff:ff:ff,actions=drop
423 dl_dst=aa:bb:cc:dd:ee:ff/00:00:00:00:00:00,actions=drop
424 actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
425 ip,actions=ct(commit,zone=5)
427 AT_CHECK([ovs-ofctl -F nxm parse-flows flows.txt], [0], [stdout])
428 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0], [dnl
429 usable protocols: NXM,OXM
430 chosen protocol: NXM-table_id
431 NXT_FLOW_MOD: ADD tcp,tp_src=123 actions=FLOOD
432 NXT_FLOW_MOD: ADD in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
433 NXT_FLOW_MOD: ADD arp,dl_src=00:0a:e4:25:6b:b0,arp_sha=00:0a:e4:25:6b:b0 actions=drop
434 NXT_FLOW_MOD: ADD ipv6,ipv6_label=0x12345 actions=output:2
435 NXT_FLOW_MOD: ADD ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=output:3
436 NXT_FLOW_MOD: ADD ipv6,ipv6_src=2001:db8:3c4d:1::/64 actions=output:4
437 NXT_FLOW_MOD: ADD ipv6,ipv6_dst=2001:db8:3c4d:1:2:3:4:4/127 actions=output:5
438 NXT_FLOW_MOD: ADD tcp6,ipv6_src=2001:db8:3c4d:1::1,tp_dst=80 actions=drop
439 NXT_FLOW_MOD: ADD udp6,ipv6_src=2001:db8:3c4d:1::3,tp_dst=53 actions=drop
440 NXT_FLOW_MOD: ADD icmp6,in_port=3,ipv6_src=2001:db8:3c4d:1::1,icmp_type=134 actions=drop
441 NXT_FLOW_MOD: ADD udp,dl_vlan_pcp=7 idle:5 actions=strip_vlan,output:0
442 NXT_FLOW_MOD: ADD tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
443 NXT_FLOW_MOD: ADD udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
444 NXT_FLOW_MOD: ADD icmp6,icmp_type=135,nd_target=fec0:0:1234:f045:8fff:1111:fe4e:571 actions=drop
445 NXT_FLOW_MOD: ADD icmp6,icmp_type=135,nd_target=fec0:0:1234:f045:8fff:1111:fe4f:0/112 actions=drop
446 NXT_FLOW_MOD: ADD icmp6,icmp_type=135,nd_sll=00:0a:e4:25:6b:b0 actions=drop
447 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
448 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
449 NXT_FLOW_MOD: ADD priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
450 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
451 NXT_FLOW_MOD: ADD tun_id=0x1234 cookie:0x5678 actions=FLOOD
452 NXT_FLOW_MOD: ADD actions=drop
453 NXT_FLOW_MOD: ADD tun_id=0x1234000056780000/0xffff0000ffff0000 actions=drop
454 NXT_FLOW_MOD: ADD dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=drop
455 NXT_FLOW_MOD: ADD dl_dst=00:00:00:00:00:00/01:00:00:00:00:00 actions=drop
456 NXT_FLOW_MOD: ADD dl_dst=aa:bb:cc:dd:ee:ff/fe:ff:ff:ff:ff:ff actions=drop
457 NXT_FLOW_MOD: ADD actions=drop
458 NXT_FLOW_MOD: ADD actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
459 NXT_FLOW_MOD: ADD ip actions=ct(commit,zone=5)
463 AT_SETUP([ovs-ofctl -F nxm -mmm parse-flows])
464 AT_DATA([flows.txt], [[
466 tcp,tp_src=123,actions=flood
467 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
468 arp,dl_src=00:0A:E4:25:6B:B0,arp_sha=00:0A:E4:25:6B:B0 actions=drop
469 ipv6,ipv6_label=0x12345 actions=2
470 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=3
471 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5/64 actions=4
472 ipv6,ipv6_dst=2001:db8:3c4d:1:2:3:4:5/127 actions=5
473 tcp6,ipv6_src=2001:db8:3c4d:1::1,tp_dst=80 actions=drop
474 udp6,ipv6_src=2001:db8:3c4d:1::3,tp_dst=53 actions=drop
475 sctp6,ipv6_src=2001:db8:3c4d:1::5,tp_dst=309 actions=drop
476 in_port=3 icmp6,ipv6_src=2001:db8:3c4d:1::1,icmp_type=134 actions=drop
477 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
478 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
479 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
480 sctp,nw_src=192.168.0.3,tp_dst=309 actions=pop_queue,output:1
481 icmp6,icmp_type=135,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571 actions=drop
482 icmp6,icmp_type=135,nd_sll=00:0A:E4:25:6B:B0 actions=drop
483 icmp6,icmp_type=136,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571,nd_tll=00:0A:E4:25:6B:B1 actions=drop
484 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
485 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
486 tun_id=0x1234,cookie=0x5678,actions=flood
488 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[]
489 actions=move:OXM_OF_ETH_DST[]->OXM_OF_ETH_SRC[]
490 actions=push:NXM_NX_REG0[0..31],pop:NXM_NX_REG0[]
491 vlan_tci=0x1123/0x1fff,actions=drop
492 actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
493 ip,actions=ct(commit,zone=5)
495 AT_CHECK([ovs-ofctl -F nxm -mmm parse-flows flows.txt], [0], [stdout], [stderr])
496 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
497 [[usable protocols: NXM,OXM
498 chosen protocol: NXM-table_id
499 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC(007b) actions=FLOOD
500 NXT_FLOW_MOD: ADD NXM_OF_IN_PORT(fffe), NXM_OF_ETH_SRC(000ae4256bb0), NXM_OF_VLAN_TCI_W(1009/1fff) actions=drop
501 NXT_FLOW_MOD: ADD NXM_OF_ETH_SRC(000ae4256bb0), NXM_OF_ETH_TYPE(0806), NXM_NX_ARP_SHA(000ae4256bb0) actions=drop
502 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_LABEL(00012345) actions=output:2
503 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005) actions=output:3
504 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000) actions=output:4
505 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST_W(20010db83c4d00010002000300040004/fffffffffffffffffffffffffffffffe) actions=output:5
506 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
507 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
508 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010000000000000005), NXM_OF_IP_PROTO(84), OXM_OF_SCTP_DST(0135) actions=drop
509 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
510 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
511 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
512 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
513 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC(c0a80003), NXM_OF_IP_PROTO(84), OXM_OF_SCTP_DST(0135) actions=pop_queue,output:1
514 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
515 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
516 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
517 NXT_FLOW_MOD: ADD <any> cookie:0x123456789abcdef hard:10 pri:60000 actions=CONTROLLER:65535
518 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
519 NXT_FLOW_MOD: ADD NXM_NX_TUN_ID(0000000000001234) cookie:0x5678 actions=FLOOD
520 NXT_FLOW_MOD: ADD <any> actions=drop
521 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[]
522 NXT_FLOW_MOD: ADD <any> actions=move:NXM_OF_ETH_DST[]->NXM_OF_ETH_SRC[]
523 NXT_FLOW_MOD: ADD <any> actions=push:NXM_NX_REG0[],pop:NXM_NX_REG0[]
524 NXT_FLOW_MOD: ADD NXM_OF_VLAN_TCI_W(1123/1fff) actions=drop
525 NXT_FLOW_MOD: ADD <any> actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
526 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800) actions=ct(commit,zone=5)
530 AT_SETUP([ovs-ofctl parse-nx-match])
531 AT_KEYWORDS([nx-match])
532 AT_DATA([nx-match.txt], [dnl
540 NXM_OF_ETH_DST(0002e30f80a4)
541 NXM_OF_ETH_DST_W(010000000000/010000000000)
542 NXM_OF_ETH_DST_W(000000000000/010000000000)
543 NXM_OF_ETH_DST_W(ffffffffffff/010000000000)
544 NXM_OF_ETH_DST_W(0002e30f80a4/ffffffffffff)
545 NXM_OF_ETH_DST_W(60175619848f/000000000000)
546 NXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
547 NXM_OF_ETH_DST_W(60175619848f/5a5a5a5a5a5a)
550 NXM_OF_ETH_SRC(020898456ddb)
551 NXM_OF_ETH_SRC_W(012345abcdef/ffffff555555)
552 NXM_OF_ETH_SRC_W(020898456ddb/ffffffffffff)
553 NXM_OF_ETH_SRC_W(020898456ddb/000000000000)
556 NXM_OF_ETH_TYPE(0800)
557 NXM_OF_ETH_TYPE(0800) NXM_OF_IN_PORT(0012)
560 NXM_OF_VLAN_TCI(f009)
561 NXM_OF_VLAN_TCI(f009) NXM_OF_VLAN_TCI(f009)
562 NXM_OF_VLAN_TCI(0000) # Packets without 802.1Q header.
563 NXM_OF_VLAN_TCI(3123) # Packets with VID=123, PCP=1.
564 NXM_OF_VLAN_TCI(0123) # Does not make sense (but supported anyway)
565 NXM_OF_VLAN_TCI_W(1123/1fff) # Packets with VID=123, any PCP.
566 NXM_OF_VLAN_TCI_W(1123/ffff) # Packets with VID=123, PCP=0
567 NXM_OF_VLAN_TCI_W(1123/0000) # Packets with or without 802.1Q header
568 NXM_OF_VLAN_TCI_W(f000/f000) # Packets with any VID, PCP=7.
569 NXM_OF_VLAN_TCI_W(0000/e000) # No 802.1Q or with VID=0
572 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_TOS(f0)
573 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_TOS(41)
577 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_ECN(03)
578 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_ECN(06)
582 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(01)
583 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(05)
587 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_TTL(80)
588 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_TTL(ff)
592 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC(ac100014)
593 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC_W(C0a80000/FFFF0000)
594 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC_W(C0a80000/5a5a5a5a)
595 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC_W(C0a80000/ffffffff)
596 NXM_OF_ETH_TYPE(0806) NXM_OF_IP_SRC(ac100014)
597 NXM_OF_IP_SRC_W(C0D80000/FFFF0000)
600 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST(ac100014)
601 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST_W(C0a88012/FFFF0000)
602 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST_W(C0a80000/5a5a5a5a)
603 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST_W(C0a80000/ffffffff)
604 NXM_OF_IP_DST(ac100014)
605 NXM_OF_ETH_TYPE(0806) NXM_OF_IP_DST_W(C0D80000/FFFF0000)
608 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_SRC(4231)
609 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_SRC_W(5050/F0F0)
610 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_SRC_W(5050/ffff)
611 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(07) NXM_OF_TCP_SRC(4231)
613 # TCP destination port
614 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_DST(4231)
615 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_DST_W(FDE0/FFF0)
616 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_DST_W(FDE0/ffff)
617 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(07) NXM_OF_TCP_DST(4231)
620 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_NX_TCP_FLAGS(0131)
621 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_NX_TCP_FLAGS_W(00F0/0FF0)
622 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_NX_TCP_FLAGS_W(01E2/ffff)
623 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(07) NXM_NX_TCP_FLAGS(0fff)
626 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_SRC(8732)
627 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_SRC_W(0132/01FF)
628 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_SRC_W(0132/ffff)
629 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_UDP_SRC(7823)
631 # UDP destination port
632 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_DST(1782)
633 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_DST_W(5005/F00F)
634 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_DST_W(5005/FFFF)
635 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(02) NXM_OF_UDP_DST(1293)
638 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(01) NXM_OF_ICMP_TYPE(12)
639 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(00) NXM_OF_ICMP_TYPE(10)
642 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(01) NXM_OF_ICMP_CODE(12)
643 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(00) NXM_OF_ICMP_CODE(10)
644 NXM_OF_ETH_TYPE(0800) NXM_OF_ICMP_CODE(10)
648 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_OP(0001)
649 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_OP(1111)
650 NXM_OF_ETH_TYPE(0000) NXM_OF_ARP_OP(0001)
652 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_OP(0001) NXM_OF_ARP_OP(0001)
654 # ARP source protocol address
655 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA(ac100014)
656 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA_W(C0a81234/FFFFFF00)
657 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA_W(C0a81234/aaaaaa00)
658 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA_W(C0a81234/ffffffff)
659 NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_SPA(ac100014)
660 NXM_OF_ARP_SPA_W(C0D80000/FFFF0000)
662 # ARP destination protocol address
663 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA(ac100014)
664 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA_W(C0a812fe/FFFFFF00)
665 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA_W(C0a81234/77777777)
666 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA_W(C0a81234/ffffffff)
667 NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_TPA(ac100014)
668 NXM_OF_ARP_TPA_W(C0D80000/FFFF0000)
670 # ARP source hardware address
671 NXM_OF_ETH_TYPE(0806) NXM_NX_ARP_SHA(0002e30f80a4)
672 NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_SHA(0002e30f80a4)
673 NXM_NX_ARP_SHA(0002e30f80a4)
675 # ARP destination hardware address
676 NXM_OF_ETH_TYPE(0806) NXM_NX_ARP_THA(0002e30f80a4)
677 NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_THA(0002e30f80a4)
678 NXM_NX_ARP_THA(0002e30f80a4)
681 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_OP(0003)
682 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_OP(1111)
683 NXM_OF_ETH_TYPE(0000) NXM_OF_ARP_OP(0003)
685 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_OP(0003) NXM_OF_ARP_OP(0003)
687 # RARP source protocol address
688 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA(ac100014)
689 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA_W(C0a81200/FFFFFF00)
690 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA_W(C0a81234/aaaaaa00)
691 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA_W(C0a81234/ffffffff)
692 NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_SPA(ac100014)
693 NXM_OF_ARP_SPA_W(C0D80000/FFFF0000)
695 # RARP destination protocol address
696 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA(ac100014)
697 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA_W(C0a81200/FFFFFF00)
698 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA_W(C0a81234/77777777)
699 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA_W(C0a81234/ffffffff)
700 NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_TPA(ac100014)
701 NXM_OF_ARP_TPA_W(C0D80000/FFFF0000)
703 # RARP source hardware address
704 NXM_OF_ETH_TYPE(8035) NXM_NX_ARP_SHA(0002e30f80a4)
705 NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_SHA(0002e30f80a4)
706 NXM_NX_ARP_SHA(0002e30f80a4)
708 # RARP destination hardware address
709 NXM_OF_ETH_TYPE(8035) NXM_NX_ARP_THA(0002e30f80a4)
710 NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_THA(0002e30f80a4)
711 NXM_NX_ARP_THA(0002e30f80a4)
714 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005)
715 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005)
716 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
717 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/5a5a5a5a5a5a5a5a0000000000000000)
718 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
719 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/00000000000000000000000000000000)
720 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffffffff000000000000)
723 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST(20010db83c4d00010002000300040005)
724 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_DST(20010db83c4d00010002000300040005)
725 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/77777777777777777777777777777777)
726 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
727 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST_W(00000000000000000000000000000000/00000000000000000000000000000000)
728 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
731 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_LABEL(1000000f)
732 NXM_NX_IPV6_LABEL(0000000f)
733 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_LABEL(0000000f)
736 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
737 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(88) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
738 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET_W(20010db83c4d00010002000300040005/0123456789abcdeffedcba9876543210)
739 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET_W(20010db83c4d00010002000300040005/ffffffffffffffffffffffffffffffff)
740 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET_W(00000000000000000000000000000000/00000000000000000000000000000000)
741 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(88) NXM_NX_ND_TARGET_W(20010db83c4d00010002000300040005/fedcba98765432100123456789abcdef)
743 # ND source hardware address
744 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)
745 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)
746 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)
747 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)
749 # ND destination hardware address
750 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)
751 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)
752 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)
753 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)
756 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(00)
757 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(01)
758 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(02)
759 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(03)
760 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(00/03)
761 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(00/fd)
762 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(00/02)
763 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(01/01)
764 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(02/02)
765 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(03/03)
766 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(03/ff)
767 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(03/00)
768 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(f3)
771 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(00)
772 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(01)
773 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(02)
774 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(03)
775 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(00/03)
776 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(00/01)
777 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(00/02)
778 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(01/01)
779 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(02/02)
780 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(03/03)
781 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(03/00)
782 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(03/ff)
783 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(f3)
786 NXM_NX_COOKIE(00000000abcdef01)
787 NXM_NX_COOKIE_W(84200000abcdef01/84200000FFFFFFFF)
788 NXM_NX_COOKIE_W(84200000abcdef01/ffffffffffffffff)
789 NXM_NX_COOKIE_W(0000000000000000/0000000000000000)
792 NXM_NX_TUN_ID(00000000abcdef01)
793 NXM_NX_TUN_ID_W(84200000abcdef01/84200000FFFFFFFF)
794 NXM_NX_TUN_ID_W(84200000abcdef01/FFFFFFFFFFFFFFFF)
795 NXM_NX_TUN_ID_W(0000000000000000/0000000000000000)
798 NXM_NX_REG0(acebdf56)
799 NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
800 NXM_NX_REG0_W(a0e0d050/ffffffff)
801 NXM_NX_REG0_W(00000000/00000000)
803 # Connection tracking fields,
804 NXM_OF_ETH_TYPE(0800) NXM_NX_CT_STATE(00000080)
805 NXM_OF_ETH_TYPE(0800) NXM_NX_CT_STATE(00001080)
806 NXM_OF_ETH_TYPE(0800) NXM_NX_CT_STATE_W(00000080/00000080)
807 NXM_OF_ETH_TYPE(0800) NXM_NX_CT_STATE_W(00000080/000000F0)
808 NXM_OF_ETH_TYPE(0800) NXM_NX_CT_ZONE(5a5a)
810 # dp_hash (testing experimenter OXM).
811 NXM_NX_DP_HASH(01234567)
812 NXOXM_ET_DP_HASH(01234567)
814 # Invalid field number.
817 # Invalid field numbers (experimenter OXM).
818 ffff020800002320(11112222)
819 ffff030800002320(1111/3333)
821 # Unimplemented registers.
823 # This test assumes that at least two registers, but fewer than 16,
824 # registers are implemented.
826 00010108(12345678/12345678)
828 00011f08(12345678/12345678)
830 AT_CHECK([ovs-ofctl -vPATTERN:'console:%c|%p|%m' --strict parse-nx-match < nx-match.txt], [0], [dnl
838 NXM_OF_ETH_DST(0002e30f80a4)
839 NXM_OF_ETH_DST_W(010000000000/010000000000)
840 NXM_OF_ETH_DST_W(000000000000/010000000000)
841 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
842 NXM_OF_ETH_DST(0002e30f80a4)
843 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
844 NXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
845 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
848 NXM_OF_ETH_SRC(020898456ddb)
849 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
850 NXM_OF_ETH_SRC(020898456ddb)
851 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
854 NXM_OF_ETH_TYPE(0800)
855 NXM_OF_IN_PORT(0012), NXM_OF_ETH_TYPE(0800)
858 NXM_OF_VLAN_TCI(f009)
859 nx_pull_match() returned error OFPBMC_DUP_FIELD
860 NXM_OF_VLAN_TCI(0000)
861 NXM_OF_VLAN_TCI(3123)
862 NXM_OF_VLAN_TCI(0123)
863 NXM_OF_VLAN_TCI_W(1123/1fff)
864 NXM_OF_VLAN_TCI(1123)
865 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
866 NXM_OF_VLAN_TCI_W(f000/f000)
867 NXM_OF_VLAN_TCI_W(0000/e000)
870 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_TOS(f0)
871 nx_pull_match() returned error OFPBMC_BAD_VALUE
872 nx_pull_match() returned error OFPBMC_BAD_PREREQ
875 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_ECN(03)
876 nx_pull_match() returned error OFPBMC_BAD_VALUE
877 nx_pull_match() returned error OFPBMC_BAD_PREREQ
880 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(01)
881 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(05)
882 nx_pull_match() returned error OFPBMC_BAD_PREREQ
885 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_TTL(80)
886 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_TTL(ff)
887 nx_pull_match() returned error OFPBMC_BAD_PREREQ
890 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC(ac100014)
891 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC_W(c0a80000/ffff0000)
892 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
893 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC(c0a80000)
894 nx_pull_match() returned error OFPBMC_BAD_PREREQ
895 nx_pull_match() returned error OFPBMC_BAD_PREREQ
898 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_DST(ac100014)
899 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
900 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
901 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_DST(c0a80000)
902 nx_pull_match() returned error OFPBMC_BAD_PREREQ
903 nx_pull_match() returned error OFPBMC_BAD_PREREQ
906 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC(4231)
907 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC_W(5050/f0f0)
908 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC(5050)
909 nx_pull_match() returned error OFPBMC_BAD_PREREQ
911 # TCP destination port
912 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST(4231)
913 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST_W(fde0/fff0)
914 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST(fde0)
915 nx_pull_match() returned error OFPBMC_BAD_PREREQ
918 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_NX_TCP_FLAGS(0131)
919 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_NX_TCP_FLAGS_W(00f0/0ff0)
920 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_NX_TCP_FLAGS(01e2)
921 nx_pull_match() returned error OFPBMC_BAD_PREREQ
924 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_SRC(8732)
925 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_SRC_W(0132/01ff)
926 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_SRC(0132)
927 nx_pull_match() returned error OFPBMC_BAD_PREREQ
929 # UDP destination port
930 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST(1782)
931 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST_W(5005/f00f)
932 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST(5005)
933 nx_pull_match() returned error OFPBMC_BAD_PREREQ
936 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(01), NXM_OF_ICMP_TYPE(12)
937 nx_pull_match() returned error OFPBMC_BAD_PREREQ
940 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(01), NXM_OF_ICMP_CODE(12)
941 nx_pull_match() returned error OFPBMC_BAD_PREREQ
942 nx_pull_match() returned error OFPBMC_BAD_PREREQ
943 nx_pull_match() returned error OFPBMC_BAD_PREREQ
946 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_OP(0001)
947 nx_pull_match() returned error OFPBMC_BAD_VALUE
948 nx_pull_match() returned error OFPBMC_BAD_PREREQ
949 nx_pull_match() returned error OFPBMC_BAD_PREREQ
950 nx_pull_match() returned error OFPBMC_DUP_FIELD
952 # ARP source protocol address
953 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_SPA(ac100014)
954 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
955 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
956 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_SPA(c0a81234)
957 nx_pull_match() returned error OFPBMC_BAD_PREREQ
958 nx_pull_match() returned error OFPBMC_BAD_PREREQ
960 # ARP destination protocol address
961 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_TPA(ac100014)
962 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
963 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
964 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_TPA(c0a81234)
965 nx_pull_match() returned error OFPBMC_BAD_PREREQ
966 nx_pull_match() returned error OFPBMC_BAD_PREREQ
968 # ARP source hardware address
969 NXM_OF_ETH_TYPE(0806), NXM_NX_ARP_SHA(0002e30f80a4)
970 nx_pull_match() returned error OFPBMC_BAD_PREREQ
971 nx_pull_match() returned error OFPBMC_BAD_PREREQ
973 # ARP destination hardware address
974 NXM_OF_ETH_TYPE(0806), NXM_NX_ARP_THA(0002e30f80a4)
975 nx_pull_match() returned error OFPBMC_BAD_PREREQ
976 nx_pull_match() returned error OFPBMC_BAD_PREREQ
979 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_OP(0003)
980 nx_pull_match() returned error OFPBMC_BAD_VALUE
981 nx_pull_match() returned error OFPBMC_BAD_PREREQ
982 nx_pull_match() returned error OFPBMC_BAD_PREREQ
983 nx_pull_match() returned error OFPBMC_DUP_FIELD
985 # RARP source protocol address
986 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_SPA(ac100014)
987 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_SPA_W(c0a81200/ffffff00)
988 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
989 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_SPA(c0a81234)
990 nx_pull_match() returned error OFPBMC_BAD_PREREQ
991 nx_pull_match() returned error OFPBMC_BAD_PREREQ
993 # RARP destination protocol address
994 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_TPA(ac100014)
995 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_TPA_W(c0a81200/ffffff00)
996 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
997 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_TPA(c0a81234)
998 nx_pull_match() returned error OFPBMC_BAD_PREREQ
999 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1001 # RARP source hardware address
1002 NXM_OF_ETH_TYPE(8035), NXM_NX_ARP_SHA(0002e30f80a4)
1003 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1004 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1006 # RARP destination hardware address
1007 NXM_OF_ETH_TYPE(8035), NXM_NX_ARP_THA(0002e30f80a4)
1008 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1009 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1012 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005)
1013 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1014 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1015 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
1016 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010000000000000000)
1017 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
1018 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1021 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST(20010db83c4d00010002000300040005)
1022 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1023 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
1024 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST(20010db83c4d00010000000000000000)
1025 NXM_OF_ETH_TYPE(86dd)
1026 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1029 nx_pull_match() returned error OFPBMC_BAD_VALUE
1030 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1031 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_LABEL(0000000f)
1034 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87), NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
1035 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(88), NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
1036 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
1037 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87), NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
1038 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87)
1039 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
1041 # ND source hardware address
1042 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)
1043 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1044 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1045 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1047 # ND destination hardware address
1048 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)
1049 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1050 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1051 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1054 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(00)
1055 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(01)
1056 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(02)
1057 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(03)
1058 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(00)
1059 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(00/01)
1060 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(00/02)
1061 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(01/01)
1062 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(02/02)
1063 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(03)
1064 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(03)
1065 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
1066 nx_pull_match() returned error OFPBMC_BAD_VALUE
1069 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(00)
1070 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(01)
1071 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(02)
1072 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(03)
1073 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(00)
1074 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(00/01)
1075 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(00/02)
1076 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(01/01)
1077 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(02/02)
1078 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(03)
1079 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
1080 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(03)
1081 nx_pull_match() returned error OFPBMC_BAD_VALUE
1084 NXM_NX_COOKIE(00000000abcdef01)
1085 NXM_NX_COOKIE_W(84200000abcdef01/84200000ffffffff)
1086 NXM_NX_COOKIE(84200000abcdef01)
1090 NXM_NX_TUN_ID(00000000abcdef01)
1091 NXM_NX_TUN_ID_W(84200000abcdef01/84200000ffffffff)
1092 NXM_NX_TUN_ID(84200000abcdef01)
1096 NXM_NX_REG0(acebdf56)
1097 NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
1098 NXM_NX_REG0(a0e0d050)
1101 # Connection tracking fields,
1103 dnl When re-serialising, bits 16-31 are wildcarded, because current OVS userspace
1104 dnl doesn't understand (or store) those bits.
1105 NXM_OF_ETH_TYPE(0800), NXM_NX_CT_STATE_W(00000080/0000ffff)
1106 nx_pull_match() returned error OFPBMC_BAD_VALUE
1107 NXM_OF_ETH_TYPE(0800), NXM_NX_CT_STATE_W(00000080/00000080)
1108 NXM_OF_ETH_TYPE(0800), NXM_NX_CT_STATE_W(00000080/000000f0)
1109 NXM_OF_ETH_TYPE(0800), NXM_NX_CT_ZONE(5a5a)
1111 # dp_hash (testing experimenter OXM).
1112 NXM_NX_DP_HASH(01234567)
1113 NXM_NX_DP_HASH(01234567)
1115 # Invalid field number.
1116 nx_pull_match() returned error OFPBMC_BAD_FIELD
1118 # Invalid field numbers (experimenter OXM).
1119 nx_pull_match() returned error OFPBMC_BAD_FIELD
1120 nx_pull_match() returned error OFPBMC_BAD_FIELD
1122 # Unimplemented registers.
1124 # This test assumes that at least two registers, but fewer than 16,
1125 # registers are implemented.
1126 NXM_NX_REG0(12345678)
1127 NXM_NX_REG0_W(12345678/12345678)
1128 nx_pull_match() returned error OFPBMC_BAD_FIELD
1129 nx_pull_match() returned error OFPBMC_BAD_FIELD
1132 # Check that at least the first warning made it. (It's rate-limited
1133 # so a variable number could show up, especially under valgrind etc.)
1134 AT_CHECK([grep '1-bits in value' stderr | sed 1q], [0], [dnl
1135 nx_match|WARN|Rejecting NXM/OXM entry 0:0:1:1:12 with 1-bits in value for bits wildcarded by the mask.
1138 # Check that there wasn't any other stderr output.
1139 AT_CHECK([grep -v '1-bits in value' stderr], [1])
1142 AT_SETUP([ovs-ofctl parse-ofp10-match])
1143 AT_KEYWORDS([OF1.0])
1144 AT_DATA([test-data], [dnl
1146 003820fe fffe xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx xxxx xx xx xxxx dnl
1147 xxxxxxxx xxxxxxxx xxxx xxxx
1149 # dl_src=00:01:02:03:04:05
1150 003820fb xxxx 000102030405 xxxxxxxxxxxx xxxx xx xx xxxx xx xx xxxx dnl
1151 xxxxxxxx xxxxxxxx xxxx xxxx
1153 # dl_dst=10:20:30:40:50:60
1154 003820f7 xxxx xxxxxxxxxxxx 102030405060 xxxx xx xx xxxx xx xx xxxx dnl
1155 xxxxxxxx xxxxxxxx xxxx xxxx
1158 003820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx 0123 xx xx xxxx xx xx xxxx dnl
1159 xxxxxxxx xxxxxxxx xxxx xxxx
1162 002820ff xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx 05 xx xxxx xx xx xxxx dnl
1163 xxxxxxxx xxxxxxxx xxxx xxxx
1165 # dl_vlan=291,dl_vlan_pcp=4
1166 002820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx 0123 04 xx xxxx xx xx xxxx dnl
1167 xxxxxxxx xxxxxxxx xxxx xxxx
1169 dnl dl_vlan_pcp doesn't make sense when 802.1Q is not present, so
1170 dnl OVS ignores it and drops it on output.
1173 003820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx ffff xx xx xxxx xx xx xxxx dnl
1174 xxxxxxxx xxxxxxxx xxxx xxxx
1176 dnl dl_vlan_pcp doesn't make sense when 802.1Q is not present, so
1177 dnl OVS ignores it and drops it on output.
1180 002820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx ffff 05 xx xxxx xx xx xxxx dnl
1181 xxxxxxxx xxxxxxxx xxxx xxxx
1183 dnl Invalid VID and PCP discards out-of-range bits:
1184 # dl_vlan=256,dl_vlan_pcp=7
1187 002820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx f100 ff xx xxxx xx xx xxxx dnl
1188 xxxxxxxx xxxxxxxx xxxx xxxx
1191 003820ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 1234 xx xx xxxx dnl
1192 xxxxxxxx xxxxxxxx xxxx xxxx
1195 003820cf xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 05 xxxx dnl
1196 xxxxxxxx xxxxxxxx xxxx xxxx
1198 dnl Ignore nw_proto if not IP or ARP:
1199 # dl_type=0x1234,nw_proto=5
1200 # normal: 3: cf -> ef
1201 # normal: 25: 05 -> 00
1202 & ofp_util|INFO|normalization changed ofp_match, details:
1203 & ofp_util|INFO| pre: dl_type=0x1234,nw_proto=5
1204 & ofp_util|INFO|post: dl_type=0x1234
1205 003820cf xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 1234 xx 05 xxxx dnl
1206 xxxxxxxx xxxxxxxx xxxx xxxx
1209 001820ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 fc xx xxxx dnl
1210 xxxxxxxx xxxxxxxx xxxx xxxx
1212 dnl Ignore nw_tos if not IP:
1215 # normal: 1: 18 -> 38
1216 # normal: 24: 04 -> 00
1217 & ofp_util|INFO|normalization changed ofp_match, details:
1218 & ofp_util|INFO| pre: arp,nw_tos=4
1219 & ofp_util|INFO|post: arp
1220 001820ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 05 xx xxxx dnl
1221 xxxxxxxx xxxxxxxx xxxx xxxx
1223 dnl Low 2 bits of invalid TOS are forced to 0:
1226 001820ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 31 xx xxxx dnl
1227 xxxxxxxx xxxxxxxx xxxx xxxx
1230 003820cf xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx 02 xxxx dnl
1231 xxxxxxxx xxxxxxxx xxxx xxxx
1233 # ip,nw_src=192.168.128.85
1234 003800ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx xx xxxx dnl
1235 c0a88055 xxxxxxxx xxxx xxxx
1237 # ip,nw_src=192.168.128.0/24
1239 003808ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx xx xxxx dnl
1240 c0a88055 xxxxxxxx xxxx xxxx
1242 # ip,nw_dst=192.168.128.85
1243 003020ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx xx xxxx dnl
1244 xxxxxxxx c0a88055 xxxx xxxx
1246 # ip,nw_dst=192.168.128.0/24
1248 003220ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx xx xxxx dnl
1249 xxxxxxxx c0a88055 xxxx xxxx
1251 # arp,arp_spa=192.168.128.85
1252 003800ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx xx xxxx dnl
1253 c0a88055 xxxxxxxx xxxx xxxx
1255 # arp,arp_spa=192.168.128.0/24
1257 003808ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx xx xxxx dnl
1258 c0a88055 xxxxxxxx xxxx xxxx
1260 # arp,arp_tpa=192.168.128.85
1261 003020ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx xx xxxx dnl
1262 xxxxxxxx c0a88055 xxxx xxxx
1264 # arp,arp_tpa=192.168.128.0/24
1266 003220ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx xx xxxx dnl
1267 xxxxxxxx c0a88055 xxxx xxxx
1269 dnl Ignore nw_src if not IP or ARP:
1270 # dl_type=0x1234,nw_src=192.168.128.0/24
1272 # normal: 2: 08 -> 20
1273 # normal: 28: c0 -> 00
1274 # normal: 29: a8 -> 00
1275 # normal: 30: 80 -> 00
1276 & ofp_util|INFO|normalization changed ofp_match, details:
1277 & ofp_util|INFO| pre: dl_type=0x1234,nw_src=192.168.128.0/24
1278 & ofp_util|INFO|post: dl_type=0x1234
1279 003808ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 1234 xx xx xxxx dnl
1280 c0a88055 xxxxxxxx xxxx xxxx
1282 dnl Ignore nw_dst if not IP or ARP:
1283 # dl_type=0x1234,nw_dst=192.168.128.0/24
1285 # normal: 1: 32 -> 38
1286 # normal: 32: c0 -> 00
1287 # normal: 33: a8 -> 00
1288 # normal: 34: 80 -> 00
1289 & ofp_util|INFO|normalization changed ofp_match, details:
1290 & ofp_util|INFO| pre: dl_type=0x1234,nw_dst=192.168.128.0/24
1291 & ofp_util|INFO|post: dl_type=0x1234
1292 003220ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 1234 xx xx xxxx dnl
1293 xxxxxxxx c0a88055 xxxx xxxx
1296 0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 06 xxxx dnl
1297 xxxxxxxx xxxxxxxx 01bb xxxx
1300 0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 06 xxxx dnl
1301 xxxxxxxx xxxxxxxx xxxx 01bb
1304 0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 11 xxxx dnl
1305 xxxxxxxx xxxxxxxx 01bb xxxx
1308 0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 11 xxxx dnl
1309 xxxxxxxx xxxxxxxx xxxx 01bb
1312 0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 84 xxxx dnl
1313 xxxxxxxx xxxxxxxx 01bb xxxx
1316 0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 84 xxxx dnl
1317 xxxxxxxx xxxxxxxx xxxx 01bb
1320 0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 01 xxxx dnl
1321 xxxxxxxx xxxxxxxx 0005 xxxx
1324 0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 01 xxxx dnl
1325 xxxxxxxx xxxxxxxx xxxx 0008
1327 dnl Ignore tp_src if not TCP/UDP/SCTP:
1328 # ip,nw_proto=21,tp_src=443
1329 # normal: 3: 8f -> cf
1330 # normal: 36: 01 -> 00
1331 # normal: 37: bb -> 00
1332 & ofp_util|INFO|normalization changed ofp_match, details:
1333 & ofp_util|INFO| pre: ip,nw_proto=21,tp_src=443
1334 & ofp_util|INFO|post: ip,nw_proto=21
1335 0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 15 xxxx dnl
1336 xxxxxxxx xxxxxxxx 01bb xxxx
1338 dnl Ignore tp_dst if not TCP/UDP/SCTP:
1339 # ip,nw_proto=21,tp_dst=443
1340 # normal: 3: 4f -> cf
1341 # normal: 38: 01 -> 00
1342 # normal: 39: bb -> 00
1343 dnl The normalization details are suppressed here due to rate-limiting.
1344 0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 15 xxxx dnl
1345 xxxxxxxx xxxxxxxx xxxx 01bb
1348 sed '/^[[#&]]/d' < test-data > input.txt
1349 sed -n 's/^# //p; /^$/p' < test-data > expout
1350 sed -n 's/^& //p' < test-data > experr
1351 AT_CAPTURE_FILE([input.txt])
1352 AT_CAPTURE_FILE([expout])
1353 AT_CAPTURE_FILE([experr])
1355 [ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-ofp10-match < input.txt],
1356 [0], [expout], [experr])
1359 AT_SETUP([ovs-ofctl parse-ofp11-match])
1360 AT_KEYWORDS([OF1.1])
1361 AT_DATA([test-data], [dnl
1363 0000 0058 fffffffe 000003fe dnl
1364 000000000000ffffffffffff 000000000000ffffffffffff dnl
1365 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1366 00000000 00 000000 0000000000000000ffffffffffffffff
1368 # bad ofp11_match: OFPBMC_BAD_VALUE
1369 & ofp_util|WARN|port 305419896 is outside the supported range 0 through 65279 or 0xffffff00 through 0xffffffff
1370 0000 0058 12345678 000003fe dnl
1371 000000000000ffffffffffff 000000000000ffffffffffff dnl
1372 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1373 00000000 00 000000 0000000000000000ffffffffffffffff
1375 # dl_src=00:01:02:03:04:05
1376 0000 0058 00000000 000003ff dnl
1377 000102030405000000000000 000000000000ffffffffffff dnl
1378 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1379 00000000 00 000000 0000000000000000ffffffffffffffff
1381 # dl_src=55:55:55:55:55:55/55:55:55:55:55:55
1382 0000 0058 00000000 000003ff dnl
1383 555555555555aaaaaaaaaaaa 000000000000ffffffffffff dnl
1384 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1385 00000000 00 000000 0000000000000000ffffffffffffffff
1387 # dl_dst=00:01:02:03:04:05
1388 0000 0058 00000000 000003ff dnl
1389 000000000000ffffffffffff 000102030405000000000000 dnl
1390 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1391 00000000 00 000000 0000000000000000ffffffffffffffff
1393 # dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
1394 0000 0058 00000000 000003ff dnl
1395 000000000000ffffffffffff 010000000000feffffffffff dnl
1396 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1397 00000000 00 000000 0000000000000000ffffffffffffffff
1399 # dl_dst=00:01:02:03:04:05/fe:ff:ff:ff:ff:ff
1400 0000 0058 00000000 000003ff dnl
1401 000000000000ffffffffffff 000102030405010000000000 dnl
1402 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1403 00000000 00 000000 0000000000000000ffffffffffffffff
1405 # dl_dst=55:55:55:55:55:55/55:55:55:55:55:55
1406 0000 0058 00000000 000003ff dnl
1407 000000000000ffffffffffff 555555555555aaaaaaaaaaaa dnl
1408 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1409 00000000 00 000000 0000000000000000ffffffffffffffff
1411 dnl dl_vlan_pcp is ignored if dl_vlan is wildcarded, which causes the
1412 dnl the wildcard bit and the dl_vlan_pcp to be dropped for output:
1416 0000 0058 00000001 000003fa dnl
1417 000000000000ffffffffffff 000000000000ffffffffffff dnl
1418 0000 03 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1419 00000000 00 000000 0000000000000000ffffffffffffffff
1422 0000 0058 00000000 000003fd dnl
1423 000000000000ffffffffffff 000000000000ffffffffffff dnl
1424 0123 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1425 00000000 00 000000 0000000000000000ffffffffffffffff
1429 0000 0058 00000000 000003fd dnl
1430 000000000000ffffffffffff 000000000000ffffffffffff dnl
1431 ffff 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1432 00000000 00 000000 0000000000000000ffffffffffffffff
1434 dnl OFPVID_NONE ignores dl_vlan_pcp even if not wildcarded, which causes
1435 dnl the wildcard bit and the dl_vlan_pcp to be dropped for output:
1439 0000 0058 00000000 000003f9 dnl
1440 000000000000ffffffffffff 000000000000ffffffffffff dnl
1441 ffff 05 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1442 00000000 00 000000 0000000000000000ffffffffffffffff
1444 # vlan_tci=0x1000/0x1000
1445 0000 0058 00000000 000003fd dnl
1446 000000000000ffffffffffff 000000000000ffffffffffff dnl
1447 fffe 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1448 00000000 00 000000 0000000000000000ffffffffffffffff
1450 dnl Try invalid VID:
1451 # bad ofp11_match: OFPBMC_BAD_VALUE
1452 0000 0058 00000000 000003fd dnl
1453 000000000000ffffffffffff 000000000000ffffffffffff dnl
1454 1234 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1455 00000000 00 000000 0000000000000000ffffffffffffffff
1458 0000 0058 00000000 000003f9 dnl
1459 000000000000ffffffffffff 000000000000ffffffffffff dnl
1460 fffe 04 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1461 00000000 00 000000 0000000000000000ffffffffffffffff
1463 # dl_vlan=10,dl_vlan_pcp=6
1464 0000 0058 00000000 000003f9 dnl
1465 000000000000ffffffffffff 000000000000ffffffffffff dnl
1466 000a 06 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1467 00000000 00 000000 0000000000000000ffffffffffffffff
1470 0000 0058 00000000 000003f7 dnl
1471 000000000000ffffffffffff 000000000000ffffffffffff dnl
1472 0000 00 00 1234 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1473 00000000 00 000000 0000000000000000ffffffffffffffff
1476 0000 0058 00000000 000003e7 dnl
1477 000000000000ffffffffffff 000000000000ffffffffffff dnl
1478 0000 00 00 0800 fc 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1479 00000000 00 000000 0000000000000000ffffffffffffffff
1481 dnl Try invalid TOS:
1482 # bad ofp11_match: OFPBMC_BAD_VALUE
1483 0000 0058 00000000 000003e7 dnl
1484 000000000000ffffffffffff 000000000000ffffffffffff dnl
1485 0000 00 00 0800 01 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1486 00000000 00 000000 0000000000000000ffffffffffffffff
1489 0000 0058 00000000 000003d7 dnl
1490 000000000000ffffffffffff 000000000000ffffffffffff dnl
1491 0000 00 00 0800 00 05 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1492 00000000 00 000000 0000000000000000ffffffffffffffff
1495 0000 0058 00000000 000003d7 dnl
1496 000000000000ffffffffffff 000000000000ffffffffffff dnl
1497 0000 00 00 0806 00 02 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1498 00000000 00 000000 0000000000000000ffffffffffffffff
1500 # ip,nw_src=192.168.128.0/24
1501 0000 0058 00000000 000003f7 dnl
1502 000000000000ffffffffffff 000000000000ffffffffffff dnl
1503 0000 00 00 0800 00 00 c0a88000000000ff 00000000ffffffff 0000 0000 dnl
1504 00000000 00 000000 0000000000000000ffffffffffffffff
1506 # ip,nw_src=128.160.128.0/165.165.165.165
1509 0000 0058 00000000 000003f7 dnl
1510 000000000000ffffffffffff 000000000000ffffffffffff dnl
1511 0000 00 00 0800 00 00 c0a880005a5a5a5a 00000000ffffffff 0000 0000 dnl
1512 00000000 00 000000 0000000000000000ffffffffffffffff
1514 # ip,nw_dst=192.168.128.0/24
1515 0000 0058 00000000 000003f7 dnl
1516 000000000000ffffffffffff 000000000000ffffffffffff dnl
1517 0000 00 00 0800 00 00 00000000ffffffff c0a88000000000ff 0000 0000 dnl
1518 00000000 00 000000 0000000000000000ffffffffffffffff
1520 # ip,nw_dst=128.160.128.0/165.165.165.165
1523 0000 0058 00000000 000003f7 dnl
1524 000000000000ffffffffffff 000000000000ffffffffffff dnl
1525 0000 00 00 0800 00 00 00000000ffffffff c0a880005a5a5a5a 0000 0000 dnl
1526 00000000 00 000000 0000000000000000ffffffffffffffff
1528 # arp,arp_spa=192.168.128.0/24
1529 0000 0058 00000000 000003f7 dnl
1530 000000000000ffffffffffff 000000000000ffffffffffff dnl
1531 0000 00 00 0806 00 00 c0a88000000000ff 00000000ffffffff 0000 0000 dnl
1532 00000000 00 000000 0000000000000000ffffffffffffffff
1534 # arp,arp_tpa=192.168.128.0/24
1535 0000 0058 00000000 000003f7 dnl
1536 000000000000ffffffffffff 000000000000ffffffffffff dnl
1537 0000 00 00 0806 00 00 00000000ffffffff c0a88000000000ff 0000 0000 dnl
1538 00000000 00 000000 0000000000000000ffffffffffffffff
1541 0000 0058 00000000 00000397 dnl
1542 000000000000ffffffffffff 000000000000ffffffffffff dnl
1543 0000 00 00 0800 00 06 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
1544 00000000 00 000000 0000000000000000ffffffffffffffff
1547 0000 0058 00000000 00000357 dnl
1548 000000000000ffffffffffff 000000000000ffffffffffff dnl
1549 0000 00 00 0800 00 06 00000000ffffffff 00000000ffffffff 0000 01bb dnl
1550 00000000 00 000000 0000000000000000ffffffffffffffff
1553 0000 0058 00000000 00000397 dnl
1554 000000000000ffffffffffff 000000000000ffffffffffff dnl
1555 0000 00 00 0800 00 11 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
1556 00000000 00 000000 0000000000000000ffffffffffffffff
1559 0000 0058 00000000 00000397 dnl
1560 000000000000ffffffffffff 000000000000ffffffffffff dnl
1561 0000 00 00 0800 00 01 00000000ffffffff 00000000ffffffff 0005 0000 dnl
1562 00000000 00 000000 0000000000000000ffffffffffffffff
1565 0000 0058 00000000 00000357 dnl
1566 000000000000ffffffffffff 000000000000ffffffffffff dnl
1567 0000 00 00 0800 00 01 00000000ffffffff 00000000ffffffff 0000 0008 dnl
1568 00000000 00 000000 0000000000000000ffffffffffffffff
1571 0000 0058 00000000 00000397 dnl
1572 000000000000ffffffffffff 000000000000ffffffffffff dnl
1573 0000 00 00 0800 00 11 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
1574 00000000 00 000000 0000000000000000ffffffffffffffff
1577 0000 0058 00000000 00000357 dnl
1578 000000000000ffffffffffff 000000000000ffffffffffff dnl
1579 0000 00 00 0800 00 11 00000000ffffffff 00000000ffffffff 0000 01bb dnl
1580 00000000 00 000000 0000000000000000ffffffffffffffff
1583 0000 0058 00000000 000003d7 dnl
1584 000000000000ffffffffffff 000000000000ffffffffffff dnl
1585 0000 00 00 0800 00 84 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1586 00000000 00 000000 0000000000000000ffffffffffffffff
1589 0000 0058 00000000 00000397 dnl
1590 000000000000ffffffffffff 000000000000ffffffffffff dnl
1591 0000 00 00 0800 00 84 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
1592 00000000 00 000000 0000000000000000ffffffffffffffff
1595 0000 0058 00000000 00000357 dnl
1596 000000000000ffffffffffff 000000000000ffffffffffff dnl
1597 0000 00 00 0800 00 84 00000000ffffffff 00000000ffffffff 0000 01bb dnl
1598 00000000 00 000000 0000000000000000ffffffffffffffff
1600 dnl Ignore tp_src if not TCP/UDP/SCTP:
1605 0000 0058 00000000 00000397 dnl
1606 000000000000ffffffffffff 000000000000ffffffffffff dnl
1607 0000 00 00 0800 00 15 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
1608 00000000 00 000000 0000000000000000ffffffffffffffff
1610 dnl Ignore tp_dst if not TCP/UDP/SCTP:
1615 0000 0058 00000000 00000357 dnl
1616 000000000000ffffffffffff 000000000000ffffffffffff dnl
1617 0000 00 00 0800 00 16 00000000ffffffff 00000000ffffffff 0000 01bb dnl
1618 00000000 00 000000 0000000000000000ffffffffffffffff
1620 # mpls,mpls_label=284280
1623 0000 0058 00000000 000002f7 dnl
1624 000000000000ffffffffffff 000000000000ffffffffffff dnl
1625 0000 00 00 8847 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1626 12345678 00 000000 0000000000000000ffffffffffffffff
1630 0000 0058 00000000 000001f7 dnl
1631 000000000000ffffffffffff 000000000000ffffffffffff dnl
1632 0000 00 00 8848 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1633 00000000 5a 000000 0000000000000000ffffffffffffffff
1635 dnl mpls_label and mpls_tc must be ignored if dl_type is not MPLS:
1643 0000 0058 00000000 000000f7 dnl
1644 000000000000ffffffffffff 000000000000ffffffffffff dnl
1645 0000 00 00 1234 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1646 12345678 5a 000000 0000000000000000ffffffffffffffff
1649 # metadata=0x1234567890abcdef
1650 0000 0058 00000000 000003ff dnl
1651 000000000000ffffffffffff 000000000000ffffffffffff dnl
1652 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1653 00000000 00 000000 1234567890abcdef0000000000000000
1656 # metadata=0x5555555555555555/0x5555555555555555
1657 0000 0058 00000000 000003ff dnl
1658 000000000000ffffffffffff 000000000000ffffffffffff dnl
1659 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1660 00000000 00 000000 5555555555555555aaaaaaaaaaaaaaaa
1663 # metadata=0x1234000090ab0000/0xffff0000ffff0000
1668 0000 0058 00000000 000003ff dnl
1669 000000000000ffffffffffff 000000000000ffffffffffff dnl
1670 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1671 00000000 00 000000 1234567890abcdef0000ffff0000ffff
1674 sed '/^[[#&]]/d' < test-data > input.txt
1675 sed -n 's/^# //p; /^$/p' < test-data > expout
1676 sed -n 's/^& //p' < test-data > experr
1677 AT_CAPTURE_FILE([input.txt])
1678 AT_CAPTURE_FILE([expout])
1679 AT_CAPTURE_FILE([experr])
1681 [ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-ofp11-match < input.txt],
1682 [0], [expout], [experr])
1685 AT_SETUP([ovs-ofctl parse-nx-match loose])
1686 AT_KEYWORDS([nx-match])
1687 AT_DATA([nx-match.txt], [dnl
1688 NXM_OF_IN_PORT(0001), 01020304(1111/3333), NXM_OF_ETH_TYPE(0800)
1689 NXM_OF_IN_PORT(0001), ffff020800002320(11112222), NXM_OF_ETH_TYPE(0800)
1690 NXM_OF_IN_PORT(0001), ffff030800002320(1111/3333), NXM_OF_ETH_TYPE(0800)
1693 AT_CHECK([ovs-ofctl --strict parse-nx-match < nx-match.txt], [0], [dnl
1694 nx_pull_match() returned error OFPBMC_BAD_FIELD
1695 nx_pull_match() returned error OFPBMC_BAD_FIELD
1696 nx_pull_match() returned error OFPBMC_BAD_FIELD
1699 AT_CHECK([ovs-ofctl parse-nx-match < nx-match.txt], [0], [dnl
1700 NXM_OF_IN_PORT(0001), NXM_OF_ETH_TYPE(0800)
1701 NXM_OF_IN_PORT(0001), NXM_OF_ETH_TYPE(0800)
1702 NXM_OF_IN_PORT(0001), NXM_OF_ETH_TYPE(0800)
1706 AT_SETUP([ovs-ofctl parse-oxm (OpenFlow 1.2)])
1708 AT_DATA([oxm.txt], [dnl
1712 OXM_OF_IN_PORT(00000000)
1713 OXM_OF_IN_PORT(fffffffe)
1716 OXM_OF_METADATA(5a5a5a5a5a5a5a5a)
1717 OXM_OF_METADATA_W(0000000000000000/00000000ffffffff)
1718 OXM_OF_METADATA_W(1234567890abcdef/ffff0000ffff0000)
1719 OXM_OF_METADATA_W(1234567890abcdef/ffffffffffffffff)
1720 OXM_OF_METADATA_W(1234567890abcdef/0000000000000000)
1723 OXM_OF_ETH_DST(0002e30f80a4)
1724 OXM_OF_ETH_DST_W(010000000000/010000000000)
1725 OXM_OF_ETH_DST_W(000000000000/010000000000)
1726 OXM_OF_ETH_DST_W(ffffffffffff/010000000000)
1727 OXM_OF_ETH_DST_W(0002e30f80a4/ffffffffffff)
1728 OXM_OF_ETH_DST_W(0002e30f80a4/000000000000)
1729 OXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
1732 OXM_OF_ETH_SRC(020898456ddb)
1735 OXM_OF_ETH_TYPE(0800)
1736 OXM_OF_ETH_TYPE(0800) OXM_OF_IN_PORT(00000012)
1739 OXM_OF_VLAN_VID(1009) OXM_OF_VLAN_VID(1009) # Duplicate Field
1740 OXM_OF_VLAN_VID(f009) # Bad Value
1741 OXM_OF_VLAN_PCP(00) # Bad Pre-Requisite
1742 OXM_OF_VLAN_VID(0000) # Packets without 802.1Q header or with VID=0
1743 OXM_OF_VLAN_VID(1123) # Packets with VID=123, any PCP
1744 OXM_OF_VLAN_VID(1123) OXM_OF_VLAN_PCP(01) # Packets with VID=123, PCP=1.
1745 OXM_OF_VLAN_VID(0123) # Does not make sense (but supported anyway)
1746 OXM_OF_VLAN_VID_W(0123/0123) # Does not make sense (but supported anyway)
1747 OXM_OF_VLAN_VID_W(1123/0123) # Does not make sense (but supported anyway)
1748 OXM_OF_VLAN_VID_W(0123/1123) # Does not make sense (but supported anyway)
1749 OXM_OF_VLAN_VID(0123) OXM_OF_VLAN_PCP(01) #Bad Pre-Requisite
1750 OXM_OF_VLAN_VID_W(1123/1fff) # Packets with VID=123, any PCP.
1751 OXM_OF_VLAN_VID_W(1123/ffff) # Packets with VID=123, any PCP.
1752 OXM_OF_VLAN_VID_W(0000/0000) # Packets with or without 802.1Q header
1753 OXM_OF_VLAN_VID_W(1103/1f0f), # Packets with # VID=123 (masked)
1754 OXM_OF_VLAN_VID_W(1103/1f0f), OXM_OF_VLAN_PCP(01) # Packets with VID=123 (masked), any PCP.
1755 OXM_OF_VLAN_VID_W(1000/1000) # Packets with any VID, any PCP
1756 OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(01) # Packets with any VID, PCP=1.
1759 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_DSCP(f0)
1760 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_DSCP(41)
1761 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_DSCP(3f)
1765 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_ECN(03)
1766 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_ECN(06)
1770 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01)
1771 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(05)
1775 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC(ac100014)
1776 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC_W(C0a80000/FFFF0000)
1777 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC_W(C0a80000/FFFFFFFF)
1778 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC_W(00000000/00000000)
1779 OXM_OF_ETH_TYPE(0806) OXM_OF_IPV4_SRC(ac100014)
1780 OXM_OF_IPV4_SRC_W(C0D80000/FFFF0000)
1783 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST(ac100014)
1784 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST_W(C0a80000/FFFF0000)
1785 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST_W(C0a88012/FFFFFFFF)
1786 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST_W(00000000/00000000)
1787 OXM_OF_IPV4_DST(ac100014)
1788 OXM_OF_ETH_TYPE(0806) OXM_OF_IPV4_DST_W(C0D80000/FFFF0000)
1791 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC(4231)
1792 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC_W(5050/F0F0)
1793 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC_W(5050/FFFF)
1794 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC_W(0000/0000)
1795 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(07) OXM_OF_TCP_SRC(4231)
1797 # TCP destination port
1798 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST(4231)
1799 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST_W(FDE0/FFF0)
1800 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST_W(FDE0/FFFF)
1801 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST_W(0000/0000)
1802 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(07) OXM_OF_TCP_DST(4231)
1805 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC(8732)
1806 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC_W(0132/01FF)
1807 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC_W(0132/FFFF)
1808 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC_W(0000/0000)
1809 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_UDP_SRC(7823)
1811 # UDP destination port
1812 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST(1782)
1813 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST_W(5005/F00F)
1814 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST_W(5005/FFFF)
1815 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST_W(0000/0000)
1816 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(02) OXM_OF_UDP_DST(1293)
1819 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(84) OXM_OF_SCTP_SRC(8732)
1820 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(84) OXM_OF_SCTP_SRC_W(0132/01FF)
1821 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(84) OXM_OF_SCTP_SRC_W(0132/FFFF)
1822 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(84) OXM_OF_SCTP_SRC_W(0000/0000)
1823 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_SCTP_SRC(7823)
1825 # SCTP destination port
1826 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(84) OXM_OF_SCTP_DST(1782)
1827 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(84) OXM_OF_SCTP_DST_W(5005/F00F)
1828 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(84) OXM_OF_SCTP_DST_W(5005/FFFF)
1829 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(84) OXM_OF_SCTP_DST_W(0000/0000)
1830 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(02) OXM_OF_SCTP_DST(1293)
1833 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01) OXM_OF_ICMPV4_TYPE(12)
1834 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(00) OXM_OF_ICMPV4_TYPE(10)
1837 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01) OXM_OF_ICMPV4_CODE(12)
1838 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(00) OXM_OF_ICMPV4_CODE(10)
1839 OXM_OF_ETH_TYPE(0800) OXM_OF_ICMPV4_CODE(10)
1840 OXM_OF_ICMPV4_CODE(00)
1843 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(0001)
1844 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(1111)
1845 OXM_OF_ETH_TYPE(0000) OXM_OF_ARP_OP(0001)
1847 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(0001) OXM_OF_ARP_OP(0001)
1849 # ARP source protocol address
1850 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA(ac100014)
1851 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA_W(C0a81200/FFFFFF00)
1852 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA_W(C0a81234/FFFFFFFF)
1853 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA_W(00000000/00000000)
1854 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_SPA(ac100014)
1855 OXM_OF_ARP_SPA_W(C0D80000/FFFF0000)
1857 # ARP destination protocol address
1858 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA(ac100014)
1859 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA_W(C0a81200/FFFFFF00)
1860 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA_W(C0a812fe/FFFFFFFF)
1861 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA_W(00000000/00000000)
1862 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_TPA(ac100014)
1863 OXM_OF_ARP_TPA_W(C0D80000/FFFF0000)
1865 # ARP source hardware address
1866 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA(0002e30f80a4)
1867 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_SHA(0002e30f80a4)
1868 OXM_OF_ARP_SHA(0002e30f80a4)
1869 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA_W(0002e30f80a4/ffffffffffff)
1870 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA_W(000000000000/000000000000)
1871 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA_W(000000000004/00000000000f)
1873 # ARP destination hardware address
1874 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA(0002e30f80a4)
1875 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_THA(0002e30f80a4)
1876 OXM_OF_ARP_THA(0002e30f80a4)
1877 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA_W(0002e30f80a4/ffffffffffff)
1878 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA_W(000000000000/000000000000)
1879 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA_W(000000000004/00000000000f)
1882 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
1883 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
1884 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1885 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
1886 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC_W(00000000000000000000000000000000/00000000000000000000000000000000)
1887 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1890 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
1891 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
1892 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1893 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
1894 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST_W(00000000000000000000000000000000/00000000000000000000000000000000)
1895 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1898 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL(1000000f)
1899 OXM_OF_IPV6_FLABEL(0000000f)
1900 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL(0000000f)
1901 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/0000000f)
1902 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/000fffff)
1903 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(00000000/000ffff0)
1904 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/100fffff)
1905 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/ffffffff)
1906 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(00000000/00000000)
1908 # ND source hardware address
1909 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)
1910 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)
1911 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)
1912 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)
1914 # ND destination hardware address
1915 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)
1916 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)
1917 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)
1918 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)
1920 # Registers 0, 1, and 2.
1921 NXM_NX_REG0(acebdf56)
1922 NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
1923 NXM_NX_REG0(a0e0d050)
1924 NXM_NX_REG1(acebdf56)
1925 NXM_NX_REG0_W(a0e0d050/f0f0f0f0), NXM_NX_REG1_W(a0e0d050/f0f0f0f0)
1926 NXM_NX_REG0_W(a0e0d050/f0f0f0f0), NXM_NX_REG1(a0e0d050)
1927 NXM_NX_REG1_W(a0e0d050/f0f0f0f0), NXM_NX_REG2_W(a0e0d050/f0f0f0f0)
1928 NXM_NX_REG1_W(a0e0d050/f0f0f0f0), NXM_NX_REG2(a0e0d050)
1930 # Extended registers 0, 1, and 2.
1931 # (For OpenFlow 1.2, OVS transforms these into its extension registers.)
1932 OXM_OF_PKT_REG0_W(acebdf5600000000/ffffffff00000000)
1933 OXM_OF_PKT_REG0_W(a0e0d05000000000/f0f0f0f000000000)
1934 OXM_OF_PKT_REG0_W(a0e0d05000000000/ffffffff00000000)
1935 OXM_OF_PKT_REG0_W(00000000acebdf56/00000000ffffffff)
1936 OXM_OF_PKT_REG0_W(a0e0d050a0e0d050/f0f0f0f0f0f0f0f0)
1937 OXM_OF_PKT_REG0_W(a0e0d050a0e0d050/f0f0f0f0ffffffff)
1938 OXM_OF_PKT_REG0_W(00000000a0e0d050/00000000f0f0f0f0), OXM_OF_PKT_REG1_W(a0e0d05000000000/f0f0f0f000000000)
1939 OXM_OF_PKT_REG0_W(00000000a0e0d050/00000000f0f0f0f0), OXM_OF_PKT_REG1_W(a0e0d05000000000/ffffffff00000000)
1941 # Invalid field number.
1944 # Invalid field numbers (experimenter OXM).
1945 ffff020800002320(11112222)
1946 ffff030800002320(1111/3333)
1948 AT_CHECK([ovs-ofctl '-vPATTERN:console:%c|%p|%m' --strict parse-oxm OpenFlow12 < oxm.txt],
1953 OXM_OF_IN_PORT(00000000)
1954 OXM_OF_IN_PORT(fffffffe)
1957 OXM_OF_METADATA(5a5a5a5a5a5a5a5a)
1958 OXM_OF_METADATA_W(0000000000000000/00000000ffffffff)
1959 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
1960 OXM_OF_METADATA(1234567890abcdef)
1961 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
1964 OXM_OF_ETH_DST(0002e30f80a4)
1965 OXM_OF_ETH_DST_W(010000000000/010000000000)
1966 OXM_OF_ETH_DST_W(000000000000/010000000000)
1967 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
1968 OXM_OF_ETH_DST(0002e30f80a4)
1969 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
1970 OXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
1973 OXM_OF_ETH_SRC(020898456ddb)
1976 OXM_OF_ETH_TYPE(0800)
1977 OXM_OF_IN_PORT(00000012), OXM_OF_ETH_TYPE(0800)
1980 nx_pull_match() returned error OFPBMC_DUP_FIELD
1981 nx_pull_match() returned error OFPBMC_BAD_VALUE
1982 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1983 OXM_OF_VLAN_VID(0000)
1984 OXM_OF_VLAN_VID(1123)
1985 OXM_OF_VLAN_VID(1123), OXM_OF_VLAN_PCP(01)
1986 OXM_OF_VLAN_VID(0123)
1987 OXM_OF_VLAN_VID_W(0123/0123)
1988 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
1989 OXM_OF_VLAN_VID_W(0123/1123)
1990 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1991 OXM_OF_VLAN_VID(1123)
1992 OXM_OF_VLAN_VID(1123)
1994 OXM_OF_VLAN_VID_W(1103/1f0f)
1995 OXM_OF_VLAN_VID_W(1103/1f0f), OXM_OF_VLAN_PCP(01)
1996 OXM_OF_VLAN_VID_W(1000/1000)
1997 OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(01)
2000 nx_pull_match() returned error OFPBMC_BAD_VALUE
2001 nx_pull_match() returned error OFPBMC_BAD_VALUE
2002 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_DSCP(3f)
2003 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2006 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_ECN(03)
2007 nx_pull_match() returned error OFPBMC_BAD_VALUE
2008 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2011 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01)
2012 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(05)
2013 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2016 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_SRC(ac100014)
2017 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_SRC_W(c0a80000/ffff0000)
2018 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_SRC(c0a80000)
2019 OXM_OF_ETH_TYPE(0800)
2020 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2021 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2024 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_DST(ac100014)
2025 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_DST_W(c0a80000/ffff0000)
2026 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_DST(c0a88012)
2027 OXM_OF_ETH_TYPE(0800)
2028 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2029 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2032 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_SRC(4231)
2033 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_SRC_W(5050/f0f0)
2034 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_SRC(5050)
2035 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06)
2036 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2038 # TCP destination port
2039 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_DST(4231)
2040 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_DST_W(fde0/fff0)
2041 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_DST(fde0)
2042 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06)
2043 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2046 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_SRC(8732)
2047 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_SRC_W(0132/01ff)
2048 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_SRC(0132)
2049 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11)
2050 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2052 # UDP destination port
2053 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_DST(1782)
2054 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_DST_W(5005/f00f)
2055 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_DST(5005)
2056 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11)
2057 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2060 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(84), OXM_OF_SCTP_SRC(8732)
2061 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(84), OXM_OF_SCTP_SRC_W(0132/01ff)
2062 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(84), OXM_OF_SCTP_SRC(0132)
2063 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(84)
2064 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2066 # SCTP destination port
2067 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(84), OXM_OF_SCTP_DST(1782)
2068 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(84), OXM_OF_SCTP_DST_W(5005/f00f)
2069 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(84), OXM_OF_SCTP_DST(5005)
2070 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(84)
2071 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2074 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01), OXM_OF_ICMPV4_TYPE(12)
2075 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2078 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01), OXM_OF_ICMPV4_CODE(12)
2079 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2080 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2081 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2084 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_OP(0001)
2085 nx_pull_match() returned error OFPBMC_BAD_VALUE
2086 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2087 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2088 nx_pull_match() returned error OFPBMC_DUP_FIELD
2090 # ARP source protocol address
2091 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SPA(ac100014)
2092 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SPA_W(c0a81200/ffffff00)
2093 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SPA(c0a81234)
2094 OXM_OF_ETH_TYPE(0806)
2095 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2096 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2098 # ARP destination protocol address
2099 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_TPA(ac100014)
2100 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_TPA_W(c0a81200/ffffff00)
2101 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_TPA(c0a812fe)
2102 OXM_OF_ETH_TYPE(0806)
2103 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2104 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2106 # ARP source hardware address
2107 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SHA(0002e30f80a4)
2108 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2109 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2110 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SHA(0002e30f80a4)
2111 OXM_OF_ETH_TYPE(0806)
2112 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SHA_W(000000000004/00000000000f)
2114 # ARP destination hardware address
2115 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_THA(0002e30f80a4)
2116 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2117 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2118 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_THA(0002e30f80a4)
2119 OXM_OF_ETH_TYPE(0806)
2120 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_THA_W(000000000004/00000000000f)
2123 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
2124 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2125 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
2126 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_SRC(20010db83c4d00010000000000000000)
2127 OXM_OF_ETH_TYPE(86dd)
2128 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2131 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
2132 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2133 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
2134 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_DST(20010db83c4d00010000000000000000)
2135 OXM_OF_ETH_TYPE(86dd)
2136 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2139 nx_pull_match() returned error OFPBMC_BAD_VALUE
2140 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2141 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
2142 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL_W(0000000f/0000000f)
2143 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
2144 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL_W(00000000/000ffff0)
2145 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
2146 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
2147 OXM_OF_ETH_TYPE(86dd)
2149 # ND source hardware address
2150 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)
2151 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2152 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2153 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2155 # ND destination hardware address
2156 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)
2157 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2158 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2159 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2161 # Registers 0, 1, and 2.
2162 NXM_NX_REG0(acebdf56)
2163 NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
2164 NXM_NX_REG0(a0e0d050)
2165 NXM_NX_REG1(acebdf56)
2166 NXM_NX_REG0_W(a0e0d050/f0f0f0f0), NXM_NX_REG1_W(a0e0d050/f0f0f0f0)
2167 NXM_NX_REG0_W(a0e0d050/f0f0f0f0), NXM_NX_REG1(a0e0d050)
2168 NXM_NX_REG1_W(a0e0d050/f0f0f0f0), NXM_NX_REG2_W(a0e0d050/f0f0f0f0)
2169 NXM_NX_REG1_W(a0e0d050/f0f0f0f0), NXM_NX_REG2(a0e0d050)
2171 # Extended registers 0, 1, and 2.
2172 # (For OpenFlow 1.2, OVS transforms these into its extension registers.)
2173 NXM_NX_REG0(acebdf56)
2174 NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
2175 NXM_NX_REG0(a0e0d050)
2176 NXM_NX_REG1(acebdf56)
2177 NXM_NX_REG0_W(a0e0d050/f0f0f0f0), NXM_NX_REG1_W(a0e0d050/f0f0f0f0)
2178 NXM_NX_REG0_W(a0e0d050/f0f0f0f0), NXM_NX_REG1(a0e0d050)
2179 NXM_NX_REG1_W(a0e0d050/f0f0f0f0), NXM_NX_REG2_W(a0e0d050/f0f0f0f0)
2180 NXM_NX_REG1_W(a0e0d050/f0f0f0f0), NXM_NX_REG2(a0e0d050)
2182 # Invalid field number.
2183 nx_pull_match() returned error OFPBMC_BAD_FIELD
2185 # Invalid field numbers (experimenter OXM).
2186 nx_pull_match() returned error OFPBMC_BAD_FIELD
2187 nx_pull_match() returned error OFPBMC_BAD_FIELD
2190 # Check that at least the first warning made it. (It's rate-limited
2191 # so a variable number could show up, especially under valgrind etc.)
2192 AT_CHECK([grep '1-bits in value' stderr | sed 1q], [0], [dnl
2193 nx_match|WARN|Rejecting NXM/OXM entry 0:32768:2:1:16 with 1-bits in value for bits wildcarded by the mask.
2196 # Check that there wasn't any other stderr output.
2197 AT_CHECK([grep -v '1-bits in value' stderr], [1])
2200 AT_SETUP([ovs-ofctl parse-oxm (OpenFlow 1.3)])
2202 AT_DATA([oxm.txt], [dnl
2204 ONFOXM_ET_ACTSET_OUTPUT(00000000)
2205 ONFOXM_ET_ACTSET_OUTPUT(fffffffe)
2206 ONFOXM_ET_ACTSET_OUTPUT(fffffff7)
2207 OXM_OF_ACTSET_OUTPUT(00000000)
2208 OXM_OF_ACTSET_OUTPUT(fffffffe)
2209 OXM_OF_ACTSET_OUTPUT(fffffff7)
2211 AT_CHECK([ovs-ofctl '-vPATTERN:console:%c|%p|%m' --strict parse-oxm OpenFlow13 < oxm.txt],
2214 ONFOXM_ET_ACTSET_OUTPUT(00000000)
2215 ONFOXM_ET_ACTSET_OUTPUT(fffffffe)
2216 ONFOXM_ET_ACTSET_OUTPUT(fffffff7)
2217 ONFOXM_ET_ACTSET_OUTPUT(00000000)
2218 ONFOXM_ET_ACTSET_OUTPUT(fffffffe)
2219 ONFOXM_ET_ACTSET_OUTPUT(fffffff7)
2223 AT_SETUP([ovs-ofctl parse-oxm (OpenFlow 1.5)])
2225 AT_DATA([oxm.txt], [dnl
2226 # Extended registers 0 and 1.
2227 OXM_OF_PKT_REG0_W(acebdf5600000000/ffffffff00000000)
2228 OXM_OF_PKT_REG0_W(a0e0d05000000000/f0f0f0f000000000)
2229 OXM_OF_PKT_REG0_W(a0e0d05000000000/ffffffff00000000)
2230 OXM_OF_PKT_REG0_W(00000000acebdf56/00000000ffffffff)
2231 OXM_OF_PKT_REG0_W(a0e0d050a0e0d050/f0f0f0f0f0f0f0f0)
2232 OXM_OF_PKT_REG0_W(a0e0d050a0e0d050/f0f0f0f0ffffffff)
2233 OXM_OF_PKT_REG0_W(00000000a0e0d050/00000000f0f0f0f0), OXM_OF_PKT_REG1_W(a0e0d05000000000/f0f0f0f000000000)
2234 OXM_OF_PKT_REG0_W(00000000a0e0d050/00000000f0f0f0f0), OXM_OF_PKT_REG1_W(a0e0d05000000000/ffffffff00000000)
2236 # Registers 0, 1, and 2.
2237 # (OpenFlow 1.5 transforms these into the standard "xregs".)
2238 NXM_NX_REG0(acebdf56)
2239 NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
2240 NXM_NX_REG0(a0e0d050)
2241 NXM_NX_REG1(acebdf56)
2242 NXM_NX_REG0_W(a0e0d050/f0f0f0f0), NXM_NX_REG1_W(a0e0d050/f0f0f0f0)
2243 NXM_NX_REG0_W(a0e0d050/f0f0f0f0), NXM_NX_REG1(a0e0d050)
2244 NXM_NX_REG1_W(a0e0d050/f0f0f0f0), NXM_NX_REG2_W(a0e0d050/f0f0f0f0)
2245 NXM_NX_REG1_W(a0e0d050/f0f0f0f0), NXM_NX_REG2(a0e0d050)
2248 ONFOXM_ET_ACTSET_OUTPUT(00000000)
2249 ONFOXM_ET_ACTSET_OUTPUT(fffffffe)
2250 ONFOXM_ET_ACTSET_OUTPUT(fffffff7)
2251 OXM_OF_ACTSET_OUTPUT(00000000)
2252 OXM_OF_ACTSET_OUTPUT(fffffffe)
2253 OXM_OF_ACTSET_OUTPUT(fffffff7)
2255 AT_CHECK([ovs-ofctl '-vPATTERN:console:%c|%p|%m' --strict parse-oxm OpenFlow15 < oxm.txt],
2257 # Extended registers 0 and 1.
2258 OXM_OF_PKT_REG0_W(acebdf5600000000/ffffffff00000000)
2259 OXM_OF_PKT_REG0_W(a0e0d05000000000/f0f0f0f000000000)
2260 OXM_OF_PKT_REG0_W(a0e0d05000000000/ffffffff00000000)
2261 OXM_OF_PKT_REG0_W(00000000acebdf56/00000000ffffffff)
2262 OXM_OF_PKT_REG0_W(a0e0d050a0e0d050/f0f0f0f0f0f0f0f0)
2263 OXM_OF_PKT_REG0_W(a0e0d050a0e0d050/f0f0f0f0ffffffff)
2264 OXM_OF_PKT_REG0_W(00000000a0e0d050/00000000f0f0f0f0), OXM_OF_PKT_REG1_W(a0e0d05000000000/f0f0f0f000000000)
2265 OXM_OF_PKT_REG0_W(00000000a0e0d050/00000000f0f0f0f0), OXM_OF_PKT_REG1_W(a0e0d05000000000/ffffffff00000000)
2267 # Registers 0, 1, and 2.
2268 # (OpenFlow 1.5 transforms these into the standard "xregs".)
2269 OXM_OF_PKT_REG0_W(acebdf5600000000/ffffffff00000000)
2270 OXM_OF_PKT_REG0_W(a0e0d05000000000/f0f0f0f000000000)
2271 OXM_OF_PKT_REG0_W(a0e0d05000000000/ffffffff00000000)
2272 OXM_OF_PKT_REG0_W(00000000acebdf56/00000000ffffffff)
2273 OXM_OF_PKT_REG0_W(a0e0d050a0e0d050/f0f0f0f0f0f0f0f0)
2274 OXM_OF_PKT_REG0_W(a0e0d050a0e0d050/f0f0f0f0ffffffff)
2275 OXM_OF_PKT_REG0_W(00000000a0e0d050/00000000f0f0f0f0), OXM_OF_PKT_REG1_W(a0e0d05000000000/f0f0f0f000000000)
2276 OXM_OF_PKT_REG0_W(00000000a0e0d050/00000000f0f0f0f0), OXM_OF_PKT_REG1_W(a0e0d05000000000/ffffffff00000000)
2279 OXM_OF_ACTSET_OUTPUT(00000000)
2280 OXM_OF_ACTSET_OUTPUT(fffffffe)
2281 OXM_OF_ACTSET_OUTPUT(fffffff7)
2282 OXM_OF_ACTSET_OUTPUT(00000000)
2283 OXM_OF_ACTSET_OUTPUT(fffffffe)
2284 OXM_OF_ACTSET_OUTPUT(fffffff7)
2288 AT_SETUP([ovs-ofctl parse-oxm loose])
2290 AT_DATA([oxm.txt], [dnl
2291 OXM_OF_IN_PORT(00000001), 01020304(1111/3333), OXM_OF_ETH_TYPE(0800)
2292 OXM_OF_IN_PORT(00000001), ffff020800002320(11112222), OXM_OF_ETH_TYPE(0800)
2293 OXM_OF_IN_PORT(00000001), ffff030800002320(1111/3333), OXM_OF_ETH_TYPE(0800)
2296 AT_CHECK([ovs-ofctl --strict parse-oxm OpenFlow12 < oxm.txt], [0], [dnl
2297 nx_pull_match() returned error OFPBMC_BAD_FIELD
2298 nx_pull_match() returned error OFPBMC_BAD_FIELD
2299 nx_pull_match() returned error OFPBMC_BAD_FIELD
2302 AT_CHECK([ovs-ofctl parse-oxm OpenFlow12 < oxm.txt], [0], [dnl
2303 OXM_OF_IN_PORT(00000001), OXM_OF_ETH_TYPE(0800)
2304 OXM_OF_IN_PORT(00000001), OXM_OF_ETH_TYPE(0800)
2305 OXM_OF_IN_PORT(00000001), OXM_OF_ETH_TYPE(0800)
2309 AT_SETUP([experimenter OXM encoding])
2310 AT_DATA([oxm.txt], [dnl
2311 NXM_NX_DP_HASH(01234567)
2312 NXOXM_ET_DP_HASH(01234567)
2314 NXM_NX_DP_HASH_W(01234567/0fffffff)
2315 NXOXM_ET_DP_HASH_W(01234567/0fffffff)
2318 # To allow for testing experimenter OXM, which doesn't really have many
2319 # examples in the wild, we've defined a variant of NXM_NX_DP_HASH that uses
2320 # the experimenter OXM mechanism, called NXOXM_ET_DP_HASH. We've defined
2321 # it as if it were introduced with OpenFlow 1.5, which gives us the
2322 # opportunity to see that both forms are accepted in all OpenFlow versions
2323 # but the experimenter form is used for encoding in OF1.5+.
2325 # First verify that both forms are accepted and NXOXM_ET_DP_HASH is encoded
2327 AT_CHECK([ovs-ofctl -m --strict parse-oxm OpenFlow15 < oxm.txt], [0], [dnl
2328 NXOXM_ET_DP_HASH(01234567)
2329 00000000 00 01 00 10 ff ff 00 08-00 00 23 20 01 23 45 67 @&t@
2330 NXOXM_ET_DP_HASH(01234567)
2331 00000000 00 01 00 10 ff ff 00 08-00 00 23 20 01 23 45 67 @&t@
2333 NXOXM_ET_DP_HASH_W(01234567/0fffffff)
2334 00000000 00 01 00 14 ff ff 01 0c-00 00 23 20 01 23 45 67 @&t@
2335 00000010 0f ff ff ff 00 00 00 00-
2336 NXOXM_ET_DP_HASH_W(01234567/0fffffff)
2337 00000000 00 01 00 14 ff ff 01 0c-00 00 23 20 01 23 45 67 @&t@
2338 00000010 0f ff ff ff 00 00 00 00-
2341 # Then verify that both forms are accepted and NXM_NX_DP_HASH is encoded
2343 AT_CHECK([ovs-ofctl -m --strict parse-oxm OpenFlow12 < oxm.txt], [0], [dnl
2344 NXM_NX_DP_HASH(01234567)
2345 00000000 00 01 00 0c 00 01 46 04-01 23 45 67 00 00 00 00 @&t@
2346 NXM_NX_DP_HASH(01234567)
2347 00000000 00 01 00 0c 00 01 46 04-01 23 45 67 00 00 00 00 @&t@
2349 NXM_NX_DP_HASH_W(01234567/0fffffff)
2350 00000000 00 01 00 10 00 01 47 08-01 23 45 67 0f ff ff ff @&t@
2351 NXM_NX_DP_HASH_W(01234567/0fffffff)
2352 00000000 00 01 00 10 00 01 47 08-01 23 45 67 0f ff ff ff @&t@
2356 AT_SETUP([check TCP flags expression in OXM and NXM])
2357 # NXM/OXM input for matching on TCP flags.
2358 tcp_flags='OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_FLAGS(0fff)'
2360 # Check that marshaling into NXM gives all NXM headers.
2361 AT_CHECK([echo "$tcp_flags" | ovs-ofctl parse-nxm], [0],
2362 [NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_NX_TCP_FLAGS(0fff)
2365 # Check that marshaling in OXM for OF1.2 gives OXM headers except for
2366 # TCP flags, which didn't have an OXM definition.
2367 AT_CHECK([echo "$tcp_flags" | ovs-ofctl parse-oxm OpenFlow12], [0],
2368 [OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), NXM_NX_TCP_FLAGS(0fff)
2371 # Check that marshaling in OXM for OF1.3 and OF1.4 gives OXM headers,
2372 # including the ONF extension for TCP flags introduced in OF1.3.
2373 AT_CHECK([echo "$tcp_flags" | ovs-ofctl parse-oxm OpenFlow13], [0],
2374 [OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), ONFOXM_ET_TCP_FLAGS(0fff)
2376 AT_CHECK([echo "$tcp_flags" | ovs-ofctl parse-oxm OpenFlow14], [0],
2377 [OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), ONFOXM_ET_TCP_FLAGS(0fff)
2380 # OpenFlow 1.5 added an OXM header for TCP flags:
2381 AT_CHECK([echo "$tcp_flags" | ovs-ofctl parse-oxm OpenFlow15], [0],
2382 [OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_FLAGS(0fff)
2386 dnl Check all of the patterns mentioned in the "VLAN Matching" section
2387 dnl in the DESIGN file at top level.
2388 AT_SETUP([ovs-ofctl check-vlan])
2392 AT_CHECK([ovs-ofctl check-vlan 0000 0000], [0], [dnl
2394 NXM: <any> -> 0000/0000
2395 OXM: <any> -> 0000/0000,--
2396 OF1.0: 0000/1,00/1 -> 0000/0000
2397 OF1.1: 0000/1,00/1 -> 0000/0000
2401 AT_CHECK([ovs-ofctl check-vlan 0000 ffff], [0], [dnl
2402 vlan_tci=0x0000 -> 0000/ffff
2403 NXM: NXM_OF_VLAN_TCI(0000) -> 0000/ffff
2404 OXM: OXM_OF_VLAN_VID(0000) -> 0000/1fff,--
2405 OF1.0: ffff/0,00/0 -> 0000/ffff
2406 OF1.1: ffff/0,00/1 -> 0000/ffff
2410 AT_CHECK([ovs-ofctl check-vlan 1abc 1fff], [0], [dnl
2411 dl_vlan=2748 -> 1abc/1fff
2412 NXM: NXM_OF_VLAN_TCI_W(1abc/1fff) -> 1abc/1fff
2413 OXM: OXM_OF_VLAN_VID(1abc) -> 1abc/1fff,--
2414 OF1.0: 0abc/0,00/1 -> 1abc/1fff
2415 OF1.1: 0abc/0,00/1 -> 1abc/1fff
2419 AT_CHECK([ovs-ofctl check-vlan b000 f000], [0], [dnl
2420 dl_vlan_pcp=5 -> b000/f000
2421 NXM: NXM_OF_VLAN_TCI_W(b000/f000) -> b000/f000
2422 OXM: OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(05) -> 1000/1000,05
2423 OF1.0: 0000/1,05/0 -> b000/f000
2424 OF1.1: fffe/0,05/0 -> b000/f000
2428 AT_CHECK([ovs-ofctl check-vlan babc ffff], [0], [dnl
2429 dl_vlan=2748,dl_vlan_pcp=5 -> babc/ffff
2430 NXM: NXM_OF_VLAN_TCI(babc) -> babc/ffff
2431 OXM: OXM_OF_VLAN_VID(1abc), OXM_OF_VLAN_PCP(05) -> 1abc/1fff,05
2432 OF1.0: 0abc/0,05/0 -> babc/ffff
2433 OF1.1: 0abc/0,05/0 -> babc/ffff
2437 AT_CHECK([ovs-ofctl check-vlan 0000 0fff], [0], [dnl
2438 vlan_tci=0x0000/0x0fff -> 0000/0fff
2439 NXM: NXM_OF_VLAN_TCI_W(0000/0fff) -> 0000/0fff
2440 OXM: OXM_OF_VLAN_VID_W(0000/0fff) -> 0000/0fff,--
2441 OF1.0: 0000/0,00/1 -> 1000/1fff
2442 OF1.1: 0000/0,00/1 -> 1000/1fff
2446 AT_CHECK([ovs-ofctl check-vlan 0000 f000], [0], [dnl
2447 vlan_tci=0x0000/0xf000 -> 0000/f000
2448 NXM: NXM_OF_VLAN_TCI_W(0000/f000) -> 0000/f000
2449 OXM: OXM_OF_VLAN_VID_W(0000/1000) -> 0000/1000,--
2450 OF1.0: ffff/0,00/0 -> 0000/ffff
2451 OF1.1: ffff/0,00/1 -> 0000/ffff
2455 AT_CHECK([ovs-ofctl check-vlan 0000 efff], [0], [dnl
2456 vlan_tci=0x0000/0xefff -> 0000/efff
2457 NXM: NXM_OF_VLAN_TCI_W(0000/efff) -> 0000/efff
2458 OXM: OXM_OF_VLAN_VID_W(0000/0fff) -> 0000/0fff,--
2459 OF1.0: 0000/0,00/0 -> 1000/ffff
2460 OF1.1: 0000/0,00/0 -> 1000/ffff
2464 AT_CHECK([ovs-ofctl check-vlan 1001 1001], [0], [dnl
2465 vlan_tci=0x1001/0x1001 -> 1001/1001
2466 NXM: NXM_OF_VLAN_TCI_W(1001/1001) -> 1001/1001
2467 OXM: OXM_OF_VLAN_VID_W(1001/1001) -> 1001/1001,--
2468 OF1.0: 0001/0,00/1 -> 1001/1fff
2469 OF1.1: 0001/0,00/1 -> 1001/1fff
2473 AT_CHECK([ovs-ofctl check-vlan 3000 3000], [0], [dnl
2474 vlan_tci=0x3000/0x3000 -> 3000/3000
2475 NXM: NXM_OF_VLAN_TCI_W(3000/3000) -> 3000/3000
2476 OXM: OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(01) -> 1000/1000,01
2477 OF1.0: 0000/1,01/0 -> 3000/f000
2478 OF1.1: fffe/0,01/0 -> 3000/f000
2483 dnl Check that "-F openflow10" rejects a flow_mod with unsupported features,
2484 dnl such as tunnels and metadata.
2485 AT_SETUP([ovs-ofctl -F option and NXM features])
2486 AT_CHECK([ovs-ofctl -F openflow10 add-flow dummy tun_id=123,actions=drop],
2487 [1], [], [ovs-ofctl: none of the usable flow formats (NXM,OXM) is among the allowed flow formats (OpenFlow10)
2489 AT_CHECK([ovs-ofctl -F openflow10 add-flow dummy metadata=123,actions=drop],
2490 [1], [], [ovs-ofctl: none of the usable flow formats (NXM,OXM,OpenFlow11) is among the allowed flow formats (OpenFlow10)
2494 dnl Check that "-F nxm" really forces add-flow to use the NXM flow format.
2495 dnl (If it doesn't, then either the tun_id won't show up at all, or it will
2496 dnl additionally show up as the top 32 bits of the cookie.) This checks
2497 dnl for regression against bug #4566.
2498 AT_SETUP([ovs-ofctl -F option with flow_mods])
2500 AT_CHECK([ovs-ofctl -F nxm add-flow br0 tun_id=0x12345678,actions=drop])
2501 AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip], [0], [dnl
2503 tun_id=0x12345678 actions=drop
2508 dnl Check that "-F openflow10" is really honored on dump-flows.
2509 dnl (If it isn't, then dump-flows will show the register match.)
2510 AT_SETUP([ovs-ofctl dump-flows honors -F option])
2512 AT_CHECK([ovs-ofctl add-flow br0 reg0=0x12345,actions=drop])
2513 AT_CHECK([ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip], [0], [dnl
2520 dnl Check that "-F openflow10" fails on dump-flows if the requested match
2521 dnl can't be represented in OpenFlow 1.0.
2522 AT_SETUP([ovs-ofctl dump-flows rejects bad -F option])
2524 AT_CHECK([ovs-ofctl -F openflow10 dump-flows unix:br0.mgmt reg0=0xabcdef], [1], [],
2525 [ovs-ofctl: none of the usable flow formats (NXM,OXM) is among the allowed flow formats (OpenFlow10)
2530 dnl Check that add-flow reports non-normalized flows (feature #5029).
2531 AT_SETUP([ovs-ofctl add-flow reports non-normalized flows])
2533 AT_CHECK([ovs-ofctl TESTABLE_LOG add-flow br0 nw_src=1.2.3.4,actions=5],
2535 ofp_util|INFO|normalization changed ofp_match, details:
2536 ofp_util|INFO| pre: nw_src=1.2.3.4
2537 ofp_util|INFO|post: @&t@
2542 dnl Check that --sort and --rsort works with dump-flows
2543 dnl Default field is 'priority'. Flow entries are displayed based
2544 dnl on field to sort.
2545 AT_SETUP([ovs-ofctl dump-flows with sorting])
2548 AT_DATA([allflows.txt], [[
2549 priority=4,in_port=23213 actions=output:42
2550 priority=5,in_port=1029 actions=output:43
2551 priority=7,in_port=1029 actions=output:43
2552 priority=3,in_port=1028 actions=output:44
2553 priority=1,in_port=1026 actions=output:45
2554 priority=6,in_port=1027 actions=output:64
2555 priority=2,in_port=1025 actions=output:47
2556 priority=8,tcp,tp_src=5 actions=drop
2557 priority=9,tcp,tp_src=6 actions=drop
2560 AT_CHECK([ovs-ofctl add-flows br0 allflows.txt
2562 AT_CHECK([ovs-ofctl --sort dump-flows br0 | ofctl_strip], [0], [dnl
2563 priority=1,in_port=1026 actions=output:45
2564 priority=2,in_port=1025 actions=output:47
2565 priority=3,in_port=1028 actions=output:44
2566 priority=4,in_port=23213 actions=output:42
2567 priority=5,in_port=1029 actions=output:43
2568 priority=6,in_port=1027 actions=output:64
2569 priority=7,in_port=1029 actions=output:43
2570 priority=8,tcp,tp_src=5 actions=drop
2571 priority=9,tcp,tp_src=6 actions=drop
2573 AT_CHECK([ovs-ofctl --rsort dump-flows br0 | ofctl_strip], [0], [dnl
2574 priority=9,tcp,tp_src=6 actions=drop
2575 priority=8,tcp,tp_src=5 actions=drop
2576 priority=7,in_port=1029 actions=output:43
2577 priority=6,in_port=1027 actions=output:64
2578 priority=5,in_port=1029 actions=output:43
2579 priority=4,in_port=23213 actions=output:42
2580 priority=3,in_port=1028 actions=output:44
2581 priority=2,in_port=1025 actions=output:47
2582 priority=1,in_port=1026 actions=output:45
2584 AT_CHECK([ovs-ofctl --sort=in_port dump-flows br0 | ofctl_strip], [0], [dnl
2585 priority=2,in_port=1025 actions=output:47
2586 priority=1,in_port=1026 actions=output:45
2587 priority=6,in_port=1027 actions=output:64
2588 priority=3,in_port=1028 actions=output:44
2589 priority=7,in_port=1029 actions=output:43
2590 priority=5,in_port=1029 actions=output:43
2591 priority=4,in_port=23213 actions=output:42
2592 priority=9,tcp,tp_src=6 actions=drop
2593 priority=8,tcp,tp_src=5 actions=drop
2595 AT_CHECK([ovs-ofctl --rsort=in_port dump-flows br0 | ofctl_strip], [0], [dnl
2596 priority=4,in_port=23213 actions=output:42
2597 priority=7,in_port=1029 actions=output:43
2598 priority=5,in_port=1029 actions=output:43
2599 priority=3,in_port=1028 actions=output:44
2600 priority=6,in_port=1027 actions=output:64
2601 priority=1,in_port=1026 actions=output:45
2602 priority=2,in_port=1025 actions=output:47
2603 priority=9,tcp,tp_src=6 actions=drop
2604 priority=8,tcp,tp_src=5 actions=drop
2606 AT_CHECK([ovs-ofctl --sort=tcp_src dump-flows br0 | ofctl_strip], [0], [dnl
2607 priority=8,tcp,tp_src=5 actions=drop
2608 priority=9,tcp,tp_src=6 actions=drop
2609 priority=7,in_port=1029 actions=output:43
2610 priority=6,in_port=1027 actions=output:64
2611 priority=5,in_port=1029 actions=output:43
2612 priority=4,in_port=23213 actions=output:42
2613 priority=3,in_port=1028 actions=output:44
2614 priority=2,in_port=1025 actions=output:47
2615 priority=1,in_port=1026 actions=output:45
2618 [ovs-ofctl --sort=in_port --sort=tcp_src dump-flows br0 | ofctl_strip], [0],
2619 [ priority=2,in_port=1025 actions=output:47
2620 priority=1,in_port=1026 actions=output:45
2621 priority=6,in_port=1027 actions=output:64
2622 priority=3,in_port=1028 actions=output:44
2623 priority=7,in_port=1029 actions=output:43
2624 priority=5,in_port=1029 actions=output:43
2625 priority=4,in_port=23213 actions=output:42
2626 priority=8,tcp,tp_src=5 actions=drop
2627 priority=9,tcp,tp_src=6 actions=drop
2632 AT_SETUP([ovs-ofctl diff-flows])
2635 # Add tons of flows to br0.
2636 for i in `seq 0 1023`; do echo "dl_vlan=$i,actions=drop"; done > add-flows.txt
2637 AT_CHECK([ovs-ofctl add-flows br0 add-flows.txt])
2639 # Dump them and compare against what we expect by hand, then with diff-flows.
2640 for i in `seq 0 1023`; do echo " dl_vlan=$i actions=drop"; done | sort > expout
2641 AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip | sed '/NXST_FLOW/d' | sort],
2643 AT_CHECK([ovs-ofctl diff-flows br0 add-flows.txt])
2645 # Remove even-numbered flows, compare again.
2646 for i in `seq 0 1023 2`; do echo "dl_vlan=$i"; done > del-flows.txt
2647 AT_CHECK([ovs-ofctl del-flows br0 - < del-flows.txt])
2648 for i in `seq 0 1023 2`; do echo "+dl_vlan=$i actions=drop"; done | sort > expout
2649 AT_CHECK([ovs-ofctl diff-flows br0 add-flows.txt | sort], [0], [expout])
2650 for i in `seq 0 1023 2`; do echo "-dl_vlan=$i actions=drop"; done | sort > expout
2651 AT_CHECK([ovs-ofctl diff-flows add-flows.txt br0 | sort], [0], [expout])
2656 dnl ofpacts that differ bytewise don't necessarily differ when
2657 dnl converted to another representation, such as OpenFlow 1.0
2658 dnl or to a string. "resubmit(,1)" is an example of an action
2659 dnl of this type: "ofpact_resubmit"s can differ in their "compat"
2660 dnl values even though this doesn't affect the string format.
2662 dnl This test checks that "ovs-ofctl diff-flows" doesn't report
2663 dnl false ofpacts differences.
2664 AT_SETUP([ovs-ofctl diff-flows - suppress false differences])
2666 AT_DATA([flows.txt], [actions=resubmit(,1)
2668 AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
2669 AT_CHECK([ovs-ofctl diff-flows br0 flows.txt])
2670 AT_CHECK([ovs-ofctl add-flow br0 idle_timeout=60,dl_vlan=9,actions=output:1])
2671 AT_CHECK([ovs-ofctl diff-flows br0 flows.txt], [2], [dnl
2672 -dl_vlan=9 idle_timeout=60 actions=output:1
2674 AT_CHECK([ovs-ofctl add-flow br0 hard_timeout=120,cookie=1234,dl_vlan=9,actions=output:1])
2675 AT_CHECK([ovs-ofctl diff-flows flows.txt br0], [2], [dnl
2676 +dl_vlan=9 cookie=0x4d2 hard_timeout=120 actions=output:1
2681 AT_SETUP([ovs-ofctl -F and -O interaction])
2682 AT_CHECK([ovs-ofctl -F oxm -O openflow10], [1], [],
2683 [ovs-ofctl: None of the enabled OpenFlow versions (OpenFlow10) supports any of the enabled flow formats (OXM). (Use -O to enable additional OpenFlow versions or -F to enable additional flow formats.)
2685 AT_CHECK([ovs-ofctl -F oxm -O openflow11], [1], [],
2686 [ovs-ofctl: None of the enabled OpenFlow versions (OpenFlow11) supports any of the enabled flow formats (OXM). (Use -O to enable additional OpenFlow versions or -F to enable additional flow formats.)
2688 AT_CHECK([ovs-ofctl -F oxm -O openflow10,openflow11], [1], [],
2689 [ovs-ofctl: None of the enabled OpenFlow versions (OpenFlow10, OpenFlow11) supports any of the enabled flow formats (OXM). (Use -O to enable additional OpenFlow versions or -F to enable additional flow formats.)
2691 AT_CHECK([ovs-ofctl -F oxm -O openflow10,openflow12], [1], [],
2692 [ovs-ofctl: missing command name; use --help for help
2694 AT_CHECK([ovs-ofctl -F oxm -O openflow12], [1], [],
2695 [ovs-ofctl: missing command name; use --help for help
2697 AT_CHECK([ovs-ofctl -F oxm -O openflow13], [1], [],
2698 [ovs-ofctl: missing command name; use --help for help
2702 AT_SETUP([ovs-ofctl ofp-parse])
2703 # Test the echo request/reply messages (0 payload).
2704 AT_CHECK([printf '\1\2\0\10\0\0\0\0\1\3\0\10\0\0\0\0' > binary_ofp_msg])
2705 AT_CHECK([ovs-ofctl ofp-parse binary_ofp_msg], [0], [dnl
2706 OFPT_ECHO_REQUEST (xid=0x0): 0 bytes of payload
2707 OFPT_ECHO_REPLY (xid=0x0): 0 bytes of payload
2710 # Test the hello (xid:1 3-byte payload).
2711 AT_CHECK([printf '\1\0\0\13\0\0\0\1\101\102\103' > binary_ofp_msg])
2712 AT_CHECK([ovs-ofctl ofp-parse - < binary_ofp_msg], [0], [dnl
2713 OFPT_HELLO (xid=0x1):
2714 version bitmap: 0x01
2715 unknown data in hello:
2716 00000000 01 00 00 0b 00 00 00 01-41 42 43 |........ABC |
2720 AT_SETUP([tcp flags - filtering])
2721 OVS_VSWITCHD_START([add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 \
2722 -- add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2])
2723 AT_DATA([flows.txt], [dnl
2724 in_port=1,tcp,tp_dst=80,tcp_flags=+syn-rst-ack-fin,action=2 # Allow outbound web traffic bare-SYN
2725 in_port=1,tcp,tp_dst=80,tcp_flags=+ack,action=2 # Allow outbound web traffic with ACK bit
2726 in_port=1,tcp,tp_dst=80,tcp_flags=+rst,action=2 # Allow outbound web traffic with RST bit
2727 in_port=2,tcp,tp_src=80,tcp_flags=+ack,action=1 # Allow inbound web traffic with ACK bit
2728 in_port=2,tcp,tp_src=80,tcp_flags=+rst,action=1 # Allow inbound web traffic with RST bit
2729 priority=0,in_port=1,action=drop # Default drop outbound
2730 priority=0,in_port=2,action=drop # Default drop inbound
2733 AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
2735 AT_CHECK([ovs-ofctl add-flow br0 "tcp,tcp_flags=+ack-ack,action="], [1], [],
2736 [ovs-ofctl: ack: Each TCP flag can be specified only once
2739 AT_CHECK([ovs-appctl dpif/show | tail -n +4], [0], [dnl
2744 dnl Outbound web traffic with bare-SYN
2745 AT_CHECK([ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=80),tcp_flags(0x002)'], [0], [stdout])
2746 AT_CHECK([tail -1 stdout], [0],
2747 [Datapath actions: 2
2750 dnl Outbopund web traffic with ACK bit
2751 AT_CHECK([ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=80),tcp_flags(0x110)'], [0], [stdout])
2752 AT_CHECK([tail -1 stdout], [0],
2753 [Datapath actions: 2
2756 dnl Outbound web traffic with RST bit
2757 AT_CHECK([ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=80),tcp_flags(0x104)'], [0], [stdout])
2758 AT_CHECK([tail -1 stdout], [0],
2759 [Datapath actions: 2
2762 dnl Inbound web traffic with ACK bit
2763 AT_CHECK([ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=6,tos=0,ttl=64,frag=no),tcp(src=80,dst=8),tcp_flags(0x010)'], [0], [stdout])
2764 AT_CHECK([tail -1 stdout], [0],
2765 [Datapath actions: 1
2768 dnl Inbound web traffic with RST bit
2769 AT_CHECK([ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=6,tos=0,ttl=64,frag=no),tcp(src=80,dst=8),tcp_flags(0x014)'], [0], [stdout])
2770 AT_CHECK([tail -1 stdout], [0],
2771 [Datapath actions: 1
2774 dnl Inbound web traffic with SYN bit without ACK or RST bits
2775 AT_CHECK([ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=6,tos=0,ttl=64,frag=no),tcp(src=80,dst=8),tcp_flags(0xfeb)'], [0], [stdout])
2776 AT_CHECK([tail -1 stdout], [0],
2777 [Datapath actions: drop
2783 dnl Check importance parameter added in OF1.4.
2784 dnl It validates whether importance set via add-flow via OpenFlow1.4+ gets
2785 dnl set or not by validating it againt the dump-flows output via OpenFlow1.4+
2786 dnl If add-flow or dump-flows is used with later version of OpenFlow prior to 1.4+
2787 dnl then the importance will be considered zero whether provided as an argument.
2789 AT_SETUP([ovs-ofctl rule with importance])
2791 dnl Flow with importance parameter added via OF1.4+ and later version
2792 AT_CHECK([ovs-ofctl -O OpenFlow14 add-flow br0 priority=21,importance=21,actions=normal])
2793 AT_CHECK([ovs-ofctl add-flow br0 priority=22,importance=22,actions=normal])
2795 dnl Importance parameter will only be visible of flows that are added via OF1.4+ if dumped via OF1.4+
2796 AT_CHECK([ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip | sed '/ST_FLOW reply/d' | sort], [0], [dnl
2797 importance=21, priority=21 actions=NORMAL
2798 priority=22 actions=NORMAL
2801 dnl Importance parameter will not be visible if flow is dumped with previous version prior to OF1.4+ whether added via OF1.4+
2802 AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip | sed '/ST_FLOW reply/d' | sort], [0], [dnl
2803 priority=21 actions=NORMAL
2804 priority=22 actions=NORMAL
2811 dnl Importance parameter added in OF1.4.
2812 dnl This validates whether flows with importance
2813 dnl parameter are getting replaced with "replace-flows" or
2814 dnl not by validating dump-flows output after replace with the expected output.
2816 AT_SETUP([ovs-ofctl replace-flows with importance])
2819 dnl Add flows to br0 with importance via OF1.4+. For more details refer "ovs-ofctl rule with importance" test case.
2820 for i in 1 2 3 4 5 6 7 8; do echo "dl_vlan=$i,importance=$i,actions=drop"; done > add-flows.txt
2821 AT_CHECK([ovs-ofctl -O OpenFlow14 add-flows br0 add-flows.txt])
2823 dnl Replace some flows in the bridge.
2824 for i in 1 3 5 7; do echo "dl_vlan=$i,importance=`expr $i + 10`,actions=drop"; done > replace-flows.txt
2825 AT_CHECK([ovs-ofctl -O OpenFlow14 replace-flows br0 replace-flows.txt])
2827 dnl Dump them and compare the dump flows output against the expected output.
2828 for i in 1 2 3 4 5 6 7 8; do if [[ `expr $i % 2` -eq 1 ]]; then importance=`expr $i + 10`; else importance=$i; fi; echo " importance=$importance, dl_vlan=$i actions=drop"; done | sort > expout
2829 AT_CHECK([ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip | sed '/OFPST_FLOW/d' | sort],
2835 AT_SETUP([ovs-ofctl replace-flows with --bundle])
2838 AT_CHECK([ovs-appctl vlog/set vconn:dbg])
2840 dnl Add flows to br0 with importance via OF1.4+, using an OF1.4+ bundle. For more details refer "ovs-ofctl rule with importance" test case.
2841 for i in 1 2 3 4 5 6 7 8; do echo "dl_vlan=$i,importance=$i,actions=drop"; done > add-flows.txt
2842 AT_CHECK([ovs-ofctl --bundle add-flows br0 add-flows.txt])
2844 dnl Replace some flows in the bridge.
2845 for i in 1 3 5 7; do echo "dl_vlan=$i,importance=`expr $i + 10`,actions=drop"; done > replace-flows.txt
2846 AT_CHECK([ovs-ofctl --bundle replace-flows br0 replace-flows.txt])
2848 dnl Dump them and compare the dump flows output against the expected output.
2849 for i in 1 2 3 4 5 6 7 8; do if [[ `expr $i % 2` -eq 1 ]]; then importance=`expr $i + 10`; else importance=$i; fi; echo " importance=$importance, dl_vlan=$i actions=drop"; done | sort > expout
2850 AT_CHECK([ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip | sed '/OFPST_FLOW/d' | sort],
2853 dnl Check logs for OpenFlow trace
2855 OVS_WAIT_UNTIL([cat ovs-vswitchd.log | vconn_windows_sub | test `grep -- "|vconn|DBG|unix: sent (Success): OFPST_FLOW reply" | wc -l` -ge 2])
2856 # AT_CHECK([sed -n "s/^.*\(|vconn|DBG|.*xid=.*:\).*$/\1/p" ovs-vswitchd.log], [0], [dnl
2857 AT_CHECK([print_vconn_debug | vconn_windows_sub | ofctl_strip], [0], [dnl
2858 vconn|DBG|unix: sent (Success): OFPT_HELLO (OF1.5):
2859 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06
2860 vconn|DBG|unix: received: OFPT_HELLO (OF1.4):
2861 version bitmap: 0x01, 0x05
2862 vconn|DBG|unix: negotiated OpenFlow version 0x05 (we support version 0x06 and earlier, peer supports versions 0x01, 0x05)
2863 vconn|DBG|unix: received: OFPT_BUNDLE_CONTROL (OF1.4):
2864 bundle_id=0 type=OPEN_REQUEST flags=atomic ordered
2865 vconn|DBG|unix: sent (Success): OFPT_BUNDLE_CONTROL (OF1.4):
2866 bundle_id=0 type=OPEN_REPLY flags=0
2867 vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
2868 bundle_id=0 flags=atomic ordered
2869 OFPT_FLOW_MOD (OF1.4): ADD dl_vlan=1 importance:1 actions=drop
2870 vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
2871 bundle_id=0 flags=atomic ordered
2872 OFPT_FLOW_MOD (OF1.4): ADD dl_vlan=2 importance:2 actions=drop
2873 vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
2874 bundle_id=0 flags=atomic ordered
2875 OFPT_FLOW_MOD (OF1.4): ADD dl_vlan=3 importance:3 actions=drop
2876 vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
2877 bundle_id=0 flags=atomic ordered
2878 OFPT_FLOW_MOD (OF1.4): ADD dl_vlan=4 importance:4 actions=drop
2879 vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
2880 bundle_id=0 flags=atomic ordered
2881 OFPT_FLOW_MOD (OF1.4): ADD dl_vlan=5 importance:5 actions=drop
2882 vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
2883 bundle_id=0 flags=atomic ordered
2884 OFPT_FLOW_MOD (OF1.4): ADD dl_vlan=6 importance:6 actions=drop
2885 vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
2886 bundle_id=0 flags=atomic ordered
2887 OFPT_FLOW_MOD (OF1.4): ADD dl_vlan=7 importance:7 actions=drop
2888 vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
2889 bundle_id=0 flags=atomic ordered
2890 OFPT_FLOW_MOD (OF1.4): ADD dl_vlan=8 importance:8 actions=drop
2891 vconn|DBG|unix: received: OFPT_BUNDLE_CONTROL (OF1.4):
2892 bundle_id=0 type=COMMIT_REQUEST flags=atomic ordered
2893 vconn|DBG|unix: sent (Success): OFPT_BUNDLE_CONTROL (OF1.4):
2894 bundle_id=0 type=COMMIT_REPLY flags=0
2895 vconn|DBG|unix: sent (Success): OFPT_HELLO (OF1.5):
2896 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06
2897 vconn|DBG|unix: received: OFPT_HELLO (OF1.4):
2898 version bitmap: 0x01, 0x05
2899 vconn|DBG|unix: negotiated OpenFlow version 0x05 (we support version 0x06 and earlier, peer supports versions 0x01, 0x05)
2900 vconn|DBG|unix: received: OFPST_FLOW request (OF1.4):
2901 vconn|DBG|unix: sent (Success): OFPST_FLOW reply (OF1.4):
2902 vconn|DBG|unix: received: OFPT_BUNDLE_CONTROL (OF1.4):
2903 bundle_id=0 type=OPEN_REQUEST flags=atomic ordered
2904 vconn|DBG|unix: sent (Success): OFPT_BUNDLE_CONTROL (OF1.4):
2905 bundle_id=0 type=OPEN_REPLY flags=0
2906 vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
2907 bundle_id=0 flags=atomic ordered
2908 OFPT_FLOW_MOD (OF1.4): ADD dl_vlan=1 importance:11 actions=drop
2909 vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
2910 bundle_id=0 flags=atomic ordered
2911 OFPT_FLOW_MOD (OF1.4): ADD dl_vlan=3 importance:13 actions=drop
2912 vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
2913 bundle_id=0 flags=atomic ordered
2914 OFPT_FLOW_MOD (OF1.4): ADD dl_vlan=5 importance:15 actions=drop
2915 vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
2916 bundle_id=0 flags=atomic ordered
2917 OFPT_FLOW_MOD (OF1.4): ADD dl_vlan=7 importance:17 actions=drop
2918 vconn|DBG|unix: received: OFPT_BUNDLE_CONTROL (OF1.4):
2919 bundle_id=0 type=COMMIT_REQUEST flags=atomic ordered
2920 vconn|DBG|unix: sent (Success): OFPT_BUNDLE_CONTROL (OF1.4):
2921 bundle_id=0 type=COMMIT_REPLY flags=0
2922 vconn|DBG|unix: sent (Success): OFPT_HELLO (OF1.5):
2923 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06
2924 vconn|DBG|unix: received: OFPT_HELLO (OF1.4):
2925 version bitmap: 0x05
2926 vconn|DBG|unix: negotiated OpenFlow version 0x05 (we support version 0x06 and earlier, peer supports version 0x05)
2927 vconn|DBG|unix: received: OFPST_FLOW request (OF1.4):
2928 vconn|DBG|unix: sent (Success): OFPST_FLOW reply (OF1.4):
2929 importance=2, dl_vlan=2 actions=drop
2930 importance=4, dl_vlan=4 actions=drop
2931 importance=6, dl_vlan=6 actions=drop
2932 importance=8, dl_vlan=8 actions=drop
2933 importance=11, dl_vlan=1 actions=drop
2934 importance=13, dl_vlan=3 actions=drop
2935 importance=15, dl_vlan=5 actions=drop
2936 importance=17, dl_vlan=7 actions=drop