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' \
126 'ct_zone=0 NXM,OXM' \
131 echo "### test case: '$1' should have usable protocols '$2'"
132 if test "$2" = none; then
133 AT_CHECK([ovs-ofctl parse-flow "$1,actions=drop"], [1],
136 [ovs-ofctl: actions are invalid with specified match (OFPBAC_MATCH_INCONSISTENT)
139 AT_CHECK_UNQUOTED([ovs-ofctl parse-flow "$1,actions=drop" | sed 1q], [0],
140 [usable protocols: $2
146 AT_SETUP([ovs-ofctl parse-flows (OpenFlow 1.0)])
147 AT_DATA([flows.txt], [[
149 tcp,tp_src=123,actions=flood
150 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
151 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
152 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
153 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
154 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
155 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
156 ip,actions=set_field:10.4.3.77->ip_src
159 in_port=0 actions=resubmit:0
160 actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
163 AT_CHECK([ovs-ofctl parse-flows flows.txt
165 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
166 [[usable protocols: any
167 chosen protocol: OpenFlow10-table_id
168 OFPT_FLOW_MOD: ADD tcp,tp_src=123 actions=FLOOD
169 OFPT_FLOW_MOD: ADD in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
170 OFPT_FLOW_MOD: ADD udp,dl_vlan_pcp=7 idle:5 actions=strip_vlan,output:0
171 OFPT_FLOW_MOD: ADD tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
172 OFPT_FLOW_MOD: ADD udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
173 OFPT_FLOW_MOD: ADD priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
174 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
175 OFPT_FLOW_MOD: ADD ip actions=mod_nw_src:10.4.3.77
176 OFPT_FLOW_MOD: ADD sctp actions=drop
177 OFPT_FLOW_MOD: ADD sctp actions=drop
178 OFPT_FLOW_MOD: ADD in_port=0 actions=resubmit:0
179 OFPT_FLOW_MOD: ADD actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
183 AT_SETUP([ovs-ofctl parse-flows (OpenFlow 1.1)])
184 AT_DATA([flows.txt], [[
186 tcp,tp_src=123,actions=flood
187 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
188 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
189 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
190 udp,nw_src=192.168.0.3,tp_dst=53 actions=mod_nw_ecn:2,output:1
191 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
192 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
193 ip,actions=mod_nw_ttl:1,set_field:10.4.3.77->ip_src
196 in_port=0 actions=resubmit:0
197 actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
200 AT_CHECK([ovs-ofctl --protocols OpenFlow11 parse-flows flows.txt
202 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
203 [[usable protocols: any
204 chosen protocol: OpenFlow11
205 OFPT_FLOW_MOD (OF1.1): ADD tcp,tp_src=123 actions=FLOOD
206 OFPT_FLOW_MOD (OF1.1): ADD in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
207 OFPT_FLOW_MOD (OF1.1): ADD udp,dl_vlan_pcp=7 idle:5 actions=pop_vlan,output:0
208 OFPT_FLOW_MOD (OF1.1): ADD tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
209 OFPT_FLOW_MOD (OF1.1): ADD udp,nw_src=192.168.0.3,tp_dst=53 actions=mod_nw_ecn:2,output:1
210 OFPT_FLOW_MOD (OF1.1): ADD priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
211 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
212 OFPT_FLOW_MOD (OF1.1): ADD ip actions=mod_nw_ttl:1,mod_nw_src:10.4.3.77
213 OFPT_FLOW_MOD (OF1.1): ADD sctp actions=drop
214 OFPT_FLOW_MOD (OF1.1): ADD sctp actions=drop
215 OFPT_FLOW_MOD (OF1.1): ADD in_port=0 actions=resubmit:0
216 OFPT_FLOW_MOD (OF1.1): ADD actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
220 AT_SETUP([ovs-ofctl parse-flows (OpenFlow 1.2)])
221 AT_DATA([flows.txt], [[
223 tcp,tp_src=123,actions=flood
224 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=mod_vlan_vid:7,mod_vlan_pcp:2
225 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
226 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
227 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
228 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
229 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
230 ipv6,actions=set_field:fe80:0123:4567:890a:a6ba:dbff:fefe:59fa->ipv6_src
231 sctp actions=set_field:3334->sctp_src
232 sctp actions=set_field:4445->sctp_dst
233 tcp actions=mod_tp_dst:1234
234 udp actions=mod_tp_src:1111
235 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
236 in_port=0 actions=mod_dl_src:11:22:33:44:55:66,mod_dl_dst:10:20:30:40:50:60
237 in_port=0 actions=resubmit:0
238 actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
241 AT_CHECK([ovs-ofctl --protocols OpenFlow12 parse-flows flows.txt
243 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
244 [[usable protocols: NXM,OXM
245 chosen protocol: OXM-OpenFlow12
246 OFPT_FLOW_MOD (OF1.2): ADD tcp,tp_src=123 actions=FLOOD
247 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
248 OFPT_FLOW_MOD (OF1.2): ADD udp,dl_vlan_pcp=7 idle:5 actions=pop_vlan,output:0
249 OFPT_FLOW_MOD (OF1.2): ADD tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
250 OFPT_FLOW_MOD (OF1.2): ADD udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
251 OFPT_FLOW_MOD (OF1.2): ADD priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
252 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
253 OFPT_FLOW_MOD (OF1.2): ADD ipv6 actions=set_field:fe80:123:4567:890a:a6ba:dbff:fefe:59fa->ipv6_src
254 OFPT_FLOW_MOD (OF1.2): ADD sctp actions=set_field:3334->sctp_src
255 OFPT_FLOW_MOD (OF1.2): ADD sctp actions=set_field:4445->sctp_dst
256 OFPT_FLOW_MOD (OF1.2): ADD tcp actions=set_field:1234->tcp_dst
257 OFPT_FLOW_MOD (OF1.2): ADD udp actions=set_field:1111->udp_src
258 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
259 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
260 OFPT_FLOW_MOD (OF1.2): ADD in_port=0 actions=resubmit:0
261 OFPT_FLOW_MOD (OF1.2): ADD actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
265 AT_SETUP([ovs-ofctl parse-flow with invalid mask])
270 'eth_type 0x1234/0x1' \
272 'dl_vlan_pcp 6/0x1' \
274 'mpls mpls_label 5/0x1' \
275 'mpls mpls_tc 1/0x1' \
276 'mpls mpls_bos 1/0x1' \
278 'ipv6 nw_proto 1/1' \
279 'ip nw_tos 0xf0/0xf0' \
280 'ipv6 nw_tos 0xf0/0xf0' \
281 'ip ip_dscp 0x3c/0xf0' \
282 'ipv6 ip_dscp 0x3c/0xf0' \
288 'icmp icmp_type 1/1' \
289 'icmp icmp_code 2/1' \
290 'icmp6 icmpv6_code 2/1'
294 prereq=$1, field=$2 value=$3
296 prereq= field=$1 value=$2
298 AT_CHECK_UNQUOTED([ovs-ofctl parse-flow "$prereq$field=$value,actions=drop"], [1], [],
299 [ovs-ofctl: $value: invalid mask for field $field
304 AT_SETUP([ovs-ofctl action inconsistency (OpenFlow 1.1)])
305 AT_CHECK([ovs-ofctl --protocols OpenFlow11 add-flow br0 'ip actions=mod_tp_dst:1234'
306 ], [1], [stdout], [ovs-ofctl: none of the usable flow formats (OpenFlow10,NXM) is among the allowed flow formats (OpenFlow11)
310 AT_SETUP([ovs-ofctl parse-flows (skb_priority)])
311 AT_DATA([flows.txt], [[
312 skb_priority=0x12341234,tcp,tp_src=123,actions=flood
315 AT_CHECK([ovs-ofctl parse-flows flows.txt
322 AT_SETUP([ovs-ofctl parse-flows (NXM)])
323 AT_DATA([flows.txt], [[
325 tcp,tp_src=123,actions=flood
326 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
327 pkt_mark=0xbb,actions=set_field:0xaa->pkt_mark
328 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
329 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
330 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
331 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
332 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
333 tcp,tp_src=0x1230/0xfff0,tun_id=0x1234,cookie=0x5678,actions=flood
334 actions=set_tunnel:0x1234,set_tunnel64:0x9876,set_tunnel:0x123456789
335 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])
337 tun_id=0x1234000056780000/0xffff0000ffff0000,actions=drop
338 metadata=0x1234ffff5678ffff/0xffff0000ffff0000,actions=drop
339 actions=bundle(eth_src,50,active_backup,ofport,slaves:1)
340 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:2,3)
341 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:)
342 actions=output:1,bundle(eth_src,0,hrw,ofport,slaves:1),output:2
343 actions=bundle_load(eth_src,50,active_backup,ofport,NXM_NX_REG0[],slaves:1)
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..15],slaves:[2,3])
346 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..30],slaves:)
347 actions=output:1,bundle_load(eth_src,0,hrw,ofport,NXM_NX_REG0[16..31],slaves:1),output:2
348 actions=resubmit:1,resubmit(2),resubmit(,3),resubmit(2,3)
349 send_flow_rem,actions=output:1,output:NXM_NX_REG0[],output:2,output:NXM_NX_REG1[16..31],output:3
350 check_overlap,actions=output:1,exit,output:2
351 tcp,actions=fin_timeout(idle_timeout=5,hard_timeout=15)
352 actions=controller(max_len=123,reason=invalid_ttl,id=555)
353 actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
354 ip,actions=ct(commit,zone=5)
355 ip,actions=ct(commit,exec(load(1->NXM_NX_CT_MARK[])))
358 AT_CHECK([ovs-ofctl parse-flows flows.txt
360 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
361 [[usable protocols: OXM,NXM+table_id
362 chosen protocol: NXM+table_id
363 NXT_FLOW_MOD: ADD table:255 tcp,tp_src=123 actions=FLOOD
364 NXT_FLOW_MOD: ADD table:255 in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
365 NXT_FLOW_MOD: ADD table:255 pkt_mark=0xbb actions=load:0xaa->NXM_NX_PKT_MARK[]
366 NXT_FLOW_MOD: ADD table:255 udp,dl_vlan_pcp=7 idle:5 actions=strip_vlan,output:0
367 NXT_FLOW_MOD: ADD table:255 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
368 NXT_FLOW_MOD: ADD table:255 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
369 NXT_FLOW_MOD: ADD table:255 priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
370 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
371 NXT_FLOW_MOD: ADD table:255 tcp,tun_id=0x1234,tp_src=0x1230/0xfff0 cookie:0x5678 actions=FLOOD
372 NXT_FLOW_MOD: ADD table:255 actions=set_tunnel:0x1234,set_tunnel64:0x9876,set_tunnel64:0x123456789
373 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])
374 NXT_FLOW_MOD: ADD table:1 actions=drop
375 NXT_FLOW_MOD: ADD table:255 tun_id=0x1234000056780000/0xffff0000ffff0000 actions=drop
376 NXT_FLOW_MOD: ADD table:255 metadata=0x1234000056780000/0xffff0000ffff0000 actions=drop
377 NXT_FLOW_MOD: ADD table:255 actions=bundle(eth_src,50,active_backup,ofport,slaves:1)
378 NXT_FLOW_MOD: ADD table:255 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:2,3)
379 NXT_FLOW_MOD: ADD table:255 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:)
380 NXT_FLOW_MOD: ADD table:255 actions=output:1,bundle(eth_src,0,hrw,ofport,slaves:1),output:2
381 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(eth_src,50,active_backup,ofport,NXM_NX_REG0[],slaves:1)
382 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:2,3)
383 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:2,3)
384 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..30],slaves:)
385 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
386 NXT_FLOW_MOD: ADD table:255 actions=resubmit:1,resubmit:2,resubmit(,3),resubmit(2,3)
387 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
388 NXT_FLOW_MOD: ADD table:255 check_overlap actions=output:1,exit,output:2
389 NXT_FLOW_MOD: ADD table:255 tcp actions=fin_timeout(idle_timeout=5,hard_timeout=15)
390 NXT_FLOW_MOD: ADD table:255 actions=controller(reason=invalid_ttl,max_len=123,id=555)
391 NXT_FLOW_MOD: ADD table:255 actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
392 NXT_FLOW_MOD: ADD table:255 ip actions=ct(commit,zone=5)
393 NXT_FLOW_MOD: ADD table:255 ip actions=ct(commit,exec(load:0x1->NXM_NX_CT_MARK[]))
397 AT_SETUP([ovs-ofctl -F nxm parse-flows])
398 AT_DATA([flows.txt], [
400 tcp,tp_src=123,actions=flood
401 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
402 arp,dl_src=00:0A:E4:25:6B:B0,arp_sha=00:0A:E4:25:6B:B0 actions=drop
403 ipv6,ipv6_label=0x12345 actions=2
404 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=3
405 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5/64 actions=4
406 ipv6,ipv6_dst=2001:db8:3c4d:1:2:3:4:5/127 actions=5
407 tcp6,ipv6_src=2001:db8:3c4d:1::1,tp_dst=80 actions=drop
408 udp6,ipv6_src=2001:db8:3c4d:1::3,tp_dst=53 actions=drop
409 in_port=3 icmp6,ipv6_src=2001:db8:3c4d:1::1,icmp_type=134 actions=drop
410 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
411 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
412 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
413 icmp6,icmp_type=135,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571 actions=drop
414 icmp6,icmp_type=135,nd_target=FEC0::1234:F045:8FFF:1111:FE4F:0571/112 actions=drop
415 icmp6,icmp_type=135,nd_sll=00:0A:E4:25:6B:B0 actions=drop
416 icmp6,icmp_type=136,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571,nd_tll=00:0A:E4:25:6B:B1 actions=drop
417 icmp6,icmp_type=136,nd_target=FEC0::1234:F045:8FFF:1111:FE00:0000/96,nd_tll=00:0A:E4:25:6B:B1 actions=drop
418 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
419 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
420 tun_id=0x1234,cookie=0x5678,actions=flood
422 tun_id=0x1234000056780000/0xffff0000ffff0000,actions=drop
423 dl_dst=01:00:00:00:00:00/01:00:00:00:00:00,actions=drop
424 dl_dst=00:00:00:00:00:00/01:00:00:00:00:00,actions=drop
425 dl_dst=aa:bb:cc:dd:ee:ff/fe:ff:ff:ff:ff:ff,actions=drop
426 dl_dst=aa:bb:cc:dd:ee:ff/00:00:00:00:00:00,actions=drop
427 actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
428 ip,actions=ct(commit,zone=5)
429 ip,actions=ct(commit,exec(load(1->NXM_NX_CT_MARK[[]])))
431 AT_CHECK([ovs-ofctl -F nxm parse-flows flows.txt], [0], [stdout])
432 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0], [dnl
433 usable protocols: NXM,OXM
434 chosen protocol: NXM-table_id
435 NXT_FLOW_MOD: ADD tcp,tp_src=123 actions=FLOOD
436 NXT_FLOW_MOD: ADD in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
437 NXT_FLOW_MOD: ADD arp,dl_src=00:0a:e4:25:6b:b0,arp_sha=00:0a:e4:25:6b:b0 actions=drop
438 NXT_FLOW_MOD: ADD ipv6,ipv6_label=0x12345 actions=output:2
439 NXT_FLOW_MOD: ADD ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=output:3
440 NXT_FLOW_MOD: ADD ipv6,ipv6_src=2001:db8:3c4d:1::/64 actions=output:4
441 NXT_FLOW_MOD: ADD ipv6,ipv6_dst=2001:db8:3c4d:1:2:3:4:4/127 actions=output:5
442 NXT_FLOW_MOD: ADD tcp6,ipv6_src=2001:db8:3c4d:1::1,tp_dst=80 actions=drop
443 NXT_FLOW_MOD: ADD udp6,ipv6_src=2001:db8:3c4d:1::3,tp_dst=53 actions=drop
444 NXT_FLOW_MOD: ADD icmp6,in_port=3,ipv6_src=2001:db8:3c4d:1::1,icmp_type=134 actions=drop
445 NXT_FLOW_MOD: ADD udp,dl_vlan_pcp=7 idle:5 actions=strip_vlan,output:0
446 NXT_FLOW_MOD: ADD tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
447 NXT_FLOW_MOD: ADD udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
448 NXT_FLOW_MOD: ADD icmp6,icmp_type=135,nd_target=fec0:0:1234:f045:8fff:1111:fe4e:571 actions=drop
449 NXT_FLOW_MOD: ADD icmp6,icmp_type=135,nd_target=fec0:0:1234:f045:8fff:1111:fe4f:0/112 actions=drop
450 NXT_FLOW_MOD: ADD icmp6,icmp_type=135,nd_sll=00:0a:e4:25:6b:b0 actions=drop
451 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
452 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
453 NXT_FLOW_MOD: ADD priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
454 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
455 NXT_FLOW_MOD: ADD tun_id=0x1234 cookie:0x5678 actions=FLOOD
456 NXT_FLOW_MOD: ADD actions=drop
457 NXT_FLOW_MOD: ADD tun_id=0x1234000056780000/0xffff0000ffff0000 actions=drop
458 NXT_FLOW_MOD: ADD dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=drop
459 NXT_FLOW_MOD: ADD dl_dst=00:00:00:00:00:00/01:00:00:00:00:00 actions=drop
460 NXT_FLOW_MOD: ADD dl_dst=aa:bb:cc:dd:ee:ff/fe:ff:ff:ff:ff:ff actions=drop
461 NXT_FLOW_MOD: ADD actions=drop
462 NXT_FLOW_MOD: ADD actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
463 NXT_FLOW_MOD: ADD ip actions=ct(commit,zone=5)
464 NXT_FLOW_MOD: ADD ip actions=ct(commit,exec(load:0x1->NXM_NX_CT_MARK[[]]))
468 AT_SETUP([ovs-ofctl -F nxm -mmm parse-flows])
469 AT_DATA([flows.txt], [[
471 tcp,tp_src=123,actions=flood
472 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
473 arp,dl_src=00:0A:E4:25:6B:B0,arp_sha=00:0A:E4:25:6B:B0 actions=drop
474 ipv6,ipv6_label=0x12345 actions=2
475 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=3
476 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5/64 actions=4
477 ipv6,ipv6_dst=2001:db8:3c4d:1:2:3:4:5/127 actions=5
478 tcp6,ipv6_src=2001:db8:3c4d:1::1,tp_dst=80 actions=drop
479 udp6,ipv6_src=2001:db8:3c4d:1::3,tp_dst=53 actions=drop
480 sctp6,ipv6_src=2001:db8:3c4d:1::5,tp_dst=309 actions=drop
481 in_port=3 icmp6,ipv6_src=2001:db8:3c4d:1::1,icmp_type=134 actions=drop
482 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
483 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
484 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
485 sctp,nw_src=192.168.0.3,tp_dst=309 actions=pop_queue,output:1
486 icmp6,icmp_type=135,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571 actions=drop
487 icmp6,icmp_type=135,nd_sll=00:0A:E4:25:6B:B0 actions=drop
488 icmp6,icmp_type=136,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571,nd_tll=00:0A:E4:25:6B:B1 actions=drop
489 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
490 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
491 tun_id=0x1234,cookie=0x5678,actions=flood
493 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[]
494 actions=move:OXM_OF_ETH_DST[]->OXM_OF_ETH_SRC[]
495 actions=push:NXM_NX_REG0[0..31],pop:NXM_NX_REG0[]
496 vlan_tci=0x1123/0x1fff,actions=drop
497 actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
498 ip,actions=ct(commit,zone=5)
499 ip,actions=ct(commit,exec(load(1->NXM_NX_CT_MARK[])))
501 AT_CHECK([ovs-ofctl -F nxm -mmm parse-flows flows.txt], [0], [stdout], [stderr])
502 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
503 [[usable protocols: NXM,OXM
504 chosen protocol: NXM-table_id
505 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC(007b) actions=FLOOD
506 NXT_FLOW_MOD: ADD NXM_OF_IN_PORT(fffe), NXM_OF_ETH_SRC(000ae4256bb0), NXM_OF_VLAN_TCI_W(1009/1fff) actions=drop
507 NXT_FLOW_MOD: ADD NXM_OF_ETH_SRC(000ae4256bb0), NXM_OF_ETH_TYPE(0806), NXM_NX_ARP_SHA(000ae4256bb0) actions=drop
508 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_LABEL(00012345) actions=output:2
509 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005) actions=output:3
510 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000) actions=output:4
511 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST_W(20010db83c4d00010002000300040004/fffffffffffffffffffffffffffffffe) actions=output:5
512 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
513 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
514 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
515 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
516 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
517 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
518 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
519 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
520 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
521 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
522 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
523 NXT_FLOW_MOD: ADD <any> cookie:0x123456789abcdef hard:10 pri:60000 actions=CONTROLLER:65535
524 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
525 NXT_FLOW_MOD: ADD NXM_NX_TUN_ID(0000000000001234) cookie:0x5678 actions=FLOOD
526 NXT_FLOW_MOD: ADD <any> actions=drop
527 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[]
528 NXT_FLOW_MOD: ADD <any> actions=move:NXM_OF_ETH_DST[]->NXM_OF_ETH_SRC[]
529 NXT_FLOW_MOD: ADD <any> actions=push:NXM_NX_REG0[],pop:NXM_NX_REG0[]
530 NXT_FLOW_MOD: ADD NXM_OF_VLAN_TCI_W(1123/1fff) actions=drop
531 NXT_FLOW_MOD: ADD <any> actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
532 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800) actions=ct(commit,zone=5)
533 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800) actions=ct(commit,exec(load:0x1->NXM_NX_CT_MARK[]))
537 AT_SETUP([ovs-ofctl parse-nx-match])
538 AT_KEYWORDS([nx-match])
539 AT_DATA([nx-match.txt], [dnl
547 NXM_OF_ETH_DST(0002e30f80a4)
548 NXM_OF_ETH_DST_W(010000000000/010000000000)
549 NXM_OF_ETH_DST_W(000000000000/010000000000)
550 NXM_OF_ETH_DST_W(ffffffffffff/010000000000)
551 NXM_OF_ETH_DST_W(0002e30f80a4/ffffffffffff)
552 NXM_OF_ETH_DST_W(60175619848f/000000000000)
553 NXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
554 NXM_OF_ETH_DST_W(60175619848f/5a5a5a5a5a5a)
557 NXM_OF_ETH_SRC(020898456ddb)
558 NXM_OF_ETH_SRC_W(012345abcdef/ffffff555555)
559 NXM_OF_ETH_SRC_W(020898456ddb/ffffffffffff)
560 NXM_OF_ETH_SRC_W(020898456ddb/000000000000)
563 NXM_OF_ETH_TYPE(0800)
564 NXM_OF_ETH_TYPE(0800) NXM_OF_IN_PORT(0012)
567 NXM_OF_VLAN_TCI(f009)
568 NXM_OF_VLAN_TCI(f009) NXM_OF_VLAN_TCI(f009)
569 NXM_OF_VLAN_TCI(0000) # Packets without 802.1Q header.
570 NXM_OF_VLAN_TCI(3123) # Packets with VID=123, PCP=1.
571 NXM_OF_VLAN_TCI(0123) # Does not make sense (but supported anyway)
572 NXM_OF_VLAN_TCI_W(1123/1fff) # Packets with VID=123, any PCP.
573 NXM_OF_VLAN_TCI_W(1123/ffff) # Packets with VID=123, PCP=0
574 NXM_OF_VLAN_TCI_W(1123/0000) # Packets with or without 802.1Q header
575 NXM_OF_VLAN_TCI_W(f000/f000) # Packets with any VID, PCP=7.
576 NXM_OF_VLAN_TCI_W(0000/e000) # No 802.1Q or with VID=0
579 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_TOS(f0)
580 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_TOS(41)
584 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_ECN(03)
585 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_ECN(06)
589 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(01)
590 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(05)
594 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_TTL(80)
595 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_TTL(ff)
599 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC(ac100014)
600 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC_W(C0a80000/FFFF0000)
601 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC_W(C0a80000/5a5a5a5a)
602 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC_W(C0a80000/ffffffff)
603 NXM_OF_ETH_TYPE(0806) NXM_OF_IP_SRC(ac100014)
604 NXM_OF_IP_SRC_W(C0D80000/FFFF0000)
607 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST(ac100014)
608 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST_W(C0a88012/FFFF0000)
609 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST_W(C0a80000/5a5a5a5a)
610 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST_W(C0a80000/ffffffff)
611 NXM_OF_IP_DST(ac100014)
612 NXM_OF_ETH_TYPE(0806) NXM_OF_IP_DST_W(C0D80000/FFFF0000)
615 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_SRC(4231)
616 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_SRC_W(5050/F0F0)
617 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_SRC_W(5050/ffff)
618 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(07) NXM_OF_TCP_SRC(4231)
620 # TCP destination port
621 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_DST(4231)
622 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_DST_W(FDE0/FFF0)
623 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_DST_W(FDE0/ffff)
624 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(07) NXM_OF_TCP_DST(4231)
627 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_NX_TCP_FLAGS(0131)
628 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_NX_TCP_FLAGS_W(00F0/0FF0)
629 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_NX_TCP_FLAGS_W(01E2/ffff)
630 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(07) NXM_NX_TCP_FLAGS(0fff)
633 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_SRC(8732)
634 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_SRC_W(0132/01FF)
635 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_SRC_W(0132/ffff)
636 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_UDP_SRC(7823)
638 # UDP destination port
639 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_DST(1782)
640 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_DST_W(5005/F00F)
641 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_DST_W(5005/FFFF)
642 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(02) NXM_OF_UDP_DST(1293)
645 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(01) NXM_OF_ICMP_TYPE(12)
646 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(00) NXM_OF_ICMP_TYPE(10)
649 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(01) NXM_OF_ICMP_CODE(12)
650 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(00) NXM_OF_ICMP_CODE(10)
651 NXM_OF_ETH_TYPE(0800) NXM_OF_ICMP_CODE(10)
655 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_OP(0001)
656 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_OP(1111)
657 NXM_OF_ETH_TYPE(0000) NXM_OF_ARP_OP(0001)
659 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_OP(0001) NXM_OF_ARP_OP(0001)
661 # ARP source protocol address
662 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA(ac100014)
663 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA_W(C0a81234/FFFFFF00)
664 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA_W(C0a81234/aaaaaa00)
665 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA_W(C0a81234/ffffffff)
666 NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_SPA(ac100014)
667 NXM_OF_ARP_SPA_W(C0D80000/FFFF0000)
669 # ARP destination protocol address
670 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA(ac100014)
671 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA_W(C0a812fe/FFFFFF00)
672 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA_W(C0a81234/77777777)
673 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA_W(C0a81234/ffffffff)
674 NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_TPA(ac100014)
675 NXM_OF_ARP_TPA_W(C0D80000/FFFF0000)
677 # ARP source hardware address
678 NXM_OF_ETH_TYPE(0806) NXM_NX_ARP_SHA(0002e30f80a4)
679 NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_SHA(0002e30f80a4)
680 NXM_NX_ARP_SHA(0002e30f80a4)
682 # ARP destination hardware address
683 NXM_OF_ETH_TYPE(0806) NXM_NX_ARP_THA(0002e30f80a4)
684 NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_THA(0002e30f80a4)
685 NXM_NX_ARP_THA(0002e30f80a4)
688 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_OP(0003)
689 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_OP(1111)
690 NXM_OF_ETH_TYPE(0000) NXM_OF_ARP_OP(0003)
692 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_OP(0003) NXM_OF_ARP_OP(0003)
694 # RARP source protocol address
695 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA(ac100014)
696 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA_W(C0a81200/FFFFFF00)
697 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA_W(C0a81234/aaaaaa00)
698 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA_W(C0a81234/ffffffff)
699 NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_SPA(ac100014)
700 NXM_OF_ARP_SPA_W(C0D80000/FFFF0000)
702 # RARP destination protocol address
703 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA(ac100014)
704 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA_W(C0a81200/FFFFFF00)
705 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA_W(C0a81234/77777777)
706 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA_W(C0a81234/ffffffff)
707 NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_TPA(ac100014)
708 NXM_OF_ARP_TPA_W(C0D80000/FFFF0000)
710 # RARP source hardware address
711 NXM_OF_ETH_TYPE(8035) NXM_NX_ARP_SHA(0002e30f80a4)
712 NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_SHA(0002e30f80a4)
713 NXM_NX_ARP_SHA(0002e30f80a4)
715 # RARP destination hardware address
716 NXM_OF_ETH_TYPE(8035) NXM_NX_ARP_THA(0002e30f80a4)
717 NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_THA(0002e30f80a4)
718 NXM_NX_ARP_THA(0002e30f80a4)
721 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005)
722 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005)
723 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
724 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/5a5a5a5a5a5a5a5a0000000000000000)
725 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
726 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/00000000000000000000000000000000)
727 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffffffff000000000000)
730 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST(20010db83c4d00010002000300040005)
731 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_DST(20010db83c4d00010002000300040005)
732 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/77777777777777777777777777777777)
733 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
734 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST_W(00000000000000000000000000000000/00000000000000000000000000000000)
735 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
738 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_LABEL(1000000f)
739 NXM_NX_IPV6_LABEL(0000000f)
740 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_LABEL(0000000f)
743 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
744 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(88) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
745 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET_W(20010db83c4d00010002000300040005/0123456789abcdeffedcba9876543210)
746 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET_W(20010db83c4d00010002000300040005/ffffffffffffffffffffffffffffffff)
747 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET_W(00000000000000000000000000000000/00000000000000000000000000000000)
748 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(88) NXM_NX_ND_TARGET_W(20010db83c4d00010002000300040005/fedcba98765432100123456789abcdef)
750 # ND source hardware address
751 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)
752 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)
753 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)
754 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)
756 # ND destination hardware address
757 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)
758 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)
759 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)
760 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)
763 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(00)
764 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(01)
765 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(02)
766 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(03)
767 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(00/03)
768 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(00/fd)
769 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(00/02)
770 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(01/01)
771 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(02/02)
772 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(03/03)
773 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(03/ff)
774 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(03/00)
775 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(f3)
778 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(00)
779 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(01)
780 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(02)
781 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(03)
782 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(00/03)
783 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(00/01)
784 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(00/02)
785 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(01/01)
786 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(02/02)
787 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(03/03)
788 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(03/00)
789 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(03/ff)
790 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(f3)
793 NXM_NX_COOKIE(00000000abcdef01)
794 NXM_NX_COOKIE_W(84200000abcdef01/84200000FFFFFFFF)
795 NXM_NX_COOKIE_W(84200000abcdef01/ffffffffffffffff)
796 NXM_NX_COOKIE_W(0000000000000000/0000000000000000)
799 NXM_NX_TUN_ID(00000000abcdef01)
800 NXM_NX_TUN_ID_W(84200000abcdef01/84200000FFFFFFFF)
801 NXM_NX_TUN_ID_W(84200000abcdef01/FFFFFFFFFFFFFFFF)
802 NXM_NX_TUN_ID_W(0000000000000000/0000000000000000)
805 NXM_NX_REG0(acebdf56)
806 NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
807 NXM_NX_REG0_W(a0e0d050/ffffffff)
808 NXM_NX_REG0_W(00000000/00000000)
810 # Connection tracking fields,
811 NXM_OF_ETH_TYPE(0800) NXM_NX_CT_STATE(00000080)
812 NXM_OF_ETH_TYPE(0800) NXM_NX_CT_STATE(00001080)
813 NXM_OF_ETH_TYPE(0800) NXM_NX_CT_STATE_W(00000080/00000080)
814 NXM_OF_ETH_TYPE(0800) NXM_NX_CT_STATE_W(00000080/000000F0)
815 NXM_OF_ETH_TYPE(0800) NXM_NX_CT_ZONE(5a5a)
816 NXM_OF_ETH_TYPE(0800) NXM_NX_CT_MARK(5a5a5a5a)
817 NXM_OF_ETH_TYPE(0800) NXM_NX_CT_MARK_W(5a5a5a5a/fefefefe)
819 # dp_hash (testing experimenter OXM).
820 NXM_NX_DP_HASH(01234567)
821 NXOXM_ET_DP_HASH(01234567)
823 # Invalid field number.
826 # Invalid field numbers (experimenter OXM).
827 ffff020800002320(11112222)
828 ffff030800002320(1111/3333)
830 # Unimplemented registers.
832 # This test assumes that at least two registers, but fewer than 16,
833 # registers are implemented.
835 00010108(12345678/12345678)
837 00011f08(12345678/12345678)
839 AT_CHECK([ovs-ofctl -vPATTERN:'console:%c|%p|%m' --strict parse-nx-match < nx-match.txt], [0], [dnl
847 NXM_OF_ETH_DST(0002e30f80a4)
848 NXM_OF_ETH_DST_W(010000000000/010000000000)
849 NXM_OF_ETH_DST_W(000000000000/010000000000)
850 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
851 NXM_OF_ETH_DST(0002e30f80a4)
852 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
853 NXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
854 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
857 NXM_OF_ETH_SRC(020898456ddb)
858 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
859 NXM_OF_ETH_SRC(020898456ddb)
860 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
863 NXM_OF_ETH_TYPE(0800)
864 NXM_OF_IN_PORT(0012), NXM_OF_ETH_TYPE(0800)
867 NXM_OF_VLAN_TCI(f009)
868 nx_pull_match() returned error OFPBMC_DUP_FIELD
869 NXM_OF_VLAN_TCI(0000)
870 NXM_OF_VLAN_TCI(3123)
871 NXM_OF_VLAN_TCI(0123)
872 NXM_OF_VLAN_TCI_W(1123/1fff)
873 NXM_OF_VLAN_TCI(1123)
874 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
875 NXM_OF_VLAN_TCI_W(f000/f000)
876 NXM_OF_VLAN_TCI_W(0000/e000)
879 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_TOS(f0)
880 nx_pull_match() returned error OFPBMC_BAD_VALUE
881 nx_pull_match() returned error OFPBMC_BAD_PREREQ
884 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_ECN(03)
885 nx_pull_match() returned error OFPBMC_BAD_VALUE
886 nx_pull_match() returned error OFPBMC_BAD_PREREQ
889 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(01)
890 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(05)
891 nx_pull_match() returned error OFPBMC_BAD_PREREQ
894 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_TTL(80)
895 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_TTL(ff)
896 nx_pull_match() returned error OFPBMC_BAD_PREREQ
899 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC(ac100014)
900 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC_W(c0a80000/ffff0000)
901 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
902 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC(c0a80000)
903 nx_pull_match() returned error OFPBMC_BAD_PREREQ
904 nx_pull_match() returned error OFPBMC_BAD_PREREQ
907 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_DST(ac100014)
908 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
909 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
910 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_DST(c0a80000)
911 nx_pull_match() returned error OFPBMC_BAD_PREREQ
912 nx_pull_match() returned error OFPBMC_BAD_PREREQ
915 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC(4231)
916 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC_W(5050/f0f0)
917 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC(5050)
918 nx_pull_match() returned error OFPBMC_BAD_PREREQ
920 # TCP destination port
921 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST(4231)
922 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST_W(fde0/fff0)
923 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST(fde0)
924 nx_pull_match() returned error OFPBMC_BAD_PREREQ
927 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_NX_TCP_FLAGS(0131)
928 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_NX_TCP_FLAGS_W(00f0/0ff0)
929 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_NX_TCP_FLAGS(01e2)
930 nx_pull_match() returned error OFPBMC_BAD_PREREQ
933 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_SRC(8732)
934 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_SRC_W(0132/01ff)
935 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_SRC(0132)
936 nx_pull_match() returned error OFPBMC_BAD_PREREQ
938 # UDP destination port
939 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST(1782)
940 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST_W(5005/f00f)
941 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST(5005)
942 nx_pull_match() returned error OFPBMC_BAD_PREREQ
945 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(01), NXM_OF_ICMP_TYPE(12)
946 nx_pull_match() returned error OFPBMC_BAD_PREREQ
949 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(01), NXM_OF_ICMP_CODE(12)
950 nx_pull_match() returned error OFPBMC_BAD_PREREQ
951 nx_pull_match() returned error OFPBMC_BAD_PREREQ
952 nx_pull_match() returned error OFPBMC_BAD_PREREQ
955 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_OP(0001)
956 nx_pull_match() returned error OFPBMC_BAD_VALUE
957 nx_pull_match() returned error OFPBMC_BAD_PREREQ
958 nx_pull_match() returned error OFPBMC_BAD_PREREQ
959 nx_pull_match() returned error OFPBMC_DUP_FIELD
961 # ARP source protocol address
962 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_SPA(ac100014)
963 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
964 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
965 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_SPA(c0a81234)
966 nx_pull_match() returned error OFPBMC_BAD_PREREQ
967 nx_pull_match() returned error OFPBMC_BAD_PREREQ
969 # ARP destination protocol address
970 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_TPA(ac100014)
971 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
972 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
973 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_TPA(c0a81234)
974 nx_pull_match() returned error OFPBMC_BAD_PREREQ
975 nx_pull_match() returned error OFPBMC_BAD_PREREQ
977 # ARP source hardware address
978 NXM_OF_ETH_TYPE(0806), NXM_NX_ARP_SHA(0002e30f80a4)
979 nx_pull_match() returned error OFPBMC_BAD_PREREQ
980 nx_pull_match() returned error OFPBMC_BAD_PREREQ
982 # ARP destination hardware address
983 NXM_OF_ETH_TYPE(0806), NXM_NX_ARP_THA(0002e30f80a4)
984 nx_pull_match() returned error OFPBMC_BAD_PREREQ
985 nx_pull_match() returned error OFPBMC_BAD_PREREQ
988 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_OP(0003)
989 nx_pull_match() returned error OFPBMC_BAD_VALUE
990 nx_pull_match() returned error OFPBMC_BAD_PREREQ
991 nx_pull_match() returned error OFPBMC_BAD_PREREQ
992 nx_pull_match() returned error OFPBMC_DUP_FIELD
994 # RARP source protocol address
995 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_SPA(ac100014)
996 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_SPA_W(c0a81200/ffffff00)
997 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
998 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_SPA(c0a81234)
999 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1000 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1002 # RARP destination protocol address
1003 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_TPA(ac100014)
1004 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_TPA_W(c0a81200/ffffff00)
1005 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
1006 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_TPA(c0a81234)
1007 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1008 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1010 # RARP source hardware address
1011 NXM_OF_ETH_TYPE(8035), NXM_NX_ARP_SHA(0002e30f80a4)
1012 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1013 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1015 # RARP destination hardware address
1016 NXM_OF_ETH_TYPE(8035), NXM_NX_ARP_THA(0002e30f80a4)
1017 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1018 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1021 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005)
1022 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1023 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1024 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
1025 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010000000000000000)
1026 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
1027 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1030 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST(20010db83c4d00010002000300040005)
1031 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1032 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
1033 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST(20010db83c4d00010000000000000000)
1034 NXM_OF_ETH_TYPE(86dd)
1035 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1038 nx_pull_match() returned error OFPBMC_BAD_VALUE
1039 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1040 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_LABEL(0000000f)
1043 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87), NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
1044 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(88), NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
1045 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
1046 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87), NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
1047 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87)
1048 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
1050 # ND source hardware address
1051 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)
1052 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1053 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1054 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1056 # ND destination hardware address
1057 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)
1058 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1059 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1060 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1063 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(00)
1064 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(01)
1065 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(02)
1066 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(03)
1067 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(00)
1068 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(00/01)
1069 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(00/02)
1070 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(01/01)
1071 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(02/02)
1072 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(03)
1073 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(03)
1074 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
1075 nx_pull_match() returned error OFPBMC_BAD_VALUE
1078 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(00)
1079 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(01)
1080 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(02)
1081 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(03)
1082 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(00)
1083 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(00/01)
1084 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(00/02)
1085 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(01/01)
1086 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(02/02)
1087 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(03)
1088 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
1089 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(03)
1090 nx_pull_match() returned error OFPBMC_BAD_VALUE
1093 NXM_NX_COOKIE(00000000abcdef01)
1094 NXM_NX_COOKIE_W(84200000abcdef01/84200000ffffffff)
1095 NXM_NX_COOKIE(84200000abcdef01)
1099 NXM_NX_TUN_ID(00000000abcdef01)
1100 NXM_NX_TUN_ID_W(84200000abcdef01/84200000ffffffff)
1101 NXM_NX_TUN_ID(84200000abcdef01)
1105 NXM_NX_REG0(acebdf56)
1106 NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
1107 NXM_NX_REG0(a0e0d050)
1110 # Connection tracking fields,
1112 dnl When re-serialising, bits 16-31 are wildcarded, because current OVS userspace
1113 dnl doesn't understand (or store) those bits.
1114 NXM_OF_ETH_TYPE(0800), NXM_NX_CT_STATE_W(00000080/0000ffff)
1115 nx_pull_match() returned error OFPBMC_BAD_VALUE
1116 NXM_OF_ETH_TYPE(0800), NXM_NX_CT_STATE_W(00000080/00000080)
1117 NXM_OF_ETH_TYPE(0800), NXM_NX_CT_STATE_W(00000080/000000f0)
1118 NXM_OF_ETH_TYPE(0800), NXM_NX_CT_ZONE(5a5a)
1119 NXM_OF_ETH_TYPE(0800), NXM_NX_CT_MARK(5a5a5a5a)
1120 NXM_OF_ETH_TYPE(0800), NXM_NX_CT_MARK_W(5a5a5a5a/fefefefe)
1122 # dp_hash (testing experimenter OXM).
1123 NXM_NX_DP_HASH(01234567)
1124 NXM_NX_DP_HASH(01234567)
1126 # Invalid field number.
1127 nx_pull_match() returned error OFPBMC_BAD_FIELD
1129 # Invalid field numbers (experimenter OXM).
1130 nx_pull_match() returned error OFPBMC_BAD_FIELD
1131 nx_pull_match() returned error OFPBMC_BAD_FIELD
1133 # Unimplemented registers.
1135 # This test assumes that at least two registers, but fewer than 16,
1136 # registers are implemented.
1137 NXM_NX_REG0(12345678)
1138 NXM_NX_REG0_W(12345678/12345678)
1139 nx_pull_match() returned error OFPBMC_BAD_FIELD
1140 nx_pull_match() returned error OFPBMC_BAD_FIELD
1143 # Check that at least the first warning made it. (It's rate-limited
1144 # so a variable number could show up, especially under valgrind etc.)
1145 AT_CHECK([grep '1-bits in value' stderr | sed 1q], [0], [dnl
1146 nx_match|WARN|Rejecting NXM/OXM entry 0:0:1:1:12 with 1-bits in value for bits wildcarded by the mask.
1149 # Check that there wasn't any other stderr output.
1150 AT_CHECK([grep -v '1-bits in value' stderr], [1])
1153 AT_SETUP([ovs-ofctl parse-ofp10-match])
1154 AT_KEYWORDS([OF1.0])
1155 AT_DATA([test-data], [dnl
1157 003820fe fffe xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx xxxx xx xx xxxx dnl
1158 xxxxxxxx xxxxxxxx xxxx xxxx
1160 # dl_src=00:01:02:03:04:05
1161 003820fb xxxx 000102030405 xxxxxxxxxxxx xxxx xx xx xxxx xx xx xxxx dnl
1162 xxxxxxxx xxxxxxxx xxxx xxxx
1164 # dl_dst=10:20:30:40:50:60
1165 003820f7 xxxx xxxxxxxxxxxx 102030405060 xxxx xx xx xxxx xx xx xxxx dnl
1166 xxxxxxxx xxxxxxxx xxxx xxxx
1169 003820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx 0123 xx xx xxxx xx xx xxxx dnl
1170 xxxxxxxx xxxxxxxx xxxx xxxx
1173 002820ff xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx 05 xx xxxx xx xx xxxx dnl
1174 xxxxxxxx xxxxxxxx xxxx xxxx
1176 # dl_vlan=291,dl_vlan_pcp=4
1177 002820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx 0123 04 xx xxxx xx xx xxxx dnl
1178 xxxxxxxx xxxxxxxx xxxx xxxx
1180 dnl dl_vlan_pcp doesn't make sense when 802.1Q is not present, so
1181 dnl OVS ignores it and drops it on output.
1184 003820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx ffff xx xx xxxx xx xx xxxx dnl
1185 xxxxxxxx xxxxxxxx xxxx xxxx
1187 dnl dl_vlan_pcp doesn't make sense when 802.1Q is not present, so
1188 dnl OVS ignores it and drops it on output.
1191 002820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx ffff 05 xx xxxx xx xx xxxx dnl
1192 xxxxxxxx xxxxxxxx xxxx xxxx
1194 dnl Invalid VID and PCP discards out-of-range bits:
1195 # dl_vlan=256,dl_vlan_pcp=7
1198 002820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx f100 ff xx xxxx xx xx xxxx dnl
1199 xxxxxxxx xxxxxxxx xxxx xxxx
1202 003820ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 1234 xx xx xxxx dnl
1203 xxxxxxxx xxxxxxxx xxxx xxxx
1206 003820cf xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 05 xxxx dnl
1207 xxxxxxxx xxxxxxxx xxxx xxxx
1209 dnl Ignore nw_proto if not IP or ARP:
1210 # dl_type=0x1234,nw_proto=5
1211 # normal: 3: cf -> ef
1212 # normal: 25: 05 -> 00
1213 & ofp_util|INFO|normalization changed ofp_match, details:
1214 & ofp_util|INFO| pre: dl_type=0x1234,nw_proto=5
1215 & ofp_util|INFO|post: dl_type=0x1234
1216 003820cf xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 1234 xx 05 xxxx dnl
1217 xxxxxxxx xxxxxxxx xxxx xxxx
1220 001820ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 fc xx xxxx dnl
1221 xxxxxxxx xxxxxxxx xxxx xxxx
1223 dnl Ignore nw_tos if not IP:
1226 # normal: 1: 18 -> 38
1227 # normal: 24: 04 -> 00
1228 & ofp_util|INFO|normalization changed ofp_match, details:
1229 & ofp_util|INFO| pre: arp,nw_tos=4
1230 & ofp_util|INFO|post: arp
1231 001820ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 05 xx xxxx dnl
1232 xxxxxxxx xxxxxxxx xxxx xxxx
1234 dnl Low 2 bits of invalid TOS are forced to 0:
1237 001820ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 31 xx xxxx dnl
1238 xxxxxxxx xxxxxxxx xxxx xxxx
1241 003820cf xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx 02 xxxx dnl
1242 xxxxxxxx xxxxxxxx xxxx xxxx
1244 # ip,nw_src=192.168.128.85
1245 003800ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx xx xxxx dnl
1246 c0a88055 xxxxxxxx xxxx xxxx
1248 # ip,nw_src=192.168.128.0/24
1250 003808ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx xx xxxx dnl
1251 c0a88055 xxxxxxxx xxxx xxxx
1253 # ip,nw_dst=192.168.128.85
1254 003020ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx xx xxxx dnl
1255 xxxxxxxx c0a88055 xxxx xxxx
1257 # ip,nw_dst=192.168.128.0/24
1259 003220ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx xx xxxx dnl
1260 xxxxxxxx c0a88055 xxxx xxxx
1262 # arp,arp_spa=192.168.128.85
1263 003800ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx xx xxxx dnl
1264 c0a88055 xxxxxxxx xxxx xxxx
1266 # arp,arp_spa=192.168.128.0/24
1268 003808ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx xx xxxx dnl
1269 c0a88055 xxxxxxxx xxxx xxxx
1271 # arp,arp_tpa=192.168.128.85
1272 003020ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx xx xxxx dnl
1273 xxxxxxxx c0a88055 xxxx xxxx
1275 # arp,arp_tpa=192.168.128.0/24
1277 003220ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx xx xxxx dnl
1278 xxxxxxxx c0a88055 xxxx xxxx
1280 dnl Ignore nw_src if not IP or ARP:
1281 # dl_type=0x1234,nw_src=192.168.128.0/24
1283 # normal: 2: 08 -> 20
1284 # normal: 28: c0 -> 00
1285 # normal: 29: a8 -> 00
1286 # normal: 30: 80 -> 00
1287 & ofp_util|INFO|normalization changed ofp_match, details:
1288 & ofp_util|INFO| pre: dl_type=0x1234,nw_src=192.168.128.0/24
1289 & ofp_util|INFO|post: dl_type=0x1234
1290 003808ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 1234 xx xx xxxx dnl
1291 c0a88055 xxxxxxxx xxxx xxxx
1293 dnl Ignore nw_dst if not IP or ARP:
1294 # dl_type=0x1234,nw_dst=192.168.128.0/24
1296 # normal: 1: 32 -> 38
1297 # normal: 32: c0 -> 00
1298 # normal: 33: a8 -> 00
1299 # normal: 34: 80 -> 00
1300 & ofp_util|INFO|normalization changed ofp_match, details:
1301 & ofp_util|INFO| pre: dl_type=0x1234,nw_dst=192.168.128.0/24
1302 & ofp_util|INFO|post: dl_type=0x1234
1303 003220ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 1234 xx xx xxxx dnl
1304 xxxxxxxx c0a88055 xxxx xxxx
1307 0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 06 xxxx dnl
1308 xxxxxxxx xxxxxxxx 01bb xxxx
1311 0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 06 xxxx dnl
1312 xxxxxxxx xxxxxxxx xxxx 01bb
1315 0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 11 xxxx dnl
1316 xxxxxxxx xxxxxxxx 01bb xxxx
1319 0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 11 xxxx dnl
1320 xxxxxxxx xxxxxxxx xxxx 01bb
1323 0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 84 xxxx dnl
1324 xxxxxxxx xxxxxxxx 01bb xxxx
1327 0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 84 xxxx dnl
1328 xxxxxxxx xxxxxxxx xxxx 01bb
1331 0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 01 xxxx dnl
1332 xxxxxxxx xxxxxxxx 0005 xxxx
1335 0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 01 xxxx dnl
1336 xxxxxxxx xxxxxxxx xxxx 0008
1338 dnl Ignore tp_src if not TCP/UDP/SCTP:
1339 # ip,nw_proto=21,tp_src=443
1340 # normal: 3: 8f -> cf
1341 # normal: 36: 01 -> 00
1342 # normal: 37: bb -> 00
1343 & ofp_util|INFO|normalization changed ofp_match, details:
1344 & ofp_util|INFO| pre: ip,nw_proto=21,tp_src=443
1345 & ofp_util|INFO|post: ip,nw_proto=21
1346 0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 15 xxxx dnl
1347 xxxxxxxx xxxxxxxx 01bb xxxx
1349 dnl Ignore tp_dst if not TCP/UDP/SCTP:
1350 # ip,nw_proto=21,tp_dst=443
1351 # normal: 3: 4f -> cf
1352 # normal: 38: 01 -> 00
1353 # normal: 39: bb -> 00
1354 dnl The normalization details are suppressed here due to rate-limiting.
1355 0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 15 xxxx dnl
1356 xxxxxxxx xxxxxxxx xxxx 01bb
1359 sed '/^[[#&]]/d' < test-data > input.txt
1360 sed -n 's/^# //p; /^$/p' < test-data > expout
1361 sed -n 's/^& //p' < test-data > experr
1362 AT_CAPTURE_FILE([input.txt])
1363 AT_CAPTURE_FILE([expout])
1364 AT_CAPTURE_FILE([experr])
1366 [ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-ofp10-match < input.txt],
1367 [0], [expout], [experr])
1370 AT_SETUP([ovs-ofctl parse-ofp11-match])
1371 AT_KEYWORDS([OF1.1])
1372 AT_DATA([test-data], [dnl
1374 0000 0058 fffffffe 000003fe dnl
1375 000000000000ffffffffffff 000000000000ffffffffffff dnl
1376 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1377 00000000 00 000000 0000000000000000ffffffffffffffff
1379 # bad ofp11_match: OFPBMC_BAD_VALUE
1380 & ofp_util|WARN|port 305419896 is outside the supported range 0 through 65279 or 0xffffff00 through 0xffffffff
1381 0000 0058 12345678 000003fe dnl
1382 000000000000ffffffffffff 000000000000ffffffffffff dnl
1383 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1384 00000000 00 000000 0000000000000000ffffffffffffffff
1386 # dl_src=00:01:02:03:04:05
1387 0000 0058 00000000 000003ff dnl
1388 000102030405000000000000 000000000000ffffffffffff dnl
1389 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1390 00000000 00 000000 0000000000000000ffffffffffffffff
1392 # dl_src=55:55:55:55:55:55/55:55:55:55:55:55
1393 0000 0058 00000000 000003ff dnl
1394 555555555555aaaaaaaaaaaa 000000000000ffffffffffff dnl
1395 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1396 00000000 00 000000 0000000000000000ffffffffffffffff
1398 # dl_dst=00:01:02:03:04:05
1399 0000 0058 00000000 000003ff dnl
1400 000000000000ffffffffffff 000102030405000000000000 dnl
1401 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1402 00000000 00 000000 0000000000000000ffffffffffffffff
1404 # dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
1405 0000 0058 00000000 000003ff dnl
1406 000000000000ffffffffffff 010000000000feffffffffff dnl
1407 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1408 00000000 00 000000 0000000000000000ffffffffffffffff
1410 # dl_dst=00:01:02:03:04:05/fe:ff:ff:ff:ff:ff
1411 0000 0058 00000000 000003ff dnl
1412 000000000000ffffffffffff 000102030405010000000000 dnl
1413 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1414 00000000 00 000000 0000000000000000ffffffffffffffff
1416 # dl_dst=55:55:55:55:55:55/55:55:55:55:55:55
1417 0000 0058 00000000 000003ff dnl
1418 000000000000ffffffffffff 555555555555aaaaaaaaaaaa dnl
1419 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1420 00000000 00 000000 0000000000000000ffffffffffffffff
1422 dnl dl_vlan_pcp is ignored if dl_vlan is wildcarded, which causes the
1423 dnl the wildcard bit and the dl_vlan_pcp to be dropped for output:
1427 0000 0058 00000001 000003fa dnl
1428 000000000000ffffffffffff 000000000000ffffffffffff dnl
1429 0000 03 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1430 00000000 00 000000 0000000000000000ffffffffffffffff
1433 0000 0058 00000000 000003fd dnl
1434 000000000000ffffffffffff 000000000000ffffffffffff dnl
1435 0123 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1436 00000000 00 000000 0000000000000000ffffffffffffffff
1440 0000 0058 00000000 000003fd dnl
1441 000000000000ffffffffffff 000000000000ffffffffffff dnl
1442 ffff 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1443 00000000 00 000000 0000000000000000ffffffffffffffff
1445 dnl OFPVID_NONE ignores dl_vlan_pcp even if not wildcarded, which causes
1446 dnl the wildcard bit and the dl_vlan_pcp to be dropped for output:
1450 0000 0058 00000000 000003f9 dnl
1451 000000000000ffffffffffff 000000000000ffffffffffff dnl
1452 ffff 05 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1453 00000000 00 000000 0000000000000000ffffffffffffffff
1455 # vlan_tci=0x1000/0x1000
1456 0000 0058 00000000 000003fd dnl
1457 000000000000ffffffffffff 000000000000ffffffffffff dnl
1458 fffe 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1459 00000000 00 000000 0000000000000000ffffffffffffffff
1461 dnl Try invalid VID:
1462 # bad ofp11_match: OFPBMC_BAD_VALUE
1463 0000 0058 00000000 000003fd dnl
1464 000000000000ffffffffffff 000000000000ffffffffffff dnl
1465 1234 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1466 00000000 00 000000 0000000000000000ffffffffffffffff
1469 0000 0058 00000000 000003f9 dnl
1470 000000000000ffffffffffff 000000000000ffffffffffff dnl
1471 fffe 04 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1472 00000000 00 000000 0000000000000000ffffffffffffffff
1474 # dl_vlan=10,dl_vlan_pcp=6
1475 0000 0058 00000000 000003f9 dnl
1476 000000000000ffffffffffff 000000000000ffffffffffff dnl
1477 000a 06 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1478 00000000 00 000000 0000000000000000ffffffffffffffff
1481 0000 0058 00000000 000003f7 dnl
1482 000000000000ffffffffffff 000000000000ffffffffffff dnl
1483 0000 00 00 1234 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1484 00000000 00 000000 0000000000000000ffffffffffffffff
1487 0000 0058 00000000 000003e7 dnl
1488 000000000000ffffffffffff 000000000000ffffffffffff dnl
1489 0000 00 00 0800 fc 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1490 00000000 00 000000 0000000000000000ffffffffffffffff
1492 dnl Try invalid TOS:
1493 # bad ofp11_match: OFPBMC_BAD_VALUE
1494 0000 0058 00000000 000003e7 dnl
1495 000000000000ffffffffffff 000000000000ffffffffffff dnl
1496 0000 00 00 0800 01 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1497 00000000 00 000000 0000000000000000ffffffffffffffff
1500 0000 0058 00000000 000003d7 dnl
1501 000000000000ffffffffffff 000000000000ffffffffffff dnl
1502 0000 00 00 0800 00 05 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1503 00000000 00 000000 0000000000000000ffffffffffffffff
1506 0000 0058 00000000 000003d7 dnl
1507 000000000000ffffffffffff 000000000000ffffffffffff dnl
1508 0000 00 00 0806 00 02 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1509 00000000 00 000000 0000000000000000ffffffffffffffff
1511 # ip,nw_src=192.168.128.0/24
1512 0000 0058 00000000 000003f7 dnl
1513 000000000000ffffffffffff 000000000000ffffffffffff dnl
1514 0000 00 00 0800 00 00 c0a88000000000ff 00000000ffffffff 0000 0000 dnl
1515 00000000 00 000000 0000000000000000ffffffffffffffff
1517 # ip,nw_src=128.160.128.0/165.165.165.165
1520 0000 0058 00000000 000003f7 dnl
1521 000000000000ffffffffffff 000000000000ffffffffffff dnl
1522 0000 00 00 0800 00 00 c0a880005a5a5a5a 00000000ffffffff 0000 0000 dnl
1523 00000000 00 000000 0000000000000000ffffffffffffffff
1525 # ip,nw_dst=192.168.128.0/24
1526 0000 0058 00000000 000003f7 dnl
1527 000000000000ffffffffffff 000000000000ffffffffffff dnl
1528 0000 00 00 0800 00 00 00000000ffffffff c0a88000000000ff 0000 0000 dnl
1529 00000000 00 000000 0000000000000000ffffffffffffffff
1531 # ip,nw_dst=128.160.128.0/165.165.165.165
1534 0000 0058 00000000 000003f7 dnl
1535 000000000000ffffffffffff 000000000000ffffffffffff dnl
1536 0000 00 00 0800 00 00 00000000ffffffff c0a880005a5a5a5a 0000 0000 dnl
1537 00000000 00 000000 0000000000000000ffffffffffffffff
1539 # arp,arp_spa=192.168.128.0/24
1540 0000 0058 00000000 000003f7 dnl
1541 000000000000ffffffffffff 000000000000ffffffffffff dnl
1542 0000 00 00 0806 00 00 c0a88000000000ff 00000000ffffffff 0000 0000 dnl
1543 00000000 00 000000 0000000000000000ffffffffffffffff
1545 # arp,arp_tpa=192.168.128.0/24
1546 0000 0058 00000000 000003f7 dnl
1547 000000000000ffffffffffff 000000000000ffffffffffff dnl
1548 0000 00 00 0806 00 00 00000000ffffffff c0a88000000000ff 0000 0000 dnl
1549 00000000 00 000000 0000000000000000ffffffffffffffff
1552 0000 0058 00000000 00000397 dnl
1553 000000000000ffffffffffff 000000000000ffffffffffff dnl
1554 0000 00 00 0800 00 06 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
1555 00000000 00 000000 0000000000000000ffffffffffffffff
1558 0000 0058 00000000 00000357 dnl
1559 000000000000ffffffffffff 000000000000ffffffffffff dnl
1560 0000 00 00 0800 00 06 00000000ffffffff 00000000ffffffff 0000 01bb dnl
1561 00000000 00 000000 0000000000000000ffffffffffffffff
1564 0000 0058 00000000 00000397 dnl
1565 000000000000ffffffffffff 000000000000ffffffffffff dnl
1566 0000 00 00 0800 00 11 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
1567 00000000 00 000000 0000000000000000ffffffffffffffff
1570 0000 0058 00000000 00000397 dnl
1571 000000000000ffffffffffff 000000000000ffffffffffff dnl
1572 0000 00 00 0800 00 01 00000000ffffffff 00000000ffffffff 0005 0000 dnl
1573 00000000 00 000000 0000000000000000ffffffffffffffff
1576 0000 0058 00000000 00000357 dnl
1577 000000000000ffffffffffff 000000000000ffffffffffff dnl
1578 0000 00 00 0800 00 01 00000000ffffffff 00000000ffffffff 0000 0008 dnl
1579 00000000 00 000000 0000000000000000ffffffffffffffff
1582 0000 0058 00000000 00000397 dnl
1583 000000000000ffffffffffff 000000000000ffffffffffff dnl
1584 0000 00 00 0800 00 11 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
1585 00000000 00 000000 0000000000000000ffffffffffffffff
1588 0000 0058 00000000 00000357 dnl
1589 000000000000ffffffffffff 000000000000ffffffffffff dnl
1590 0000 00 00 0800 00 11 00000000ffffffff 00000000ffffffff 0000 01bb dnl
1591 00000000 00 000000 0000000000000000ffffffffffffffff
1594 0000 0058 00000000 000003d7 dnl
1595 000000000000ffffffffffff 000000000000ffffffffffff dnl
1596 0000 00 00 0800 00 84 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1597 00000000 00 000000 0000000000000000ffffffffffffffff
1600 0000 0058 00000000 00000397 dnl
1601 000000000000ffffffffffff 000000000000ffffffffffff dnl
1602 0000 00 00 0800 00 84 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
1603 00000000 00 000000 0000000000000000ffffffffffffffff
1606 0000 0058 00000000 00000357 dnl
1607 000000000000ffffffffffff 000000000000ffffffffffff dnl
1608 0000 00 00 0800 00 84 00000000ffffffff 00000000ffffffff 0000 01bb dnl
1609 00000000 00 000000 0000000000000000ffffffffffffffff
1611 dnl Ignore tp_src if not TCP/UDP/SCTP:
1616 0000 0058 00000000 00000397 dnl
1617 000000000000ffffffffffff 000000000000ffffffffffff dnl
1618 0000 00 00 0800 00 15 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
1619 00000000 00 000000 0000000000000000ffffffffffffffff
1621 dnl Ignore tp_dst if not TCP/UDP/SCTP:
1626 0000 0058 00000000 00000357 dnl
1627 000000000000ffffffffffff 000000000000ffffffffffff dnl
1628 0000 00 00 0800 00 16 00000000ffffffff 00000000ffffffff 0000 01bb dnl
1629 00000000 00 000000 0000000000000000ffffffffffffffff
1631 # mpls,mpls_label=284280
1634 0000 0058 00000000 000002f7 dnl
1635 000000000000ffffffffffff 000000000000ffffffffffff dnl
1636 0000 00 00 8847 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1637 12345678 00 000000 0000000000000000ffffffffffffffff
1641 0000 0058 00000000 000001f7 dnl
1642 000000000000ffffffffffff 000000000000ffffffffffff dnl
1643 0000 00 00 8848 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1644 00000000 5a 000000 0000000000000000ffffffffffffffff
1646 dnl mpls_label and mpls_tc must be ignored if dl_type is not MPLS:
1654 0000 0058 00000000 000000f7 dnl
1655 000000000000ffffffffffff 000000000000ffffffffffff dnl
1656 0000 00 00 1234 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1657 12345678 5a 000000 0000000000000000ffffffffffffffff
1660 # metadata=0x1234567890abcdef
1661 0000 0058 00000000 000003ff dnl
1662 000000000000ffffffffffff 000000000000ffffffffffff dnl
1663 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1664 00000000 00 000000 1234567890abcdef0000000000000000
1667 # metadata=0x5555555555555555/0x5555555555555555
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 5555555555555555aaaaaaaaaaaaaaaa
1674 # metadata=0x1234000090ab0000/0xffff0000ffff0000
1679 0000 0058 00000000 000003ff dnl
1680 000000000000ffffffffffff 000000000000ffffffffffff dnl
1681 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1682 00000000 00 000000 1234567890abcdef0000ffff0000ffff
1685 sed '/^[[#&]]/d' < test-data > input.txt
1686 sed -n 's/^# //p; /^$/p' < test-data > expout
1687 sed -n 's/^& //p' < test-data > experr
1688 AT_CAPTURE_FILE([input.txt])
1689 AT_CAPTURE_FILE([expout])
1690 AT_CAPTURE_FILE([experr])
1692 [ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-ofp11-match < input.txt],
1693 [0], [expout], [experr])
1696 AT_SETUP([ovs-ofctl parse-nx-match loose])
1697 AT_KEYWORDS([nx-match])
1698 AT_DATA([nx-match.txt], [dnl
1699 NXM_OF_IN_PORT(0001), 01020304(1111/3333), NXM_OF_ETH_TYPE(0800)
1700 NXM_OF_IN_PORT(0001), ffff020800002320(11112222), NXM_OF_ETH_TYPE(0800)
1701 NXM_OF_IN_PORT(0001), ffff030800002320(1111/3333), NXM_OF_ETH_TYPE(0800)
1704 AT_CHECK([ovs-ofctl --strict parse-nx-match < nx-match.txt], [0], [dnl
1705 nx_pull_match() returned error OFPBMC_BAD_FIELD
1706 nx_pull_match() returned error OFPBMC_BAD_FIELD
1707 nx_pull_match() returned error OFPBMC_BAD_FIELD
1710 AT_CHECK([ovs-ofctl parse-nx-match < nx-match.txt], [0], [dnl
1711 NXM_OF_IN_PORT(0001), NXM_OF_ETH_TYPE(0800)
1712 NXM_OF_IN_PORT(0001), NXM_OF_ETH_TYPE(0800)
1713 NXM_OF_IN_PORT(0001), NXM_OF_ETH_TYPE(0800)
1717 AT_SETUP([ovs-ofctl parse-oxm (OpenFlow 1.2)])
1719 AT_DATA([oxm.txt], [dnl
1723 OXM_OF_IN_PORT(00000000)
1724 OXM_OF_IN_PORT(fffffffe)
1727 OXM_OF_METADATA(5a5a5a5a5a5a5a5a)
1728 OXM_OF_METADATA_W(0000000000000000/00000000ffffffff)
1729 OXM_OF_METADATA_W(1234567890abcdef/ffff0000ffff0000)
1730 OXM_OF_METADATA_W(1234567890abcdef/ffffffffffffffff)
1731 OXM_OF_METADATA_W(1234567890abcdef/0000000000000000)
1734 OXM_OF_ETH_DST(0002e30f80a4)
1735 OXM_OF_ETH_DST_W(010000000000/010000000000)
1736 OXM_OF_ETH_DST_W(000000000000/010000000000)
1737 OXM_OF_ETH_DST_W(ffffffffffff/010000000000)
1738 OXM_OF_ETH_DST_W(0002e30f80a4/ffffffffffff)
1739 OXM_OF_ETH_DST_W(0002e30f80a4/000000000000)
1740 OXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
1743 OXM_OF_ETH_SRC(020898456ddb)
1746 OXM_OF_ETH_TYPE(0800)
1747 OXM_OF_ETH_TYPE(0800) OXM_OF_IN_PORT(00000012)
1750 OXM_OF_VLAN_VID(1009) OXM_OF_VLAN_VID(1009) # Duplicate Field
1751 OXM_OF_VLAN_VID(f009) # Bad Value
1752 OXM_OF_VLAN_PCP(00) # Bad Pre-Requisite
1753 OXM_OF_VLAN_VID(0000) # Packets without 802.1Q header or with VID=0
1754 OXM_OF_VLAN_VID(1123) # Packets with VID=123, any PCP
1755 OXM_OF_VLAN_VID(1123) OXM_OF_VLAN_PCP(01) # Packets with VID=123, PCP=1.
1756 OXM_OF_VLAN_VID(0123) # Does not make sense (but supported anyway)
1757 OXM_OF_VLAN_VID_W(0123/0123) # Does not make sense (but supported anyway)
1758 OXM_OF_VLAN_VID_W(1123/0123) # Does not make sense (but supported anyway)
1759 OXM_OF_VLAN_VID_W(0123/1123) # Does not make sense (but supported anyway)
1760 OXM_OF_VLAN_VID(0123) OXM_OF_VLAN_PCP(01) #Bad Pre-Requisite
1761 OXM_OF_VLAN_VID_W(1123/1fff) # Packets with VID=123, any PCP.
1762 OXM_OF_VLAN_VID_W(1123/ffff) # Packets with VID=123, any PCP.
1763 OXM_OF_VLAN_VID_W(0000/0000) # Packets with or without 802.1Q header
1764 OXM_OF_VLAN_VID_W(1103/1f0f), # Packets with # VID=123 (masked)
1765 OXM_OF_VLAN_VID_W(1103/1f0f), OXM_OF_VLAN_PCP(01) # Packets with VID=123 (masked), any PCP.
1766 OXM_OF_VLAN_VID_W(1000/1000) # Packets with any VID, any PCP
1767 OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(01) # Packets with any VID, PCP=1.
1770 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_DSCP(f0)
1771 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_DSCP(41)
1772 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_DSCP(3f)
1776 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_ECN(03)
1777 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_ECN(06)
1781 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01)
1782 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(05)
1786 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC(ac100014)
1787 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC_W(C0a80000/FFFF0000)
1788 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC_W(C0a80000/FFFFFFFF)
1789 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC_W(00000000/00000000)
1790 OXM_OF_ETH_TYPE(0806) OXM_OF_IPV4_SRC(ac100014)
1791 OXM_OF_IPV4_SRC_W(C0D80000/FFFF0000)
1794 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST(ac100014)
1795 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST_W(C0a80000/FFFF0000)
1796 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST_W(C0a88012/FFFFFFFF)
1797 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST_W(00000000/00000000)
1798 OXM_OF_IPV4_DST(ac100014)
1799 OXM_OF_ETH_TYPE(0806) OXM_OF_IPV4_DST_W(C0D80000/FFFF0000)
1802 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC(4231)
1803 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC_W(5050/F0F0)
1804 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC_W(5050/FFFF)
1805 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC_W(0000/0000)
1806 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(07) OXM_OF_TCP_SRC(4231)
1808 # TCP destination port
1809 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST(4231)
1810 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST_W(FDE0/FFF0)
1811 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST_W(FDE0/FFFF)
1812 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST_W(0000/0000)
1813 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(07) OXM_OF_TCP_DST(4231)
1816 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC(8732)
1817 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC_W(0132/01FF)
1818 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC_W(0132/FFFF)
1819 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC_W(0000/0000)
1820 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_UDP_SRC(7823)
1822 # UDP destination port
1823 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST(1782)
1824 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST_W(5005/F00F)
1825 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST_W(5005/FFFF)
1826 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST_W(0000/0000)
1827 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(02) OXM_OF_UDP_DST(1293)
1830 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(84) OXM_OF_SCTP_SRC(8732)
1831 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(84) OXM_OF_SCTP_SRC_W(0132/01FF)
1832 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(84) OXM_OF_SCTP_SRC_W(0132/FFFF)
1833 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(84) OXM_OF_SCTP_SRC_W(0000/0000)
1834 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_SCTP_SRC(7823)
1836 # SCTP destination port
1837 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(84) OXM_OF_SCTP_DST(1782)
1838 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(84) OXM_OF_SCTP_DST_W(5005/F00F)
1839 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(84) OXM_OF_SCTP_DST_W(5005/FFFF)
1840 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(84) OXM_OF_SCTP_DST_W(0000/0000)
1841 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(02) OXM_OF_SCTP_DST(1293)
1844 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01) OXM_OF_ICMPV4_TYPE(12)
1845 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(00) OXM_OF_ICMPV4_TYPE(10)
1848 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01) OXM_OF_ICMPV4_CODE(12)
1849 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(00) OXM_OF_ICMPV4_CODE(10)
1850 OXM_OF_ETH_TYPE(0800) OXM_OF_ICMPV4_CODE(10)
1851 OXM_OF_ICMPV4_CODE(00)
1854 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(0001)
1855 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(1111)
1856 OXM_OF_ETH_TYPE(0000) OXM_OF_ARP_OP(0001)
1858 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(0001) OXM_OF_ARP_OP(0001)
1860 # ARP source protocol address
1861 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA(ac100014)
1862 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA_W(C0a81200/FFFFFF00)
1863 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA_W(C0a81234/FFFFFFFF)
1864 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA_W(00000000/00000000)
1865 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_SPA(ac100014)
1866 OXM_OF_ARP_SPA_W(C0D80000/FFFF0000)
1868 # ARP destination protocol address
1869 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA(ac100014)
1870 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA_W(C0a81200/FFFFFF00)
1871 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA_W(C0a812fe/FFFFFFFF)
1872 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA_W(00000000/00000000)
1873 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_TPA(ac100014)
1874 OXM_OF_ARP_TPA_W(C0D80000/FFFF0000)
1876 # ARP source hardware address
1877 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA(0002e30f80a4)
1878 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_SHA(0002e30f80a4)
1879 OXM_OF_ARP_SHA(0002e30f80a4)
1880 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA_W(0002e30f80a4/ffffffffffff)
1881 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA_W(000000000000/000000000000)
1882 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA_W(000000000004/00000000000f)
1884 # ARP destination hardware address
1885 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA(0002e30f80a4)
1886 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_THA(0002e30f80a4)
1887 OXM_OF_ARP_THA(0002e30f80a4)
1888 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA_W(0002e30f80a4/ffffffffffff)
1889 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA_W(000000000000/000000000000)
1890 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA_W(000000000004/00000000000f)
1893 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
1894 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
1895 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1896 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
1897 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC_W(00000000000000000000000000000000/00000000000000000000000000000000)
1898 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1901 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
1902 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
1903 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1904 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
1905 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST_W(00000000000000000000000000000000/00000000000000000000000000000000)
1906 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1909 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL(1000000f)
1910 OXM_OF_IPV6_FLABEL(0000000f)
1911 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL(0000000f)
1912 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/0000000f)
1913 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/000fffff)
1914 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(00000000/000ffff0)
1915 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/100fffff)
1916 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/ffffffff)
1917 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(00000000/00000000)
1919 # ND source hardware address
1920 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)
1921 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)
1922 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)
1923 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)
1925 # ND destination hardware address
1926 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)
1927 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)
1928 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)
1929 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)
1931 # Registers 0, 1, and 2.
1932 NXM_NX_REG0(acebdf56)
1933 NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
1934 NXM_NX_REG0(a0e0d050)
1935 NXM_NX_REG1(acebdf56)
1936 NXM_NX_REG0_W(a0e0d050/f0f0f0f0), NXM_NX_REG1_W(a0e0d050/f0f0f0f0)
1937 NXM_NX_REG0_W(a0e0d050/f0f0f0f0), NXM_NX_REG1(a0e0d050)
1938 NXM_NX_REG1_W(a0e0d050/f0f0f0f0), NXM_NX_REG2_W(a0e0d050/f0f0f0f0)
1939 NXM_NX_REG1_W(a0e0d050/f0f0f0f0), NXM_NX_REG2(a0e0d050)
1941 # Extended registers 0, 1, and 2.
1942 # (For OpenFlow 1.2, OVS transforms these into its extension registers.)
1943 OXM_OF_PKT_REG0_W(acebdf5600000000/ffffffff00000000)
1944 OXM_OF_PKT_REG0_W(a0e0d05000000000/f0f0f0f000000000)
1945 OXM_OF_PKT_REG0_W(a0e0d05000000000/ffffffff00000000)
1946 OXM_OF_PKT_REG0_W(00000000acebdf56/00000000ffffffff)
1947 OXM_OF_PKT_REG0_W(a0e0d050a0e0d050/f0f0f0f0f0f0f0f0)
1948 OXM_OF_PKT_REG0_W(a0e0d050a0e0d050/f0f0f0f0ffffffff)
1949 OXM_OF_PKT_REG0_W(00000000a0e0d050/00000000f0f0f0f0), OXM_OF_PKT_REG1_W(a0e0d05000000000/f0f0f0f000000000)
1950 OXM_OF_PKT_REG0_W(00000000a0e0d050/00000000f0f0f0f0), OXM_OF_PKT_REG1_W(a0e0d05000000000/ffffffff00000000)
1952 # Invalid field number.
1955 # Invalid field numbers (experimenter OXM).
1956 ffff020800002320(11112222)
1957 ffff030800002320(1111/3333)
1959 AT_CHECK([ovs-ofctl '-vPATTERN:console:%c|%p|%m' --strict parse-oxm OpenFlow12 < oxm.txt],
1964 OXM_OF_IN_PORT(00000000)
1965 OXM_OF_IN_PORT(fffffffe)
1968 OXM_OF_METADATA(5a5a5a5a5a5a5a5a)
1969 OXM_OF_METADATA_W(0000000000000000/00000000ffffffff)
1970 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
1971 OXM_OF_METADATA(1234567890abcdef)
1972 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
1975 OXM_OF_ETH_DST(0002e30f80a4)
1976 OXM_OF_ETH_DST_W(010000000000/010000000000)
1977 OXM_OF_ETH_DST_W(000000000000/010000000000)
1978 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
1979 OXM_OF_ETH_DST(0002e30f80a4)
1980 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
1981 OXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
1984 OXM_OF_ETH_SRC(020898456ddb)
1987 OXM_OF_ETH_TYPE(0800)
1988 OXM_OF_IN_PORT(00000012), OXM_OF_ETH_TYPE(0800)
1991 nx_pull_match() returned error OFPBMC_DUP_FIELD
1992 nx_pull_match() returned error OFPBMC_BAD_VALUE
1993 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1994 OXM_OF_VLAN_VID(0000)
1995 OXM_OF_VLAN_VID(1123)
1996 OXM_OF_VLAN_VID(1123), OXM_OF_VLAN_PCP(01)
1997 OXM_OF_VLAN_VID(0123)
1998 OXM_OF_VLAN_VID_W(0123/0123)
1999 nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
2000 OXM_OF_VLAN_VID_W(0123/1123)
2001 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2002 OXM_OF_VLAN_VID(1123)
2003 OXM_OF_VLAN_VID(1123)
2005 OXM_OF_VLAN_VID_W(1103/1f0f)
2006 OXM_OF_VLAN_VID_W(1103/1f0f), OXM_OF_VLAN_PCP(01)
2007 OXM_OF_VLAN_VID_W(1000/1000)
2008 OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(01)
2011 nx_pull_match() returned error OFPBMC_BAD_VALUE
2012 nx_pull_match() returned error OFPBMC_BAD_VALUE
2013 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_DSCP(3f)
2014 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2017 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_ECN(03)
2018 nx_pull_match() returned error OFPBMC_BAD_VALUE
2019 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2022 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01)
2023 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(05)
2024 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2027 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_SRC(ac100014)
2028 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_SRC_W(c0a80000/ffff0000)
2029 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_SRC(c0a80000)
2030 OXM_OF_ETH_TYPE(0800)
2031 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2032 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2035 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_DST(ac100014)
2036 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_DST_W(c0a80000/ffff0000)
2037 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_DST(c0a88012)
2038 OXM_OF_ETH_TYPE(0800)
2039 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2040 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2043 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_SRC(4231)
2044 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_SRC_W(5050/f0f0)
2045 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_SRC(5050)
2046 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06)
2047 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2049 # TCP destination port
2050 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_DST(4231)
2051 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_DST_W(fde0/fff0)
2052 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_DST(fde0)
2053 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06)
2054 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2057 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_SRC(8732)
2058 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_SRC_W(0132/01ff)
2059 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_SRC(0132)
2060 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11)
2061 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2063 # UDP destination port
2064 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_DST(1782)
2065 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_DST_W(5005/f00f)
2066 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_DST(5005)
2067 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11)
2068 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2071 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(84), OXM_OF_SCTP_SRC(8732)
2072 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(84), OXM_OF_SCTP_SRC_W(0132/01ff)
2073 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(84), OXM_OF_SCTP_SRC(0132)
2074 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(84)
2075 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2077 # SCTP destination port
2078 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(84), OXM_OF_SCTP_DST(1782)
2079 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(84), OXM_OF_SCTP_DST_W(5005/f00f)
2080 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(84), OXM_OF_SCTP_DST(5005)
2081 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(84)
2082 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2085 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01), OXM_OF_ICMPV4_TYPE(12)
2086 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2089 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01), OXM_OF_ICMPV4_CODE(12)
2090 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2091 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2092 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2095 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_OP(0001)
2096 nx_pull_match() returned error OFPBMC_BAD_VALUE
2097 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2098 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2099 nx_pull_match() returned error OFPBMC_DUP_FIELD
2101 # ARP source protocol address
2102 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SPA(ac100014)
2103 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SPA_W(c0a81200/ffffff00)
2104 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SPA(c0a81234)
2105 OXM_OF_ETH_TYPE(0806)
2106 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2107 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2109 # ARP destination protocol address
2110 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_TPA(ac100014)
2111 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_TPA_W(c0a81200/ffffff00)
2112 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_TPA(c0a812fe)
2113 OXM_OF_ETH_TYPE(0806)
2114 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2115 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2117 # ARP source hardware address
2118 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SHA(0002e30f80a4)
2119 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2120 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2121 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SHA(0002e30f80a4)
2122 OXM_OF_ETH_TYPE(0806)
2123 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SHA_W(000000000004/00000000000f)
2125 # ARP destination hardware address
2126 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_THA(0002e30f80a4)
2127 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2128 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2129 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_THA(0002e30f80a4)
2130 OXM_OF_ETH_TYPE(0806)
2131 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_THA_W(000000000004/00000000000f)
2134 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
2135 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2136 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
2137 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_SRC(20010db83c4d00010000000000000000)
2138 OXM_OF_ETH_TYPE(86dd)
2139 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2142 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
2143 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2144 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
2145 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_DST(20010db83c4d00010000000000000000)
2146 OXM_OF_ETH_TYPE(86dd)
2147 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2150 nx_pull_match() returned error OFPBMC_BAD_VALUE
2151 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2152 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
2153 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL_W(0000000f/0000000f)
2154 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
2155 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL_W(00000000/000ffff0)
2156 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
2157 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
2158 OXM_OF_ETH_TYPE(86dd)
2160 # ND source hardware address
2161 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)
2162 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2163 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2164 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2166 # ND destination hardware address
2167 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)
2168 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2169 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2170 nx_pull_match() returned error OFPBMC_BAD_PREREQ
2172 # Registers 0, 1, and 2.
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 # Extended registers 0, 1, and 2.
2183 # (For OpenFlow 1.2, OVS transforms these into its extension registers.)
2184 NXM_NX_REG0(acebdf56)
2185 NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
2186 NXM_NX_REG0(a0e0d050)
2187 NXM_NX_REG1(acebdf56)
2188 NXM_NX_REG0_W(a0e0d050/f0f0f0f0), NXM_NX_REG1_W(a0e0d050/f0f0f0f0)
2189 NXM_NX_REG0_W(a0e0d050/f0f0f0f0), NXM_NX_REG1(a0e0d050)
2190 NXM_NX_REG1_W(a0e0d050/f0f0f0f0), NXM_NX_REG2_W(a0e0d050/f0f0f0f0)
2191 NXM_NX_REG1_W(a0e0d050/f0f0f0f0), NXM_NX_REG2(a0e0d050)
2193 # Invalid field number.
2194 nx_pull_match() returned error OFPBMC_BAD_FIELD
2196 # Invalid field numbers (experimenter OXM).
2197 nx_pull_match() returned error OFPBMC_BAD_FIELD
2198 nx_pull_match() returned error OFPBMC_BAD_FIELD
2201 # Check that at least the first warning made it. (It's rate-limited
2202 # so a variable number could show up, especially under valgrind etc.)
2203 AT_CHECK([grep '1-bits in value' stderr | sed 1q], [0], [dnl
2204 nx_match|WARN|Rejecting NXM/OXM entry 0:32768:2:1:16 with 1-bits in value for bits wildcarded by the mask.
2207 # Check that there wasn't any other stderr output.
2208 AT_CHECK([grep -v '1-bits in value' stderr], [1])
2211 AT_SETUP([ovs-ofctl parse-oxm (OpenFlow 1.3)])
2213 AT_DATA([oxm.txt], [dnl
2215 ONFOXM_ET_ACTSET_OUTPUT(00000000)
2216 ONFOXM_ET_ACTSET_OUTPUT(fffffffe)
2217 ONFOXM_ET_ACTSET_OUTPUT(fffffff7)
2218 OXM_OF_ACTSET_OUTPUT(00000000)
2219 OXM_OF_ACTSET_OUTPUT(fffffffe)
2220 OXM_OF_ACTSET_OUTPUT(fffffff7)
2222 AT_CHECK([ovs-ofctl '-vPATTERN:console:%c|%p|%m' --strict parse-oxm OpenFlow13 < oxm.txt],
2225 ONFOXM_ET_ACTSET_OUTPUT(00000000)
2226 ONFOXM_ET_ACTSET_OUTPUT(fffffffe)
2227 ONFOXM_ET_ACTSET_OUTPUT(fffffff7)
2228 ONFOXM_ET_ACTSET_OUTPUT(00000000)
2229 ONFOXM_ET_ACTSET_OUTPUT(fffffffe)
2230 ONFOXM_ET_ACTSET_OUTPUT(fffffff7)
2234 AT_SETUP([ovs-ofctl parse-oxm (OpenFlow 1.5)])
2236 AT_DATA([oxm.txt], [dnl
2237 # Extended registers 0 and 1.
2238 OXM_OF_PKT_REG0_W(acebdf5600000000/ffffffff00000000)
2239 OXM_OF_PKT_REG0_W(a0e0d05000000000/f0f0f0f000000000)
2240 OXM_OF_PKT_REG0_W(a0e0d05000000000/ffffffff00000000)
2241 OXM_OF_PKT_REG0_W(00000000acebdf56/00000000ffffffff)
2242 OXM_OF_PKT_REG0_W(a0e0d050a0e0d050/f0f0f0f0f0f0f0f0)
2243 OXM_OF_PKT_REG0_W(a0e0d050a0e0d050/f0f0f0f0ffffffff)
2244 OXM_OF_PKT_REG0_W(00000000a0e0d050/00000000f0f0f0f0), OXM_OF_PKT_REG1_W(a0e0d05000000000/f0f0f0f000000000)
2245 OXM_OF_PKT_REG0_W(00000000a0e0d050/00000000f0f0f0f0), OXM_OF_PKT_REG1_W(a0e0d05000000000/ffffffff00000000)
2247 # Registers 0, 1, and 2.
2248 # (OpenFlow 1.5 transforms these into the standard "xregs".)
2249 NXM_NX_REG0(acebdf56)
2250 NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
2251 NXM_NX_REG0(a0e0d050)
2252 NXM_NX_REG1(acebdf56)
2253 NXM_NX_REG0_W(a0e0d050/f0f0f0f0), NXM_NX_REG1_W(a0e0d050/f0f0f0f0)
2254 NXM_NX_REG0_W(a0e0d050/f0f0f0f0), NXM_NX_REG1(a0e0d050)
2255 NXM_NX_REG1_W(a0e0d050/f0f0f0f0), NXM_NX_REG2_W(a0e0d050/f0f0f0f0)
2256 NXM_NX_REG1_W(a0e0d050/f0f0f0f0), NXM_NX_REG2(a0e0d050)
2259 ONFOXM_ET_ACTSET_OUTPUT(00000000)
2260 ONFOXM_ET_ACTSET_OUTPUT(fffffffe)
2261 ONFOXM_ET_ACTSET_OUTPUT(fffffff7)
2262 OXM_OF_ACTSET_OUTPUT(00000000)
2263 OXM_OF_ACTSET_OUTPUT(fffffffe)
2264 OXM_OF_ACTSET_OUTPUT(fffffff7)
2266 AT_CHECK([ovs-ofctl '-vPATTERN:console:%c|%p|%m' --strict parse-oxm OpenFlow15 < oxm.txt],
2268 # Extended registers 0 and 1.
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)
2278 # Registers 0, 1, and 2.
2279 # (OpenFlow 1.5 transforms these into the standard "xregs".)
2280 OXM_OF_PKT_REG0_W(acebdf5600000000/ffffffff00000000)
2281 OXM_OF_PKT_REG0_W(a0e0d05000000000/f0f0f0f000000000)
2282 OXM_OF_PKT_REG0_W(a0e0d05000000000/ffffffff00000000)
2283 OXM_OF_PKT_REG0_W(00000000acebdf56/00000000ffffffff)
2284 OXM_OF_PKT_REG0_W(a0e0d050a0e0d050/f0f0f0f0f0f0f0f0)
2285 OXM_OF_PKT_REG0_W(a0e0d050a0e0d050/f0f0f0f0ffffffff)
2286 OXM_OF_PKT_REG0_W(00000000a0e0d050/00000000f0f0f0f0), OXM_OF_PKT_REG1_W(a0e0d05000000000/f0f0f0f000000000)
2287 OXM_OF_PKT_REG0_W(00000000a0e0d050/00000000f0f0f0f0), OXM_OF_PKT_REG1_W(a0e0d05000000000/ffffffff00000000)
2290 OXM_OF_ACTSET_OUTPUT(00000000)
2291 OXM_OF_ACTSET_OUTPUT(fffffffe)
2292 OXM_OF_ACTSET_OUTPUT(fffffff7)
2293 OXM_OF_ACTSET_OUTPUT(00000000)
2294 OXM_OF_ACTSET_OUTPUT(fffffffe)
2295 OXM_OF_ACTSET_OUTPUT(fffffff7)
2299 AT_SETUP([ovs-ofctl parse-oxm loose])
2301 AT_DATA([oxm.txt], [dnl
2302 OXM_OF_IN_PORT(00000001), 01020304(1111/3333), OXM_OF_ETH_TYPE(0800)
2303 OXM_OF_IN_PORT(00000001), ffff020800002320(11112222), OXM_OF_ETH_TYPE(0800)
2304 OXM_OF_IN_PORT(00000001), ffff030800002320(1111/3333), OXM_OF_ETH_TYPE(0800)
2307 AT_CHECK([ovs-ofctl --strict parse-oxm OpenFlow12 < oxm.txt], [0], [dnl
2308 nx_pull_match() returned error OFPBMC_BAD_FIELD
2309 nx_pull_match() returned error OFPBMC_BAD_FIELD
2310 nx_pull_match() returned error OFPBMC_BAD_FIELD
2313 AT_CHECK([ovs-ofctl parse-oxm OpenFlow12 < oxm.txt], [0], [dnl
2314 OXM_OF_IN_PORT(00000001), OXM_OF_ETH_TYPE(0800)
2315 OXM_OF_IN_PORT(00000001), OXM_OF_ETH_TYPE(0800)
2316 OXM_OF_IN_PORT(00000001), OXM_OF_ETH_TYPE(0800)
2320 AT_SETUP([experimenter OXM encoding])
2321 AT_DATA([oxm.txt], [dnl
2322 NXM_NX_DP_HASH(01234567)
2323 NXOXM_ET_DP_HASH(01234567)
2325 NXM_NX_DP_HASH_W(01234567/0fffffff)
2326 NXOXM_ET_DP_HASH_W(01234567/0fffffff)
2329 # To allow for testing experimenter OXM, which doesn't really have many
2330 # examples in the wild, we've defined a variant of NXM_NX_DP_HASH that uses
2331 # the experimenter OXM mechanism, called NXOXM_ET_DP_HASH. We've defined
2332 # it as if it were introduced with OpenFlow 1.5, which gives us the
2333 # opportunity to see that both forms are accepted in all OpenFlow versions
2334 # but the experimenter form is used for encoding in OF1.5+.
2336 # First verify that both forms are accepted and NXOXM_ET_DP_HASH is encoded
2338 AT_CHECK([ovs-ofctl -m --strict parse-oxm OpenFlow15 < oxm.txt], [0], [dnl
2339 NXOXM_ET_DP_HASH(01234567)
2340 00000000 00 01 00 10 ff ff 00 08-00 00 23 20 01 23 45 67 @&t@
2341 NXOXM_ET_DP_HASH(01234567)
2342 00000000 00 01 00 10 ff ff 00 08-00 00 23 20 01 23 45 67 @&t@
2344 NXOXM_ET_DP_HASH_W(01234567/0fffffff)
2345 00000000 00 01 00 14 ff ff 01 0c-00 00 23 20 01 23 45 67 @&t@
2346 00000010 0f ff ff ff 00 00 00 00-
2347 NXOXM_ET_DP_HASH_W(01234567/0fffffff)
2348 00000000 00 01 00 14 ff ff 01 0c-00 00 23 20 01 23 45 67 @&t@
2349 00000010 0f ff ff ff 00 00 00 00-
2352 # Then verify that both forms are accepted and NXM_NX_DP_HASH is encoded
2354 AT_CHECK([ovs-ofctl -m --strict parse-oxm OpenFlow12 < oxm.txt], [0], [dnl
2355 NXM_NX_DP_HASH(01234567)
2356 00000000 00 01 00 0c 00 01 46 04-01 23 45 67 00 00 00 00 @&t@
2357 NXM_NX_DP_HASH(01234567)
2358 00000000 00 01 00 0c 00 01 46 04-01 23 45 67 00 00 00 00 @&t@
2360 NXM_NX_DP_HASH_W(01234567/0fffffff)
2361 00000000 00 01 00 10 00 01 47 08-01 23 45 67 0f ff ff ff @&t@
2362 NXM_NX_DP_HASH_W(01234567/0fffffff)
2363 00000000 00 01 00 10 00 01 47 08-01 23 45 67 0f ff ff ff @&t@
2367 AT_SETUP([check TCP flags expression in OXM and NXM])
2368 # NXM/OXM input for matching on TCP flags.
2369 tcp_flags='OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_FLAGS(0fff)'
2371 # Check that marshaling into NXM gives all NXM headers.
2372 AT_CHECK([echo "$tcp_flags" | ovs-ofctl parse-nxm], [0],
2373 [NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_NX_TCP_FLAGS(0fff)
2376 # Check that marshaling in OXM for OF1.2 gives OXM headers except for
2377 # TCP flags, which didn't have an OXM definition.
2378 AT_CHECK([echo "$tcp_flags" | ovs-ofctl parse-oxm OpenFlow12], [0],
2379 [OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), NXM_NX_TCP_FLAGS(0fff)
2382 # Check that marshaling in OXM for OF1.3 and OF1.4 gives OXM headers,
2383 # including the ONF extension for TCP flags introduced in OF1.3.
2384 AT_CHECK([echo "$tcp_flags" | ovs-ofctl parse-oxm OpenFlow13], [0],
2385 [OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), ONFOXM_ET_TCP_FLAGS(0fff)
2387 AT_CHECK([echo "$tcp_flags" | ovs-ofctl parse-oxm OpenFlow14], [0],
2388 [OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), ONFOXM_ET_TCP_FLAGS(0fff)
2391 # OpenFlow 1.5 added an OXM header for TCP flags:
2392 AT_CHECK([echo "$tcp_flags" | ovs-ofctl parse-oxm OpenFlow15], [0],
2393 [OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_FLAGS(0fff)
2397 dnl Check all of the patterns mentioned in the "VLAN Matching" section
2398 dnl in the DESIGN file at top level.
2399 AT_SETUP([ovs-ofctl check-vlan])
2403 AT_CHECK([ovs-ofctl check-vlan 0000 0000], [0], [dnl
2405 NXM: <any> -> 0000/0000
2406 OXM: <any> -> 0000/0000,--
2407 OF1.0: 0000/1,00/1 -> 0000/0000
2408 OF1.1: 0000/1,00/1 -> 0000/0000
2412 AT_CHECK([ovs-ofctl check-vlan 0000 ffff], [0], [dnl
2413 vlan_tci=0x0000 -> 0000/ffff
2414 NXM: NXM_OF_VLAN_TCI(0000) -> 0000/ffff
2415 OXM: OXM_OF_VLAN_VID(0000) -> 0000/1fff,--
2416 OF1.0: ffff/0,00/0 -> 0000/ffff
2417 OF1.1: ffff/0,00/1 -> 0000/ffff
2421 AT_CHECK([ovs-ofctl check-vlan 1abc 1fff], [0], [dnl
2422 dl_vlan=2748 -> 1abc/1fff
2423 NXM: NXM_OF_VLAN_TCI_W(1abc/1fff) -> 1abc/1fff
2424 OXM: OXM_OF_VLAN_VID(1abc) -> 1abc/1fff,--
2425 OF1.0: 0abc/0,00/1 -> 1abc/1fff
2426 OF1.1: 0abc/0,00/1 -> 1abc/1fff
2430 AT_CHECK([ovs-ofctl check-vlan b000 f000], [0], [dnl
2431 dl_vlan_pcp=5 -> b000/f000
2432 NXM: NXM_OF_VLAN_TCI_W(b000/f000) -> b000/f000
2433 OXM: OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(05) -> 1000/1000,05
2434 OF1.0: 0000/1,05/0 -> b000/f000
2435 OF1.1: fffe/0,05/0 -> b000/f000
2439 AT_CHECK([ovs-ofctl check-vlan babc ffff], [0], [dnl
2440 dl_vlan=2748,dl_vlan_pcp=5 -> babc/ffff
2441 NXM: NXM_OF_VLAN_TCI(babc) -> babc/ffff
2442 OXM: OXM_OF_VLAN_VID(1abc), OXM_OF_VLAN_PCP(05) -> 1abc/1fff,05
2443 OF1.0: 0abc/0,05/0 -> babc/ffff
2444 OF1.1: 0abc/0,05/0 -> babc/ffff
2448 AT_CHECK([ovs-ofctl check-vlan 0000 0fff], [0], [dnl
2449 vlan_tci=0x0000/0x0fff -> 0000/0fff
2450 NXM: NXM_OF_VLAN_TCI_W(0000/0fff) -> 0000/0fff
2451 OXM: OXM_OF_VLAN_VID_W(0000/0fff) -> 0000/0fff,--
2452 OF1.0: 0000/0,00/1 -> 1000/1fff
2453 OF1.1: 0000/0,00/1 -> 1000/1fff
2457 AT_CHECK([ovs-ofctl check-vlan 0000 f000], [0], [dnl
2458 vlan_tci=0x0000/0xf000 -> 0000/f000
2459 NXM: NXM_OF_VLAN_TCI_W(0000/f000) -> 0000/f000
2460 OXM: OXM_OF_VLAN_VID_W(0000/1000) -> 0000/1000,--
2461 OF1.0: ffff/0,00/0 -> 0000/ffff
2462 OF1.1: ffff/0,00/1 -> 0000/ffff
2466 AT_CHECK([ovs-ofctl check-vlan 0000 efff], [0], [dnl
2467 vlan_tci=0x0000/0xefff -> 0000/efff
2468 NXM: NXM_OF_VLAN_TCI_W(0000/efff) -> 0000/efff
2469 OXM: OXM_OF_VLAN_VID_W(0000/0fff) -> 0000/0fff,--
2470 OF1.0: 0000/0,00/0 -> 1000/ffff
2471 OF1.1: 0000/0,00/0 -> 1000/ffff
2475 AT_CHECK([ovs-ofctl check-vlan 1001 1001], [0], [dnl
2476 vlan_tci=0x1001/0x1001 -> 1001/1001
2477 NXM: NXM_OF_VLAN_TCI_W(1001/1001) -> 1001/1001
2478 OXM: OXM_OF_VLAN_VID_W(1001/1001) -> 1001/1001,--
2479 OF1.0: 0001/0,00/1 -> 1001/1fff
2480 OF1.1: 0001/0,00/1 -> 1001/1fff
2484 AT_CHECK([ovs-ofctl check-vlan 3000 3000], [0], [dnl
2485 vlan_tci=0x3000/0x3000 -> 3000/3000
2486 NXM: NXM_OF_VLAN_TCI_W(3000/3000) -> 3000/3000
2487 OXM: OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(01) -> 1000/1000,01
2488 OF1.0: 0000/1,01/0 -> 3000/f000
2489 OF1.1: fffe/0,01/0 -> 3000/f000
2494 dnl Check that "-F openflow10" rejects a flow_mod with unsupported features,
2495 dnl such as tunnels and metadata.
2496 AT_SETUP([ovs-ofctl -F option and NXM features])
2497 AT_CHECK([ovs-ofctl -F openflow10 add-flow dummy tun_id=123,actions=drop],
2498 [1], [], [ovs-ofctl: none of the usable flow formats (NXM,OXM) is among the allowed flow formats (OpenFlow10)
2500 AT_CHECK([ovs-ofctl -F openflow10 add-flow dummy metadata=123,actions=drop],
2501 [1], [], [ovs-ofctl: none of the usable flow formats (NXM,OXM,OpenFlow11) is among the allowed flow formats (OpenFlow10)
2505 dnl Check that "-F nxm" really forces add-flow to use the NXM flow format.
2506 dnl (If it doesn't, then either the tun_id won't show up at all, or it will
2507 dnl additionally show up as the top 32 bits of the cookie.) This checks
2508 dnl for regression against bug #4566.
2509 AT_SETUP([ovs-ofctl -F option with flow_mods])
2511 AT_CHECK([ovs-ofctl -F nxm add-flow br0 tun_id=0x12345678,actions=drop])
2512 AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip], [0], [dnl
2514 tun_id=0x12345678 actions=drop
2519 dnl Check that "-F openflow10" is really honored on dump-flows.
2520 dnl (If it isn't, then dump-flows will show the register match.)
2521 AT_SETUP([ovs-ofctl dump-flows honors -F option])
2523 AT_CHECK([ovs-ofctl add-flow br0 reg0=0x12345,actions=drop])
2524 AT_CHECK([ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip], [0], [dnl
2531 dnl Check that "-F openflow10" fails on dump-flows if the requested match
2532 dnl can't be represented in OpenFlow 1.0.
2533 AT_SETUP([ovs-ofctl dump-flows rejects bad -F option])
2535 AT_CHECK([ovs-ofctl -F openflow10 dump-flows unix:br0.mgmt reg0=0xabcdef], [1], [],
2536 [ovs-ofctl: none of the usable flow formats (NXM,OXM) is among the allowed flow formats (OpenFlow10)
2541 dnl Check that add-flow reports non-normalized flows (feature #5029).
2542 AT_SETUP([ovs-ofctl add-flow reports non-normalized flows])
2544 AT_CHECK([ovs-ofctl TESTABLE_LOG add-flow br0 nw_src=1.2.3.4,actions=5],
2546 ofp_util|INFO|normalization changed ofp_match, details:
2547 ofp_util|INFO| pre: nw_src=1.2.3.4
2548 ofp_util|INFO|post: @&t@
2553 dnl Check that --sort and --rsort works with dump-flows
2554 dnl Default field is 'priority'. Flow entries are displayed based
2555 dnl on field to sort.
2556 AT_SETUP([ovs-ofctl dump-flows with sorting])
2559 AT_DATA([allflows.txt], [[
2560 priority=4,in_port=23213 actions=output:42
2561 priority=5,in_port=1029 actions=output:43
2562 priority=7,in_port=1029 actions=output:43
2563 priority=3,in_port=1028 actions=output:44
2564 priority=1,in_port=1026 actions=output:45
2565 priority=6,in_port=1027 actions=output:64
2566 priority=2,in_port=1025 actions=output:47
2567 priority=8,tcp,tp_src=5 actions=drop
2568 priority=9,tcp,tp_src=6 actions=drop
2571 AT_CHECK([ovs-ofctl add-flows br0 allflows.txt
2573 AT_CHECK([ovs-ofctl --sort dump-flows br0 | ofctl_strip], [0], [dnl
2574 priority=1,in_port=1026 actions=output:45
2575 priority=2,in_port=1025 actions=output:47
2576 priority=3,in_port=1028 actions=output:44
2577 priority=4,in_port=23213 actions=output:42
2578 priority=5,in_port=1029 actions=output:43
2579 priority=6,in_port=1027 actions=output:64
2580 priority=7,in_port=1029 actions=output:43
2581 priority=8,tcp,tp_src=5 actions=drop
2582 priority=9,tcp,tp_src=6 actions=drop
2584 AT_CHECK([ovs-ofctl --rsort dump-flows br0 | ofctl_strip], [0], [dnl
2585 priority=9,tcp,tp_src=6 actions=drop
2586 priority=8,tcp,tp_src=5 actions=drop
2587 priority=7,in_port=1029 actions=output:43
2588 priority=6,in_port=1027 actions=output:64
2589 priority=5,in_port=1029 actions=output:43
2590 priority=4,in_port=23213 actions=output:42
2591 priority=3,in_port=1028 actions=output:44
2592 priority=2,in_port=1025 actions=output:47
2593 priority=1,in_port=1026 actions=output:45
2595 AT_CHECK([ovs-ofctl --sort=in_port dump-flows br0 | ofctl_strip], [0], [dnl
2596 priority=2,in_port=1025 actions=output:47
2597 priority=1,in_port=1026 actions=output:45
2598 priority=6,in_port=1027 actions=output:64
2599 priority=3,in_port=1028 actions=output:44
2600 priority=7,in_port=1029 actions=output:43
2601 priority=5,in_port=1029 actions=output:43
2602 priority=4,in_port=23213 actions=output:42
2603 priority=9,tcp,tp_src=6 actions=drop
2604 priority=8,tcp,tp_src=5 actions=drop
2606 AT_CHECK([ovs-ofctl --rsort=in_port dump-flows br0 | ofctl_strip], [0], [dnl
2607 priority=4,in_port=23213 actions=output:42
2608 priority=7,in_port=1029 actions=output:43
2609 priority=5,in_port=1029 actions=output:43
2610 priority=3,in_port=1028 actions=output:44
2611 priority=6,in_port=1027 actions=output:64
2612 priority=1,in_port=1026 actions=output:45
2613 priority=2,in_port=1025 actions=output:47
2614 priority=9,tcp,tp_src=6 actions=drop
2615 priority=8,tcp,tp_src=5 actions=drop
2617 AT_CHECK([ovs-ofctl --sort=tcp_src dump-flows br0 | ofctl_strip], [0], [dnl
2618 priority=8,tcp,tp_src=5 actions=drop
2619 priority=9,tcp,tp_src=6 actions=drop
2620 priority=7,in_port=1029 actions=output:43
2621 priority=6,in_port=1027 actions=output:64
2622 priority=5,in_port=1029 actions=output:43
2623 priority=4,in_port=23213 actions=output:42
2624 priority=3,in_port=1028 actions=output:44
2625 priority=2,in_port=1025 actions=output:47
2626 priority=1,in_port=1026 actions=output:45
2629 [ovs-ofctl --sort=in_port --sort=tcp_src dump-flows br0 | ofctl_strip], [0],
2630 [ priority=2,in_port=1025 actions=output:47
2631 priority=1,in_port=1026 actions=output:45
2632 priority=6,in_port=1027 actions=output:64
2633 priority=3,in_port=1028 actions=output:44
2634 priority=7,in_port=1029 actions=output:43
2635 priority=5,in_port=1029 actions=output:43
2636 priority=4,in_port=23213 actions=output:42
2637 priority=8,tcp,tp_src=5 actions=drop
2638 priority=9,tcp,tp_src=6 actions=drop
2643 AT_SETUP([ovs-ofctl diff-flows])
2646 # Add tons of flows to br0.
2647 for i in `seq 0 1023`; do echo "dl_vlan=$i,actions=drop"; done > add-flows.txt
2648 AT_CHECK([ovs-ofctl add-flows br0 add-flows.txt])
2650 # Dump them and compare against what we expect by hand, then with diff-flows.
2651 for i in `seq 0 1023`; do echo " dl_vlan=$i actions=drop"; done | sort > expout
2652 AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip | sed '/NXST_FLOW/d' | sort],
2654 AT_CHECK([ovs-ofctl diff-flows br0 add-flows.txt])
2656 # Remove even-numbered flows, compare again.
2657 for i in `seq 0 1023 2`; do echo "dl_vlan=$i"; done > del-flows.txt
2658 AT_CHECK([ovs-ofctl del-flows br0 - < del-flows.txt])
2659 for i in `seq 0 1023 2`; do echo "+dl_vlan=$i actions=drop"; done | sort > expout
2660 AT_CHECK([ovs-ofctl diff-flows br0 add-flows.txt | sort], [0], [expout])
2661 for i in `seq 0 1023 2`; do echo "-dl_vlan=$i actions=drop"; done | sort > expout
2662 AT_CHECK([ovs-ofctl diff-flows add-flows.txt br0 | sort], [0], [expout])
2667 dnl ofpacts that differ bytewise don't necessarily differ when
2668 dnl converted to another representation, such as OpenFlow 1.0
2669 dnl or to a string. "resubmit(,1)" is an example of an action
2670 dnl of this type: "ofpact_resubmit"s can differ in their "compat"
2671 dnl values even though this doesn't affect the string format.
2673 dnl This test checks that "ovs-ofctl diff-flows" doesn't report
2674 dnl false ofpacts differences.
2675 AT_SETUP([ovs-ofctl diff-flows - suppress false differences])
2677 AT_DATA([flows.txt], [actions=resubmit(,1)
2679 AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
2680 AT_CHECK([ovs-ofctl diff-flows br0 flows.txt])
2681 AT_CHECK([ovs-ofctl add-flow br0 idle_timeout=60,dl_vlan=9,actions=output:1])
2682 AT_CHECK([ovs-ofctl diff-flows br0 flows.txt], [2], [dnl
2683 -dl_vlan=9 idle_timeout=60 actions=output:1
2685 AT_CHECK([ovs-ofctl add-flow br0 hard_timeout=120,cookie=1234,dl_vlan=9,actions=output:1])
2686 AT_CHECK([ovs-ofctl diff-flows flows.txt br0], [2], [dnl
2687 +dl_vlan=9 cookie=0x4d2 hard_timeout=120 actions=output:1
2692 AT_SETUP([ovs-ofctl -F and -O interaction])
2693 AT_CHECK([ovs-ofctl -F oxm -O openflow10], [1], [],
2694 [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.)
2696 AT_CHECK([ovs-ofctl -F oxm -O openflow11], [1], [],
2697 [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.)
2699 AT_CHECK([ovs-ofctl -F oxm -O openflow10,openflow11], [1], [],
2700 [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.)
2702 AT_CHECK([ovs-ofctl -F oxm -O openflow10,openflow12], [1], [],
2703 [ovs-ofctl: missing command name; use --help for help
2705 AT_CHECK([ovs-ofctl -F oxm -O openflow12], [1], [],
2706 [ovs-ofctl: missing command name; use --help for help
2708 AT_CHECK([ovs-ofctl -F oxm -O openflow13], [1], [],
2709 [ovs-ofctl: missing command name; use --help for help
2713 AT_SETUP([ovs-ofctl ofp-parse])
2714 # Test the echo request/reply messages (0 payload).
2715 AT_CHECK([printf '\1\2\0\10\0\0\0\0\1\3\0\10\0\0\0\0' > binary_ofp_msg])
2716 AT_CHECK([ovs-ofctl ofp-parse binary_ofp_msg], [0], [dnl
2717 OFPT_ECHO_REQUEST (xid=0x0): 0 bytes of payload
2718 OFPT_ECHO_REPLY (xid=0x0): 0 bytes of payload
2721 # Test the hello (xid:1 3-byte payload).
2722 AT_CHECK([printf '\1\0\0\13\0\0\0\1\101\102\103' > binary_ofp_msg])
2723 AT_CHECK([ovs-ofctl ofp-parse - < binary_ofp_msg], [0], [dnl
2724 OFPT_HELLO (xid=0x1):
2725 version bitmap: 0x01
2726 unknown data in hello:
2727 00000000 01 00 00 0b 00 00 00 01-41 42 43 |........ABC |
2731 AT_SETUP([tcp flags - filtering])
2732 OVS_VSWITCHD_START([add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 \
2733 -- add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2])
2734 AT_DATA([flows.txt], [dnl
2735 in_port=1,tcp,tp_dst=80,tcp_flags=+syn-rst-ack-fin,action=2 # Allow outbound web traffic bare-SYN
2736 in_port=1,tcp,tp_dst=80,tcp_flags=+ack,action=2 # Allow outbound web traffic with ACK bit
2737 in_port=1,tcp,tp_dst=80,tcp_flags=+rst,action=2 # Allow outbound web traffic with RST bit
2738 in_port=2,tcp,tp_src=80,tcp_flags=+ack,action=1 # Allow inbound web traffic with ACK bit
2739 in_port=2,tcp,tp_src=80,tcp_flags=+rst,action=1 # Allow inbound web traffic with RST bit
2740 priority=0,in_port=1,action=drop # Default drop outbound
2741 priority=0,in_port=2,action=drop # Default drop inbound
2744 AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
2746 AT_CHECK([ovs-ofctl add-flow br0 "tcp,tcp_flags=+ack-ack,action="], [1], [],
2747 [ovs-ofctl: ack: Each TCP flag can be specified only once
2750 AT_CHECK([ovs-appctl dpif/show | tail -n +4], [0], [dnl
2755 dnl Outbound web traffic with bare-SYN
2756 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])
2757 AT_CHECK([tail -1 stdout], [0],
2758 [Datapath actions: 2
2761 dnl Outbopund web traffic with ACK bit
2762 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])
2763 AT_CHECK([tail -1 stdout], [0],
2764 [Datapath actions: 2
2767 dnl Outbound web traffic with RST bit
2768 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])
2769 AT_CHECK([tail -1 stdout], [0],
2770 [Datapath actions: 2
2773 dnl Inbound web traffic with ACK bit
2774 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])
2775 AT_CHECK([tail -1 stdout], [0],
2776 [Datapath actions: 1
2779 dnl Inbound web traffic with RST bit
2780 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])
2781 AT_CHECK([tail -1 stdout], [0],
2782 [Datapath actions: 1
2785 dnl Inbound web traffic with SYN bit without ACK or RST bits
2786 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])
2787 AT_CHECK([tail -1 stdout], [0],
2788 [Datapath actions: drop
2794 dnl Check importance parameter added in OF1.4.
2795 dnl It validates whether importance set via add-flow via OpenFlow1.4+ gets
2796 dnl set or not by validating it againt the dump-flows output via OpenFlow1.4+
2797 dnl If add-flow or dump-flows is used with later version of OpenFlow prior to 1.4+
2798 dnl then the importance will be considered zero whether provided as an argument.
2800 AT_SETUP([ovs-ofctl rule with importance])
2802 dnl Flow with importance parameter added via OF1.4+ and later version
2803 AT_CHECK([ovs-ofctl -O OpenFlow14 add-flow br0 priority=21,importance=21,actions=normal])
2804 AT_CHECK([ovs-ofctl add-flow br0 priority=22,importance=22,actions=normal])
2806 dnl Importance parameter will only be visible of flows that are added via OF1.4+ if dumped via OF1.4+
2807 AT_CHECK([ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip | sed '/ST_FLOW reply/d' | sort], [0], [dnl
2808 importance=21, priority=21 actions=NORMAL
2809 priority=22 actions=NORMAL
2812 dnl Importance parameter will not be visible if flow is dumped with previous version prior to OF1.4+ whether added via OF1.4+
2813 AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip | sed '/ST_FLOW reply/d' | sort], [0], [dnl
2814 priority=21 actions=NORMAL
2815 priority=22 actions=NORMAL
2822 dnl Importance parameter added in OF1.4.
2823 dnl This validates whether flows with importance
2824 dnl parameter are getting replaced with "replace-flows" or
2825 dnl not by validating dump-flows output after replace with the expected output.
2827 AT_SETUP([ovs-ofctl replace-flows with importance])
2830 dnl Add flows to br0 with importance via OF1.4+. For more details refer "ovs-ofctl rule with importance" test case.
2831 for i in 1 2 3 4 5 6 7 8; do echo "dl_vlan=$i,importance=$i,actions=drop"; done > add-flows.txt
2832 AT_CHECK([ovs-ofctl -O OpenFlow14 add-flows br0 add-flows.txt])
2834 dnl Replace some flows in the bridge.
2835 for i in 1 3 5 7; do echo "dl_vlan=$i,importance=`expr $i + 10`,actions=drop"; done > replace-flows.txt
2836 AT_CHECK([ovs-ofctl -O OpenFlow14 replace-flows br0 replace-flows.txt])
2838 dnl Dump them and compare the dump flows output against the expected output.
2839 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
2840 AT_CHECK([ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip | sed '/OFPST_FLOW/d' | sort],
2846 AT_SETUP([ovs-ofctl replace-flows with --bundle])
2849 AT_CHECK([ovs-appctl vlog/set vconn:dbg])
2851 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.
2852 for i in 1 2 3 4 5 6 7 8; do echo "dl_vlan=$i,importance=$i,actions=drop"; done > add-flows.txt
2853 AT_CHECK([ovs-ofctl --bundle add-flows br0 add-flows.txt])
2855 dnl Replace some flows in the bridge.
2856 for i in 1 3 5 7; do echo "dl_vlan=$i,importance=`expr $i + 10`,actions=drop"; done > replace-flows.txt
2857 AT_CHECK([ovs-ofctl --bundle replace-flows br0 replace-flows.txt])
2859 dnl Dump them and compare the dump flows output against the expected output.
2860 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
2861 AT_CHECK([ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip | sed '/OFPST_FLOW/d' | sort],
2864 dnl Check logs for OpenFlow trace
2866 OVS_WAIT_UNTIL([cat ovs-vswitchd.log | vconn_windows_sub | test `grep -- "|vconn|DBG|unix: sent (Success): OFPST_FLOW reply" | wc -l` -ge 2])
2867 # AT_CHECK([sed -n "s/^.*\(|vconn|DBG|.*xid=.*:\).*$/\1/p" ovs-vswitchd.log], [0], [dnl
2868 AT_CHECK([print_vconn_debug | vconn_windows_sub | ofctl_strip], [0], [dnl
2869 vconn|DBG|unix: sent (Success): OFPT_HELLO (OF1.5):
2870 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06
2871 vconn|DBG|unix: received: OFPT_HELLO (OF1.4):
2872 version bitmap: 0x01, 0x05
2873 vconn|DBG|unix: negotiated OpenFlow version 0x05 (we support version 0x06 and earlier, peer supports versions 0x01, 0x05)
2874 vconn|DBG|unix: received: OFPT_BUNDLE_CONTROL (OF1.4):
2875 bundle_id=0 type=OPEN_REQUEST flags=atomic ordered
2876 vconn|DBG|unix: sent (Success): OFPT_BUNDLE_CONTROL (OF1.4):
2877 bundle_id=0 type=OPEN_REPLY flags=0
2878 vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
2879 bundle_id=0 flags=atomic ordered
2880 OFPT_FLOW_MOD (OF1.4): ADD dl_vlan=1 importance:1 actions=drop
2881 vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
2882 bundle_id=0 flags=atomic ordered
2883 OFPT_FLOW_MOD (OF1.4): ADD dl_vlan=2 importance:2 actions=drop
2884 vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
2885 bundle_id=0 flags=atomic ordered
2886 OFPT_FLOW_MOD (OF1.4): ADD dl_vlan=3 importance:3 actions=drop
2887 vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
2888 bundle_id=0 flags=atomic ordered
2889 OFPT_FLOW_MOD (OF1.4): ADD dl_vlan=4 importance:4 actions=drop
2890 vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
2891 bundle_id=0 flags=atomic ordered
2892 OFPT_FLOW_MOD (OF1.4): ADD dl_vlan=5 importance:5 actions=drop
2893 vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
2894 bundle_id=0 flags=atomic ordered
2895 OFPT_FLOW_MOD (OF1.4): ADD dl_vlan=6 importance:6 actions=drop
2896 vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
2897 bundle_id=0 flags=atomic ordered
2898 OFPT_FLOW_MOD (OF1.4): ADD dl_vlan=7 importance:7 actions=drop
2899 vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
2900 bundle_id=0 flags=atomic ordered
2901 OFPT_FLOW_MOD (OF1.4): ADD dl_vlan=8 importance:8 actions=drop
2902 vconn|DBG|unix: received: OFPT_BUNDLE_CONTROL (OF1.4):
2903 bundle_id=0 type=COMMIT_REQUEST flags=atomic ordered
2904 vconn|DBG|unix: sent (Success): OFPT_BUNDLE_CONTROL (OF1.4):
2905 bundle_id=0 type=COMMIT_REPLY flags=0
2906 vconn|DBG|unix: sent (Success): OFPT_HELLO (OF1.5):
2907 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06
2908 vconn|DBG|unix: received: OFPT_HELLO (OF1.4):
2909 version bitmap: 0x01, 0x05
2910 vconn|DBG|unix: negotiated OpenFlow version 0x05 (we support version 0x06 and earlier, peer supports versions 0x01, 0x05)
2911 vconn|DBG|unix: received: OFPST_FLOW request (OF1.4):
2912 vconn|DBG|unix: sent (Success): OFPST_FLOW reply (OF1.4):
2913 vconn|DBG|unix: received: OFPT_BUNDLE_CONTROL (OF1.4):
2914 bundle_id=0 type=OPEN_REQUEST flags=atomic ordered
2915 vconn|DBG|unix: sent (Success): OFPT_BUNDLE_CONTROL (OF1.4):
2916 bundle_id=0 type=OPEN_REPLY flags=0
2917 vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
2918 bundle_id=0 flags=atomic ordered
2919 OFPT_FLOW_MOD (OF1.4): ADD dl_vlan=1 importance:11 actions=drop
2920 vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
2921 bundle_id=0 flags=atomic ordered
2922 OFPT_FLOW_MOD (OF1.4): ADD dl_vlan=3 importance:13 actions=drop
2923 vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
2924 bundle_id=0 flags=atomic ordered
2925 OFPT_FLOW_MOD (OF1.4): ADD dl_vlan=5 importance:15 actions=drop
2926 vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
2927 bundle_id=0 flags=atomic ordered
2928 OFPT_FLOW_MOD (OF1.4): ADD dl_vlan=7 importance:17 actions=drop
2929 vconn|DBG|unix: received: OFPT_BUNDLE_CONTROL (OF1.4):
2930 bundle_id=0 type=COMMIT_REQUEST flags=atomic ordered
2931 vconn|DBG|unix: sent (Success): OFPT_BUNDLE_CONTROL (OF1.4):
2932 bundle_id=0 type=COMMIT_REPLY flags=0
2933 vconn|DBG|unix: sent (Success): OFPT_HELLO (OF1.5):
2934 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06
2935 vconn|DBG|unix: received: OFPT_HELLO (OF1.4):
2936 version bitmap: 0x05
2937 vconn|DBG|unix: negotiated OpenFlow version 0x05 (we support version 0x06 and earlier, peer supports version 0x05)
2938 vconn|DBG|unix: received: OFPST_FLOW request (OF1.4):
2939 vconn|DBG|unix: sent (Success): OFPST_FLOW reply (OF1.4):
2940 importance=2, dl_vlan=2 actions=drop
2941 importance=4, dl_vlan=4 actions=drop
2942 importance=6, dl_vlan=6 actions=drop
2943 importance=8, dl_vlan=8 actions=drop
2944 importance=11, dl_vlan=1 actions=drop
2945 importance=13, dl_vlan=3 actions=drop
2946 importance=15, dl_vlan=5 actions=drop
2947 importance=17, dl_vlan=7 actions=drop