3 AT_SETUP([ovs-ofctl parse-flows (OpenFlow 1.0)])
4 AT_DATA([flows.txt], [[
6 tcp,tp_src=123,actions=flood
7 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
8 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
9 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
10 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
11 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
12 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
13 actions=set_field:fe80:0123:4567:890a:a6ba:dbff:fefe:59fa->ipv6_src
14 in_port=0 actions=resubmit:0
17 AT_CHECK([ovs-ofctl parse-flows flows.txt
19 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
20 [[usable protocols: any
21 chosen protocol: OpenFlow10-table_id
22 OFPT_FLOW_MOD: ADD tcp,tp_src=123 actions=FLOOD
23 OFPT_FLOW_MOD: ADD in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
24 OFPT_FLOW_MOD: ADD udp,dl_vlan_pcp=7 idle:5 actions=strip_vlan,output:0
25 OFPT_FLOW_MOD: ADD tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
26 OFPT_FLOW_MOD: ADD udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
27 OFPT_FLOW_MOD: ADD priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
28 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
29 OFPT_FLOW_MOD: ADD actions=load:0xa6badbfffefe59fa->NXM_NX_IPV6_SRC[0..63],load:0xfe8001234567890a->NXM_NX_IPV6_SRC[64..127]
30 OFPT_FLOW_MOD: ADD in_port=0 actions=resubmit:0
34 AT_SETUP([ovs-ofctl parse-flows (OpenFlow 1.2)])
35 AT_DATA([flows.txt], [[
37 tcp,tp_src=123,actions=flood
38 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
39 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
40 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
41 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
42 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
43 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
44 actions=set_field:fe80:0123:4567:890a:a6ba:dbff:fefe:59fa->ipv6_src
45 in_port=0 actions=resubmit:0
48 AT_CHECK([ovs-ofctl --protocols OpenFlow12 parse-flows flows.txt
50 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
51 [[usable protocols: any
52 chosen protocol: OXM-OpenFlow12
53 OFPT_FLOW_MOD (OF1.2): ADD table:255 tcp,tp_src=123 actions=FLOOD
54 OFPT_FLOW_MOD (OF1.2): ADD table:255 in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
55 OFPT_FLOW_MOD (OF1.2): ADD table:255 udp,dl_vlan_pcp=7 idle:5 actions=strip_vlan,output:0
56 OFPT_FLOW_MOD (OF1.2): ADD table:255 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
57 OFPT_FLOW_MOD (OF1.2): ADD table:255 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
58 OFPT_FLOW_MOD (OF1.2): ADD table:255 priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
59 OFPT_FLOW_MOD (OF1.2): 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
60 OFPT_FLOW_MOD (OF1.2): ADD table:255 actions=set_field:fe80:123:4567:890a:a6ba:dbff:fefe:59fa->ipv6_src
61 OFPT_FLOW_MOD (OF1.2): ADD table:255 in_port=0 actions=resubmit:0
65 AT_SETUP([ovs-ofctl parse-flows (With Tunnel-Parameters)])
66 AT_DATA([flows.txt], [[
67 tun_id=0x1234000056780000/0xffff0000ffff0000,tun_src=1.1.1.1,tun_dst=2.2.2.2,tun_tos=0x3,tun_ttl=20,tun_flags=key|csum actions=drop
70 AT_CHECK([ovs-ofctl parse-flows flows.txt
71 ], [1], [usable protocols: none
77 AT_SETUP([ovs-ofctl parse-flows (skb_mark and skb_priority)])
78 AT_DATA([flows.txt], [[
79 skb_mark=0x12345678,skb_priority=0x12341234,tcp,tp_src=123,actions=flood
82 AT_CHECK([ovs-ofctl parse-flows flows.txt
83 ], [1], [usable protocols: none
89 AT_SETUP([ovs-ofctl parse-flows (NXM)])
90 AT_DATA([flows.txt], [[
92 tcp,tp_src=123,actions=flood
93 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
94 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
95 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
96 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
97 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
98 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
99 tcp,tp_src=0x1230/0xfff0,tun_id=0x1234,cookie=0x5678,actions=flood
100 actions=set_tunnel:0x1234,set_tunnel64:0x9876,set_tunnel:0x123456789
101 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])
103 tun_id=0x1234000056780000/0xffff0000ffff0000,actions=drop
104 metadata=0x1234ffff5678ffff/0xffff0000ffff0000,actions=drop
105 actions=bundle(eth_src,50,active_backup,ofport,slaves:1)
106 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:2,3)
107 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:)
108 actions=output:1,bundle(eth_src,0,hrw,ofport,slaves:1),output:2
109 actions=bundle_load(eth_src,50,active_backup,ofport,NXM_NX_REG0[],slaves:1)
110 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:2,3)
111 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:[2,3])
112 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..30],slaves:)
113 actions=output:1,bundle_load(eth_src,0,hrw,ofport,NXM_NX_REG0[16..31],slaves:1),output:2
114 actions=resubmit:1,resubmit(2),resubmit(,3),resubmit(2,3)
115 send_flow_rem,actions=output:1,output:NXM_NX_REG0[],output:2,output:NXM_NX_REG1[16..31],output:3
116 check_overlap,actions=output:1,exit,output:2
117 actions=fin_timeout(idle_timeout=5,hard_timeout=15)
118 actions=controller(max_len=123,reason=invalid_ttl,id=555)
121 AT_CHECK([ovs-ofctl parse-flows flows.txt
123 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
124 [[usable protocols: OXM,NXM+table_id
125 chosen protocol: NXM+table_id
126 NXT_FLOW_MOD: ADD table:255 tcp,tp_src=123 actions=FLOOD
127 NXT_FLOW_MOD: ADD table:255 in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
128 NXT_FLOW_MOD: ADD table:255 udp,dl_vlan_pcp=7 idle:5 actions=strip_vlan,output:0
129 NXT_FLOW_MOD: ADD table:255 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
130 NXT_FLOW_MOD: ADD table:255 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
131 NXT_FLOW_MOD: ADD table:255 priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
132 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
133 NXT_FLOW_MOD: ADD table:255 tcp,tun_id=0x1234,tp_src=0x1230/0xfff0 cookie:0x5678 actions=FLOOD
134 NXT_FLOW_MOD: ADD table:255 actions=set_tunnel:0x1234,set_tunnel64:0x9876,set_tunnel64:0x123456789
135 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])
136 NXT_FLOW_MOD: ADD table:1 actions=drop
137 NXT_FLOW_MOD: ADD table:255 tun_id=0x1234000056780000/0xffff0000ffff0000 actions=drop
138 NXT_FLOW_MOD: ADD table:255 metadata=0x1234000056780000/0xffff0000ffff0000 actions=drop
139 NXT_FLOW_MOD: ADD table:255 actions=bundle(eth_src,50,active_backup,ofport,slaves:1)
140 NXT_FLOW_MOD: ADD table:255 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:2,3)
141 NXT_FLOW_MOD: ADD table:255 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:)
142 NXT_FLOW_MOD: ADD table:255 actions=output:1,bundle(eth_src,0,hrw,ofport,slaves:1),output:2
143 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(eth_src,50,active_backup,ofport,NXM_NX_REG0[],slaves:1)
144 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:2,3)
145 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:2,3)
146 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..30],slaves:)
147 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
148 NXT_FLOW_MOD: ADD table:255 actions=resubmit:1,resubmit:2,resubmit(,3),resubmit(2,3)
149 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
150 NXT_FLOW_MOD: ADD table:255 check_overlap actions=output:1,exit,output:2
151 NXT_FLOW_MOD: ADD table:255 actions=fin_timeout(idle_timeout=5,hard_timeout=15)
152 NXT_FLOW_MOD: ADD table:255 actions=controller(reason=invalid_ttl,max_len=123,id=555)
156 AT_SETUP([ovs-ofctl -F nxm parse-flows])
157 AT_DATA([flows.txt], [
159 tcp,tp_src=123,actions=flood
160 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
161 arp,dl_src=00:0A:E4:25:6B:B0,arp_sha=00:0A:E4:25:6B:B0 actions=drop
162 ipv6,ipv6_label=0x12345 actions=2
163 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=3
164 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5/64 actions=4
165 ipv6,ipv6_dst=2001:db8:3c4d:1:2:3:4:5/127 actions=5
166 tcp6,ipv6_src=2001:db8:3c4d:1::1,tp_dst=80 actions=drop
167 udp6,ipv6_src=2001:db8:3c4d:1::3,tp_dst=53 actions=drop
168 in_port=3 icmp6,ipv6_src=2001:db8:3c4d:1::1,icmp_type=134 actions=drop
169 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
170 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
171 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
172 icmp6,icmp_type=135,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571 actions=drop
173 icmp6,icmp_type=135,nd_target=FEC0::1234:F045:8FFF:1111:FE4F:0571/112 actions=drop
174 icmp6,icmp_type=135,nd_sll=00:0A:E4:25:6B:B0 actions=drop
175 icmp6,icmp_type=136,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571,nd_tll=00:0A:E4:25:6B:B1 actions=drop
176 icmp6,icmp_type=136,nd_target=FEC0::1234:F045:8FFF:1111:FE00:0000/96,nd_tll=00:0A:E4:25:6B:B1 actions=drop
177 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
178 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
179 tun_id=0x1234,cookie=0x5678,actions=flood
181 tun_id=0x1234000056780000/0xffff0000ffff0000,actions=drop
182 dl_dst=01:00:00:00:00:00/01:00:00:00:00:00,actions=drop
183 dl_dst=00:00:00:00:00:00/01:00:00:00:00:00,actions=drop
184 dl_dst=aa:bb:cc:dd:ee:ff/fe:ff:ff:ff:ff:ff,actions=drop
185 dl_dst=aa:bb:cc:dd:ee:ff/00:00:00:00:00:00,actions=drop
187 AT_CHECK([ovs-ofctl -F nxm parse-flows flows.txt], [0], [stdout])
188 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0], [dnl
189 usable protocols: NXM,OXM
190 chosen protocol: NXM-table_id
191 NXT_FLOW_MOD: ADD tcp,tp_src=123 actions=FLOOD
192 NXT_FLOW_MOD: ADD in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
193 NXT_FLOW_MOD: ADD arp,dl_src=00:0a:e4:25:6b:b0,arp_sha=00:0a:e4:25:6b:b0 actions=drop
194 NXT_FLOW_MOD: ADD ipv6,ipv6_label=0x12345 actions=output:2
195 NXT_FLOW_MOD: ADD ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=output:3
196 NXT_FLOW_MOD: ADD ipv6,ipv6_src=2001:db8:3c4d:1::/64 actions=output:4
197 NXT_FLOW_MOD: ADD ipv6,ipv6_dst=2001:db8:3c4d:1:2:3:4:4/127 actions=output:5
198 NXT_FLOW_MOD: ADD tcp6,ipv6_src=2001:db8:3c4d:1::1,tp_dst=80 actions=drop
199 NXT_FLOW_MOD: ADD udp6,ipv6_src=2001:db8:3c4d:1::3,tp_dst=53 actions=drop
200 NXT_FLOW_MOD: ADD icmp6,in_port=3,ipv6_src=2001:db8:3c4d:1::1,icmp_type=134 actions=drop
201 NXT_FLOW_MOD: ADD udp,dl_vlan_pcp=7 idle:5 actions=strip_vlan,output:0
202 NXT_FLOW_MOD: ADD tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
203 NXT_FLOW_MOD: ADD udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
204 NXT_FLOW_MOD: ADD icmp6,icmp_type=135,nd_target=fec0:0:1234:f045:8fff:1111:fe4e:571 actions=drop
205 NXT_FLOW_MOD: ADD icmp6,icmp_type=135,nd_target=fec0:0:1234:f045:8fff:1111:fe4f:0/112 actions=drop
206 NXT_FLOW_MOD: ADD icmp6,icmp_type=135,nd_sll=00:0a:e4:25:6b:b0 actions=drop
207 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
208 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
209 NXT_FLOW_MOD: ADD priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
210 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
211 NXT_FLOW_MOD: ADD tun_id=0x1234 cookie:0x5678 actions=FLOOD
212 NXT_FLOW_MOD: ADD actions=drop
213 NXT_FLOW_MOD: ADD tun_id=0x1234000056780000/0xffff0000ffff0000 actions=drop
214 NXT_FLOW_MOD: ADD dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=drop
215 NXT_FLOW_MOD: ADD dl_dst=00:00:00:00:00:00/01:00:00:00:00:00 actions=drop
216 NXT_FLOW_MOD: ADD dl_dst=aa:bb:cc:dd:ee:ff/fe:ff:ff:ff:ff:ff actions=drop
217 NXT_FLOW_MOD: ADD actions=drop
221 AT_SETUP([ovs-ofctl -F nxm -mmm parse-flows])
222 AT_DATA([flows.txt], [[
224 tcp,tp_src=123,actions=flood
225 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
226 arp,dl_src=00:0A:E4:25:6B:B0,arp_sha=00:0A:E4:25:6B:B0 actions=drop
227 ipv6,ipv6_label=0x12345 actions=2
228 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=3
229 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5/64 actions=4
230 ipv6,ipv6_dst=2001:db8:3c4d:1:2:3:4:5/127 actions=5
231 tcp6,ipv6_src=2001:db8:3c4d:1::1,tp_dst=80 actions=drop
232 udp6,ipv6_src=2001:db8:3c4d:1::3,tp_dst=53 actions=drop
233 in_port=3 icmp6,ipv6_src=2001:db8:3c4d:1::1,icmp_type=134 actions=drop
234 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
235 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
236 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
237 icmp6,icmp_type=135,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571 actions=drop
238 icmp6,icmp_type=135,nd_sll=00:0A:E4:25:6B:B0 actions=drop
239 icmp6,icmp_type=136,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571,nd_tll=00:0A:E4:25:6B:B1 actions=drop
240 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
241 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
242 tun_id=0x1234,cookie=0x5678,actions=flood
244 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[]
245 actions=move:OXM_OF_ETH_DST[]->OXM_OF_ETH_SRC[]
246 actions=push:NXM_NX_REG0[0..31],pop:NXM_NX_REG0[]
247 vlan_tci=0x1123/0x1fff,actions=drop
249 AT_CHECK([ovs-ofctl -F nxm -mmm parse-flows flows.txt], [0], [stdout], [stderr])
250 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
251 [[usable protocols: NXM,OXM
252 chosen protocol: NXM-table_id
253 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC(007b) actions=FLOOD
254 NXT_FLOW_MOD: ADD NXM_OF_IN_PORT(fffe), NXM_OF_ETH_SRC(000ae4256bb0), NXM_OF_VLAN_TCI_W(1009/1fff) actions=drop
255 NXT_FLOW_MOD: ADD NXM_OF_ETH_SRC(000ae4256bb0), NXM_OF_ETH_TYPE(0806), NXM_NX_ARP_SHA(000ae4256bb0) actions=drop
256 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_LABEL(00012345) actions=output:2
257 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005) actions=output:3
258 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000) actions=output:4
259 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST_W(20010db83c4d00010002000300040004/fffffffffffffffffffffffffffffffe) actions=output:5
260 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
261 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
262 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
263 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
264 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
265 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
266 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
267 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
268 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
269 NXT_FLOW_MOD: ADD <any> cookie:0x123456789abcdef hard:10 pri:60000 actions=CONTROLLER:65535
270 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
271 NXT_FLOW_MOD: ADD NXM_NX_TUN_ID(0000000000001234) cookie:0x5678 actions=FLOOD
272 NXT_FLOW_MOD: ADD <any> actions=drop
273 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[]
274 NXT_FLOW_MOD: ADD <any> actions=move:NXM_OF_ETH_DST[]->NXM_OF_ETH_SRC[]
275 NXT_FLOW_MOD: ADD <any> actions=push:NXM_NX_REG0[],pop:NXM_NX_REG0[]
276 NXT_FLOW_MOD: ADD NXM_OF_VLAN_TCI_W(1123/1fff) actions=drop
280 AT_SETUP([ovs-ofctl parse-nx-match])
281 AT_KEYWORDS([nx-match])
282 AT_DATA([nx-match.txt], [dnl
290 NXM_OF_ETH_DST(0002e30f80a4)
291 NXM_OF_ETH_DST_W(010000000000/010000000000)
292 NXM_OF_ETH_DST_W(000000000000/010000000000)
293 NXM_OF_ETH_DST_W(ffffffffffff/010000000000)
294 NXM_OF_ETH_DST_W(0002e30f80a4/ffffffffffff)
295 NXM_OF_ETH_DST_W(60175619848f/000000000000)
296 NXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
297 NXM_OF_ETH_DST_W(60175619848f/5a5a5a5a5a5a)
300 NXM_OF_ETH_SRC(020898456ddb)
301 NXM_OF_ETH_SRC_W(012345abcdef/ffffff555555)
302 NXM_OF_ETH_SRC_W(020898456ddb/ffffffffffff)
303 NXM_OF_ETH_SRC_W(020898456ddb/000000000000)
306 NXM_OF_ETH_TYPE(0800)
307 NXM_OF_ETH_TYPE(0800) NXM_OF_IN_PORT(0012)
310 NXM_OF_VLAN_TCI(f009)
311 NXM_OF_VLAN_TCI(f009) NXM_OF_VLAN_TCI(f009)
312 NXM_OF_VLAN_TCI(0000) # Packets without 802.1Q header.
313 NXM_OF_VLAN_TCI(3123) # Packets with VID=123, PCP=1.
314 NXM_OF_VLAN_TCI(0123) # Does not make sense (but supported anyway)
315 NXM_OF_VLAN_TCI_W(1123/1fff) # Packets with VID=123, any PCP.
316 NXM_OF_VLAN_TCI_W(1123/ffff) # Packets with VID=123, PCP=0
317 NXM_OF_VLAN_TCI_W(1123/0000) # Packets with or without 802.1Q header
318 NXM_OF_VLAN_TCI_W(f000/f000) # Packets with any VID, PCP=7.
319 NXM_OF_VLAN_TCI_W(0000/e000) # No 802.1Q or with VID=0
322 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_TOS(f0)
323 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_TOS(41)
327 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_ECN(03)
328 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_ECN(06)
332 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(01)
333 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(05)
337 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_TTL(80)
338 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_TTL(ff)
342 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC(ac100014)
343 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC_W(C0a80000/FFFF0000)
344 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC_W(C0a80000/5a5a5a5a)
345 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC_W(C0a80000/ffffffff)
346 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC_W(C0a80000/00000000)
347 NXM_OF_ETH_TYPE(0806) NXM_OF_IP_SRC(ac100014)
348 NXM_OF_IP_SRC_W(C0D80000/FFFF0000)
351 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST(ac100014)
352 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST_W(C0a88012/FFFF0000)
353 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST_W(C0a80000/5a5a5a5a)
354 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST_W(C0a80000/ffffffff)
355 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST_W(C0a80000/00000000)
356 NXM_OF_IP_DST(ac100014)
357 NXM_OF_ETH_TYPE(0806) NXM_OF_IP_DST_W(C0D80000/FFFF0000)
360 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_SRC(4231)
361 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_SRC_W(5050/F0F0)
362 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_SRC_W(5050/ffff)
363 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_SRC_W(5050/0000)
364 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(07) NXM_OF_TCP_SRC(4231)
366 # TCP destination port
367 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_DST(4231)
368 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_DST_W(FDE0/FFF0)
369 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_DST_W(FDE0/ffff)
370 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_DST_W(FDE0/0000)
371 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(07) NXM_OF_TCP_DST(4231)
374 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_SRC(8732)
375 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_SRC_W(0132/01FF)
376 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_SRC_W(0132/ffff)
377 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_SRC_W(0132/0000)
378 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_UDP_SRC(7823)
380 # UDP destination port
381 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_DST(1782)
382 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_DST_W(5005/F00F)
383 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_DST_W(5005/FFFF)
384 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_DST_W(5005/0000)
385 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(02) NXM_OF_UDP_DST(1293)
388 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(01) NXM_OF_ICMP_TYPE(12)
389 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(00) NXM_OF_ICMP_TYPE(10)
392 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(01) NXM_OF_ICMP_CODE(12)
393 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(00) NXM_OF_ICMP_CODE(10)
394 NXM_OF_ETH_TYPE(0800) NXM_OF_ICMP_CODE(10)
398 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_OP(0001)
399 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_OP(1111)
400 NXM_OF_ETH_TYPE(0000) NXM_OF_ARP_OP(0001)
402 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_OP(0001) NXM_OF_ARP_OP(0001)
404 # ARP source protocol address
405 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA(ac100014)
406 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA_W(C0a81234/FFFFFF00)
407 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA_W(C0a81234/aaaaaa00)
408 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA_W(C0a81234/ffffffff)
409 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA_W(C0a81234/00000000)
410 NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_SPA(ac100014)
411 NXM_OF_ARP_SPA_W(C0D8fedc/FFFF0000)
413 # ARP destination protocol address
414 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA(ac100014)
415 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA_W(C0a812fe/FFFFFF00)
416 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA_W(C0a81234/77777777)
417 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA_W(C0a81234/ffffffff)
418 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA_W(C0a81234/00000000)
419 NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_TPA(ac100014)
420 NXM_OF_ARP_TPA_W(C0D80000/FFFF0000)
422 # ARP source hardware address
423 NXM_OF_ETH_TYPE(0806) NXM_NX_ARP_SHA(0002e30f80a4)
424 NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_SHA(0002e30f80a4)
425 NXM_NX_ARP_SHA(0002e30f80a4)
427 # ARP destination hardware address
428 NXM_OF_ETH_TYPE(0806) NXM_NX_ARP_THA(0002e30f80a4)
429 NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_THA(0002e30f80a4)
430 NXM_NX_ARP_THA(0002e30f80a4)
433 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_OP(0003)
434 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_OP(1111)
435 NXM_OF_ETH_TYPE(0000) NXM_OF_ARP_OP(0003)
437 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_OP(0003) NXM_OF_ARP_OP(0003)
439 # RARP source protocol address
440 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA(ac100014)
441 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA_W(C0a81234/FFFFFF00)
442 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA_W(C0a81234/aaaaaa00)
443 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA_W(C0a81234/ffffffff)
444 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA_W(C0a81234/00000000)
445 NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_SPA(ac100014)
446 NXM_OF_ARP_SPA_W(C0D8fedc/FFFF0000)
448 # RARP destination protocol address
449 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA(ac100014)
450 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA_W(C0a812fe/FFFFFF00)
451 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA_W(C0a81234/77777777)
452 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA_W(C0a81234/ffffffff)
453 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA_W(C0a81234/00000000)
454 NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_TPA(ac100014)
455 NXM_OF_ARP_TPA_W(C0D80000/FFFF0000)
457 # RARP source hardware address
458 NXM_OF_ETH_TYPE(8035) NXM_NX_ARP_SHA(0002e30f80a4)
459 NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_SHA(0002e30f80a4)
460 NXM_NX_ARP_SHA(0002e30f80a4)
462 # RARP destination hardware address
463 NXM_OF_ETH_TYPE(8035) NXM_NX_ARP_THA(0002e30f80a4)
464 NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_THA(0002e30f80a4)
465 NXM_NX_ARP_THA(0002e30f80a4)
468 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005)
469 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005)
470 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
471 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/5a5a5a5a5a5a5a5a0000000000000000)
472 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
473 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/00000000000000000000000000000000)
474 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
477 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST(20010db83c4d00010002000300040005)
478 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_DST(20010db83c4d00010002000300040005)
479 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/77777777777777777777777777777777)
480 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
481 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/00000000000000000000000000000000)
482 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
485 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_LABEL(1000000f)
486 NXM_NX_IPV6_LABEL(0000000f)
487 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_LABEL(0000000f)
490 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
491 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(88) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
492 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET_W(20010db83c4d00010002000300040005/0123456789abcdeffedcba9876543210)
493 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET_W(20010db83c4d00010002000300040005/ffffffffffffffffffffffffffffffff)
494 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET_W(20010db83c4d00010002000300040005/00000000000000000000000000000000)
495 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(88) NXM_NX_ND_TARGET_W(20010db83c4d00010002000300040005/fedcba98765432100123456789abcdef)
497 # ND source hardware address
498 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)
499 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)
500 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)
501 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)
503 # ND destination hardware address
504 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)
505 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)
506 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)
507 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)
510 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(00)
511 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(01)
512 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(02)
513 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(03)
514 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(00/03)
515 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(00/fd)
516 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(00/02)
517 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(01/01)
518 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(02/02)
519 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(03/03)
520 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(03/ff)
521 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(03/00)
522 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(f3)
525 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(00)
526 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(01)
527 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(02)
528 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(03)
529 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(00/03)
530 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(00/01)
531 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(00/02)
532 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(01/01)
533 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(02/02)
534 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(03/03)
535 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(03/00)
536 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(03/ff)
537 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(f3)
540 NXM_NX_COOKIE(00000000abcdef01)
541 NXM_NX_COOKIE_W(84200000abcdef01/84200000FFFFFFFF)
542 NXM_NX_COOKIE_W(84200000abcdef01/ffffffffffffffff)
543 NXM_NX_COOKIE_W(84200000abcdef01/0000000000000000)
546 NXM_NX_TUN_ID(00000000abcdef01)
547 NXM_NX_TUN_ID_W(84200000abcdef01/84200000FFFFFFFF)
548 NXM_NX_TUN_ID_W(84200000abcdef01/FFFFFFFFFFFFFFFF)
549 NXM_NX_TUN_ID_W(84200000abcdef01/0000000000000000)
552 NXM_NX_REG0(acebdf56)
553 NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
554 NXM_NX_REG0_W(a0e0d050/ffffffff)
555 NXM_NX_REG0_W(a0e0d050/00000000)
557 # Invalid field number.
560 # Unimplemented registers.
562 # This test assumes that at least two registers, but fewer than 16,
563 # registers are implemented.
565 00010108(12345678/12345678)
567 00011f08(12345678/12345678)
569 AT_CHECK([ovs-ofctl -vPATTERN:'console:%c|%p|%m' --strict parse-nx-match < nx-match.txt], [0], [dnl
577 NXM_OF_ETH_DST(0002e30f80a4)
578 NXM_OF_ETH_DST_W(010000000000/010000000000)
579 NXM_OF_ETH_DST_W(000000000000/010000000000)
580 NXM_OF_ETH_DST_W(010000000000/010000000000)
581 NXM_OF_ETH_DST(0002e30f80a4)
583 NXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
584 NXM_OF_ETH_DST_W(40125218000a/5a5a5a5a5a5a)
587 NXM_OF_ETH_SRC(020898456ddb)
588 NXM_OF_ETH_SRC_W(012345014545/ffffff555555)
589 NXM_OF_ETH_SRC(020898456ddb)
593 NXM_OF_ETH_TYPE(0800)
594 NXM_OF_IN_PORT(0012), NXM_OF_ETH_TYPE(0800)
597 NXM_OF_VLAN_TCI(f009)
598 nx_pull_match() returned error OFPBMC_DUP_FIELD
599 NXM_OF_VLAN_TCI(0000)
600 NXM_OF_VLAN_TCI(3123)
601 NXM_OF_VLAN_TCI(0123)
602 NXM_OF_VLAN_TCI_W(1123/1fff)
603 NXM_OF_VLAN_TCI(1123)
605 NXM_OF_VLAN_TCI_W(f000/f000)
606 NXM_OF_VLAN_TCI_W(0000/e000)
609 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_TOS(f0)
610 nx_pull_match() returned error OFPBMC_BAD_VALUE
611 nx_pull_match() returned error OFPBMC_BAD_PREREQ
614 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_ECN(03)
615 nx_pull_match() returned error OFPBMC_BAD_VALUE
616 nx_pull_match() returned error OFPBMC_BAD_PREREQ
619 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(01)
620 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(05)
621 nx_pull_match() returned error OFPBMC_BAD_PREREQ
624 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_TTL(80)
625 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_TTL(ff)
626 nx_pull_match() returned error OFPBMC_BAD_PREREQ
629 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC(ac100014)
630 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC_W(c0a80000/ffff0000)
631 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC_W(40080000/5a5a5a5a)
632 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC(c0a80000)
633 NXM_OF_ETH_TYPE(0800)
634 nx_pull_match() returned error OFPBMC_BAD_PREREQ
635 nx_pull_match() returned error OFPBMC_BAD_PREREQ
638 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_DST(ac100014)
639 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_DST_W(c0a80000/ffff0000)
640 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_DST_W(40080000/5a5a5a5a)
641 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_DST(c0a80000)
642 NXM_OF_ETH_TYPE(0800)
643 nx_pull_match() returned error OFPBMC_BAD_PREREQ
644 nx_pull_match() returned error OFPBMC_BAD_PREREQ
647 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC(4231)
648 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC_W(5050/f0f0)
649 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC(5050)
650 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06)
651 nx_pull_match() returned error OFPBMC_BAD_PREREQ
653 # TCP destination port
654 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST(4231)
655 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST_W(fde0/fff0)
656 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST(fde0)
657 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06)
658 nx_pull_match() returned error OFPBMC_BAD_PREREQ
661 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_SRC(8732)
662 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_SRC_W(0132/01ff)
663 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_SRC(0132)
664 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11)
665 nx_pull_match() returned error OFPBMC_BAD_PREREQ
667 # UDP destination port
668 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST(1782)
669 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST_W(5005/f00f)
670 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST(5005)
671 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11)
672 nx_pull_match() returned error OFPBMC_BAD_PREREQ
675 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(01), NXM_OF_ICMP_TYPE(12)
676 nx_pull_match() returned error OFPBMC_BAD_PREREQ
679 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(01), NXM_OF_ICMP_CODE(12)
680 nx_pull_match() returned error OFPBMC_BAD_PREREQ
681 nx_pull_match() returned error OFPBMC_BAD_PREREQ
682 nx_pull_match() returned error OFPBMC_BAD_PREREQ
685 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_OP(0001)
686 nx_pull_match() returned error OFPBMC_BAD_VALUE
687 nx_pull_match() returned error OFPBMC_BAD_PREREQ
688 nx_pull_match() returned error OFPBMC_BAD_PREREQ
689 nx_pull_match() returned error OFPBMC_DUP_FIELD
691 # ARP source protocol address
692 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_SPA(ac100014)
693 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_SPA_W(c0a81200/ffffff00)
694 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_SPA_W(80a80200/aaaaaa00)
695 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_SPA(c0a81234)
696 NXM_OF_ETH_TYPE(0806)
697 nx_pull_match() returned error OFPBMC_BAD_PREREQ
698 nx_pull_match() returned error OFPBMC_BAD_PREREQ
700 # ARP destination protocol address
701 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_TPA(ac100014)
702 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_TPA_W(c0a81200/ffffff00)
703 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_TPA_W(40201234/77777777)
704 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_TPA(c0a81234)
705 NXM_OF_ETH_TYPE(0806)
706 nx_pull_match() returned error OFPBMC_BAD_PREREQ
707 nx_pull_match() returned error OFPBMC_BAD_PREREQ
709 # ARP source hardware address
710 NXM_OF_ETH_TYPE(0806), NXM_NX_ARP_SHA(0002e30f80a4)
711 nx_pull_match() returned error OFPBMC_BAD_PREREQ
712 nx_pull_match() returned error OFPBMC_BAD_PREREQ
714 # ARP destination hardware address
715 NXM_OF_ETH_TYPE(0806), NXM_NX_ARP_THA(0002e30f80a4)
716 nx_pull_match() returned error OFPBMC_BAD_PREREQ
717 nx_pull_match() returned error OFPBMC_BAD_PREREQ
720 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_OP(0003)
721 nx_pull_match() returned error OFPBMC_BAD_VALUE
722 nx_pull_match() returned error OFPBMC_BAD_PREREQ
723 nx_pull_match() returned error OFPBMC_BAD_PREREQ
724 nx_pull_match() returned error OFPBMC_DUP_FIELD
726 # RARP source protocol address
727 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_SPA(ac100014)
728 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_SPA_W(c0a81200/ffffff00)
729 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_SPA_W(80a80200/aaaaaa00)
730 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_SPA(c0a81234)
731 NXM_OF_ETH_TYPE(8035)
732 nx_pull_match() returned error OFPBMC_BAD_PREREQ
733 nx_pull_match() returned error OFPBMC_BAD_PREREQ
735 # RARP destination protocol address
736 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_TPA(ac100014)
737 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_TPA_W(c0a81200/ffffff00)
738 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_TPA_W(40201234/77777777)
739 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_TPA(c0a81234)
740 NXM_OF_ETH_TYPE(8035)
741 nx_pull_match() returned error OFPBMC_BAD_PREREQ
742 nx_pull_match() returned error OFPBMC_BAD_PREREQ
744 # RARP source hardware address
745 NXM_OF_ETH_TYPE(8035), NXM_NX_ARP_SHA(0002e30f80a4)
746 nx_pull_match() returned error OFPBMC_BAD_PREREQ
747 nx_pull_match() returned error OFPBMC_BAD_PREREQ
749 # RARP destination hardware address
750 NXM_OF_ETH_TYPE(8035), NXM_NX_ARP_THA(0002e30f80a4)
751 nx_pull_match() returned error OFPBMC_BAD_PREREQ
752 nx_pull_match() returned error OFPBMC_BAD_PREREQ
755 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005)
756 nx_pull_match() returned error OFPBMC_BAD_PREREQ
757 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
758 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC_W(00000818184800000000000000000000/5a5a5a5a5a5a5a5a0000000000000000)
759 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010000000000000000)
760 NXM_OF_ETH_TYPE(86dd)
761 nx_pull_match() returned error OFPBMC_BAD_PREREQ
764 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST(20010db83c4d00010002000300040005)
765 nx_pull_match() returned error OFPBMC_BAD_PREREQ
766 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST_W(20010530344500010000000000000000/77777777777777777777777777777777)
767 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST(20010db83c4d00010000000000000000)
768 NXM_OF_ETH_TYPE(86dd)
769 nx_pull_match() returned error OFPBMC_BAD_PREREQ
772 nx_pull_match() returned error OFPBMC_BAD_VALUE
773 nx_pull_match() returned error OFPBMC_BAD_PREREQ
774 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_LABEL(0000000f)
777 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87), NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
778 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(88), NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
779 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87), NXM_NX_ND_TARGET_W(00010520080900010000000000040000/0123456789abcdeffedcba9876543210)
780 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87), NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
781 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87)
782 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(88), NXM_NX_ND_TARGET_W(20000898344400000002000300000005/fedcba98765432100123456789abcdef)
784 # ND source hardware address
785 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)
786 nx_pull_match() returned error OFPBMC_BAD_PREREQ
787 nx_pull_match() returned error OFPBMC_BAD_PREREQ
788 nx_pull_match() returned error OFPBMC_BAD_PREREQ
790 # ND destination hardware address
791 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)
792 nx_pull_match() returned error OFPBMC_BAD_PREREQ
793 nx_pull_match() returned error OFPBMC_BAD_PREREQ
794 nx_pull_match() returned error OFPBMC_BAD_PREREQ
797 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(00)
798 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(01)
799 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(02)
800 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(03)
801 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(00)
802 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(00/01)
803 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(00/02)
804 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(01/01)
805 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(02/02)
806 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(03)
807 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(03)
808 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(00)
809 nx_pull_match() returned error OFPBMC_BAD_VALUE
812 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(00)
813 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(01)
814 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(02)
815 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(03)
816 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(00)
817 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(00/01)
818 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(00/02)
819 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(01/01)
820 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(02/02)
821 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(03)
822 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(00)
823 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(03)
824 nx_pull_match() returned error OFPBMC_BAD_VALUE
827 NXM_NX_COOKIE(00000000abcdef01)
828 NXM_NX_COOKIE_W(84200000abcdef01/84200000ffffffff)
829 NXM_NX_COOKIE(84200000abcdef01)
833 NXM_NX_TUN_ID(00000000abcdef01)
834 NXM_NX_TUN_ID_W(84200000abcdef01/84200000ffffffff)
835 NXM_NX_TUN_ID(84200000abcdef01)
839 NXM_NX_REG0(acebdf56)
840 NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
841 NXM_NX_REG0(a0e0d050)
844 # Invalid field number.
845 nx_pull_match() returned error OFPBMC_BAD_FIELD
847 # Unimplemented registers.
849 # This test assumes that at least two registers, but fewer than 16,
850 # registers are implemented.
851 NXM_NX_REG0(12345678)
852 NXM_NX_REG0_W(12345678/12345678)
853 nx_pull_match() returned error OFPBMC_BAD_FIELD
854 nx_pull_match() returned error OFPBMC_BAD_FIELD
857 # Check that at least the first warning made it. (It's rate-limited
858 # so a variable number could show up, especially under valgrind etc.)
859 AT_CHECK([grep 'has 1-bits in value' stderr | sed 1q], [0], [dnl
860 nx_match|WARN|NXM/OXM entry NXM_OF_ETH_DST_W(ffffffffffff/010000000000) has 1-bits in value for bits wildcarded by the mask. (Future versions of OVS may report this as an OpenFlow error.)
863 # Check that there wasn't any other stderr output.
864 AT_CHECK([grep -v 'has 1-bits in value' stderr], [1])
867 AT_SETUP([ovs-ofctl parse-ofp10-match])
869 AT_DATA([test-data], [dnl
871 003820fe fffe xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx xxxx xx xx xxxx dnl
872 xxxxxxxx xxxxxxxx xxxx xxxx
874 # dl_src=00:01:02:03:04:05
875 003820fb xxxx 000102030405 xxxxxxxxxxxx xxxx xx xx xxxx xx xx xxxx dnl
876 xxxxxxxx xxxxxxxx xxxx xxxx
878 # dl_dst=10:20:30:40:50:60
879 003820f7 xxxx xxxxxxxxxxxx 102030405060 xxxx xx xx xxxx xx xx xxxx dnl
880 xxxxxxxx xxxxxxxx xxxx xxxx
883 003820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx 0123 xx xx xxxx xx xx xxxx dnl
884 xxxxxxxx xxxxxxxx xxxx xxxx
887 002820ff xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx 05 xx xxxx xx xx xxxx dnl
888 xxxxxxxx xxxxxxxx xxxx xxxx
890 # dl_vlan=291,dl_vlan_pcp=4
891 002820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx 0123 04 xx xxxx xx xx xxxx dnl
892 xxxxxxxx xxxxxxxx xxxx xxxx
895 003820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx ffff xx xx xxxx xx xx xxxx dnl
896 xxxxxxxx xxxxxxxx xxxx xxxx
898 dnl dl_vlan_pcp doesn't make sense when dl_vlan is "none", so
899 dnl OVS ignores it and drops it on output.
903 002820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx ffff 05 xx xxxx xx xx xxxx dnl
904 xxxxxxxx xxxxxxxx xxxx xxxx
906 dnl Invalid VID and PCP discards out-of-range bits:
907 # dl_vlan=256,dl_vlan_pcp=7
910 002820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx f100 ff xx xxxx xx xx xxxx dnl
911 xxxxxxxx xxxxxxxx xxxx xxxx
914 003820ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 1234 xx xx xxxx dnl
915 xxxxxxxx xxxxxxxx xxxx xxxx
918 003820cf xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 05 xxxx dnl
919 xxxxxxxx xxxxxxxx xxxx xxxx
921 dnl Ignore nw_proto if not IP or ARP:
922 # dl_type=0x1234,nw_proto=5
923 # normal: 3: cf -> ef
924 # normal: 25: 05 -> 00
925 & ofp_util|INFO|normalization changed ofp_match, details:
926 & ofp_util|INFO| pre: dl_type=0x1234,nw_proto=5
927 & ofp_util|INFO|post: dl_type=0x1234
928 003820cf xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 1234 xx 05 xxxx dnl
929 xxxxxxxx xxxxxxxx xxxx xxxx
932 001820ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 fc xx xxxx dnl
933 xxxxxxxx xxxxxxxx xxxx xxxx
935 dnl Ignore nw_tos if not IP:
938 # normal: 1: 18 -> 38
939 # normal: 24: 04 -> 00
940 & ofp_util|INFO|normalization changed ofp_match, details:
941 & ofp_util|INFO| pre: arp,nw_tos=4
942 & ofp_util|INFO|post: arp
943 001820ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 05 xx xxxx dnl
944 xxxxxxxx xxxxxxxx xxxx xxxx
946 dnl Low 2 bits of invalid TOS are forced to 0:
949 001820ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 31 xx xxxx dnl
950 xxxxxxxx xxxxxxxx xxxx xxxx
953 003820cf xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx 02 xxxx dnl
954 xxxxxxxx xxxxxxxx xxxx xxxx
956 # ip,nw_src=192.168.128.85
957 003800ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx xx xxxx dnl
958 c0a88055 xxxxxxxx xxxx xxxx
960 # ip,nw_src=192.168.128.0/24
962 003808ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx xx xxxx dnl
963 c0a88055 xxxxxxxx xxxx xxxx
965 # ip,nw_dst=192.168.128.85
966 003020ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx xx xxxx dnl
967 xxxxxxxx c0a88055 xxxx xxxx
969 # ip,nw_dst=192.168.128.0/24
971 003220ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx xx xxxx dnl
972 xxxxxxxx c0a88055 xxxx xxxx
974 # arp,arp_spa=192.168.128.85
975 003800ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx xx xxxx dnl
976 c0a88055 xxxxxxxx xxxx xxxx
978 # arp,arp_spa=192.168.128.0/24
980 003808ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx xx xxxx dnl
981 c0a88055 xxxxxxxx xxxx xxxx
983 # arp,arp_tpa=192.168.128.85
984 003020ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx xx xxxx dnl
985 xxxxxxxx c0a88055 xxxx xxxx
987 # arp,arp_tpa=192.168.128.0/24
989 003220ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx xx xxxx dnl
990 xxxxxxxx c0a88055 xxxx xxxx
992 dnl Ignore nw_src if not IP or ARP:
993 # dl_type=0x1234,nw_src=192.168.128.0/24
995 # normal: 2: 08 -> 20
996 # normal: 28: c0 -> 00
997 # normal: 29: a8 -> 00
998 # normal: 30: 80 -> 00
999 & ofp_util|INFO|normalization changed ofp_match, details:
1000 & ofp_util|INFO| pre: dl_type=0x1234,nw_src=192.168.128.0/24
1001 & ofp_util|INFO|post: dl_type=0x1234
1002 003808ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 1234 xx xx xxxx dnl
1003 c0a88055 xxxxxxxx xxxx xxxx
1005 dnl Ignore nw_dst if not IP or ARP:
1006 # dl_type=0x1234,nw_dst=192.168.128.0/24
1008 # normal: 1: 32 -> 38
1009 # normal: 32: c0 -> 00
1010 # normal: 33: a8 -> 00
1011 # normal: 34: 80 -> 00
1012 & ofp_util|INFO|normalization changed ofp_match, details:
1013 & ofp_util|INFO| pre: dl_type=0x1234,nw_dst=192.168.128.0/24
1014 & ofp_util|INFO|post: dl_type=0x1234
1015 003220ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 1234 xx xx xxxx dnl
1016 xxxxxxxx c0a88055 xxxx xxxx
1019 0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 06 xxxx dnl
1020 xxxxxxxx xxxxxxxx 01bb xxxx
1023 0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 06 xxxx dnl
1024 xxxxxxxx xxxxxxxx xxxx 01bb
1027 0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 11 xxxx dnl
1028 xxxxxxxx xxxxxxxx 01bb xxxx
1031 0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 11 xxxx dnl
1032 xxxxxxxx xxxxxxxx xxxx 01bb
1035 0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 01 xxxx dnl
1036 xxxxxxxx xxxxxxxx 0005 xxxx
1039 0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 01 xxxx dnl
1040 xxxxxxxx xxxxxxxx xxxx 0008
1042 dnl Ignore tp_src if not TCP or UDP:
1043 # ip,nw_proto=21,tp_src=443
1044 # normal: 3: 8f -> cf
1045 # normal: 36: 01 -> 00
1046 # normal: 37: bb -> 00
1047 & ofp_util|INFO|normalization changed ofp_match, details:
1048 & ofp_util|INFO| pre: ip,nw_proto=21,tp_src=443
1049 & ofp_util|INFO|post: ip,nw_proto=21
1050 0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 15 xxxx dnl
1051 xxxxxxxx xxxxxxxx 01bb xxxx
1053 dnl Ignore tp_dst if not TCP or UDP:
1054 # ip,nw_proto=21,tp_dst=443
1055 # normal: 3: 4f -> cf
1056 # normal: 38: 01 -> 00
1057 # normal: 39: bb -> 00
1058 dnl The normalization details are suppressed here due to rate-limiting.
1059 0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 15 xxxx dnl
1060 xxxxxxxx xxxxxxxx xxxx 01bb
1063 sed '/^[[#&]]/d' < test-data > input.txt
1064 sed -n 's/^# //p; /^$/p' < test-data > expout
1065 sed -n 's/^& //p' < test-data > experr
1066 AT_CAPTURE_FILE([input.txt])
1067 AT_CAPTURE_FILE([expout])
1068 AT_CAPTURE_FILE([experr])
1070 [ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-ofp10-match < input.txt],
1071 [0], [expout], [experr])
1074 AT_SETUP([ovs-ofctl parse-ofp11-match])
1075 AT_KEYWORDS([OF1.1])
1076 AT_DATA([test-data], [dnl
1078 0000 0058 fffffffe 000003fe dnl
1079 000000000000ffffffffffff 000000000000ffffffffffff dnl
1080 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1081 00000000 00 000000 0000000000000000ffffffffffffffff
1083 # bad ofp11_match: OFPBMC_BAD_VALUE
1084 & ofp_util|WARN|port 305419896 is outside the supported range 0 through 65279 or 0xffffff00 through 0xffffffff
1085 0000 0058 12345678 000003fe dnl
1086 000000000000ffffffffffff 000000000000ffffffffffff dnl
1087 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1088 00000000 00 000000 0000000000000000ffffffffffffffff
1090 # dl_src=00:01:02:03:04:05
1091 0000 0058 00000000 000003ff dnl
1092 000102030405000000000000 000000000000ffffffffffff dnl
1093 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1094 00000000 00 000000 0000000000000000ffffffffffffffff
1096 # dl_src=55:55:55:55:55:55/55:55:55:55:55:55
1097 0000 0058 00000000 000003ff dnl
1098 555555555555aaaaaaaaaaaa 000000000000ffffffffffff dnl
1099 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1100 00000000 00 000000 0000000000000000ffffffffffffffff
1102 # dl_dst=00:01:02:03:04:05
1103 0000 0058 00000000 000003ff dnl
1104 000000000000ffffffffffff 000102030405000000000000 dnl
1105 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1106 00000000 00 000000 0000000000000000ffffffffffffffff
1108 # dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
1109 0000 0058 00000000 000003ff dnl
1110 000000000000ffffffffffff 010000000000feffffffffff dnl
1111 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1112 00000000 00 000000 0000000000000000ffffffffffffffff
1114 # dl_dst=00:01:02:03:04:05/fe:ff:ff:ff:ff:ff
1115 0000 0058 00000000 000003ff dnl
1116 000000000000ffffffffffff 000102030405010000000000 dnl
1117 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1118 00000000 00 000000 0000000000000000ffffffffffffffff
1120 # dl_dst=55:55:55:55:55:55/55:55:55:55:55:55
1121 0000 0058 00000000 000003ff dnl
1122 000000000000ffffffffffff 555555555555aaaaaaaaaaaa dnl
1123 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1124 00000000 00 000000 0000000000000000ffffffffffffffff
1126 dnl dl_vlan_pcp is ignored if dl_vlan is wildcarded, which causes the
1127 dnl the wildcard bit and the dl_vlan_pcp to be dropped for output:
1131 0000 0058 00000001 000003fa dnl
1132 000000000000ffffffffffff 000000000000ffffffffffff dnl
1133 0000 03 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1134 00000000 00 000000 0000000000000000ffffffffffffffff
1137 0000 0058 00000000 000003fd dnl
1138 000000000000ffffffffffff 000000000000ffffffffffff dnl
1139 0123 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1140 00000000 00 000000 0000000000000000ffffffffffffffff
1144 0000 0058 00000000 000003fd dnl
1145 000000000000ffffffffffff 000000000000ffffffffffff dnl
1146 ffff 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1147 00000000 00 000000 0000000000000000ffffffffffffffff
1149 dnl OFPVID_NONE ignores dl_vlan_pcp even if not wildcarded, which causes
1150 dnl the wildcard bit and the dl_vlan_pcp to be dropped for output:
1154 0000 0058 00000000 000003f9 dnl
1155 000000000000ffffffffffff 000000000000ffffffffffff dnl
1156 ffff 05 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1157 00000000 00 000000 0000000000000000ffffffffffffffff
1159 # vlan_tci=0x1000/0x1000
1160 0000 0058 00000000 000003fd dnl
1161 000000000000ffffffffffff 000000000000ffffffffffff dnl
1162 fffe 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1163 00000000 00 000000 0000000000000000ffffffffffffffff
1165 dnl Try invalid VID:
1166 # bad ofp11_match: OFPBMC_BAD_VALUE
1167 0000 0058 00000000 000003fd dnl
1168 000000000000ffffffffffff 000000000000ffffffffffff dnl
1169 1234 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1170 00000000 00 000000 0000000000000000ffffffffffffffff
1173 0000 0058 00000000 000003f9 dnl
1174 000000000000ffffffffffff 000000000000ffffffffffff dnl
1175 fffe 04 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1176 00000000 00 000000 0000000000000000ffffffffffffffff
1178 # dl_vlan=10,dl_vlan_pcp=6
1179 0000 0058 00000000 000003f9 dnl
1180 000000000000ffffffffffff 000000000000ffffffffffff dnl
1181 000a 06 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1182 00000000 00 000000 0000000000000000ffffffffffffffff
1185 0000 0058 00000000 000003f7 dnl
1186 000000000000ffffffffffff 000000000000ffffffffffff dnl
1187 0000 00 00 1234 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1188 00000000 00 000000 0000000000000000ffffffffffffffff
1191 0000 0058 00000000 000003e7 dnl
1192 000000000000ffffffffffff 000000000000ffffffffffff dnl
1193 0000 00 00 0800 fc 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1194 00000000 00 000000 0000000000000000ffffffffffffffff
1196 dnl Try invalid TOS:
1197 # bad ofp11_match: OFPBMC_BAD_VALUE
1198 0000 0058 00000000 000003e7 dnl
1199 000000000000ffffffffffff 000000000000ffffffffffff dnl
1200 0000 00 00 0800 01 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1201 00000000 00 000000 0000000000000000ffffffffffffffff
1204 0000 0058 00000000 000003d7 dnl
1205 000000000000ffffffffffff 000000000000ffffffffffff dnl
1206 0000 00 00 0800 00 05 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1207 00000000 00 000000 0000000000000000ffffffffffffffff
1210 0000 0058 00000000 000003d7 dnl
1211 000000000000ffffffffffff 000000000000ffffffffffff dnl
1212 0000 00 00 0806 00 02 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1213 00000000 00 000000 0000000000000000ffffffffffffffff
1215 # ip,nw_src=192.168.128.0/24
1216 0000 0058 00000000 000003f7 dnl
1217 000000000000ffffffffffff 000000000000ffffffffffff dnl
1218 0000 00 00 0800 00 00 c0a88000000000ff 00000000ffffffff 0000 0000 dnl
1219 00000000 00 000000 0000000000000000ffffffffffffffff
1221 # ip,nw_src=128.160.128.0/165.165.165.165
1224 0000 0058 00000000 000003f7 dnl
1225 000000000000ffffffffffff 000000000000ffffffffffff dnl
1226 0000 00 00 0800 00 00 c0a880005a5a5a5a 00000000ffffffff 0000 0000 dnl
1227 00000000 00 000000 0000000000000000ffffffffffffffff
1229 # ip,nw_dst=192.168.128.0/24
1230 0000 0058 00000000 000003f7 dnl
1231 000000000000ffffffffffff 000000000000ffffffffffff dnl
1232 0000 00 00 0800 00 00 00000000ffffffff c0a88000000000ff 0000 0000 dnl
1233 00000000 00 000000 0000000000000000ffffffffffffffff
1235 # ip,nw_dst=128.160.128.0/165.165.165.165
1238 0000 0058 00000000 000003f7 dnl
1239 000000000000ffffffffffff 000000000000ffffffffffff dnl
1240 0000 00 00 0800 00 00 00000000ffffffff c0a880005a5a5a5a 0000 0000 dnl
1241 00000000 00 000000 0000000000000000ffffffffffffffff
1243 # arp,arp_spa=192.168.128.0/24
1244 0000 0058 00000000 000003f7 dnl
1245 000000000000ffffffffffff 000000000000ffffffffffff dnl
1246 0000 00 00 0806 00 00 c0a88000000000ff 00000000ffffffff 0000 0000 dnl
1247 00000000 00 000000 0000000000000000ffffffffffffffff
1249 # arp,arp_tpa=192.168.128.0/24
1250 0000 0058 00000000 000003f7 dnl
1251 000000000000ffffffffffff 000000000000ffffffffffff dnl
1252 0000 00 00 0806 00 00 00000000ffffffff c0a88000000000ff 0000 0000 dnl
1253 00000000 00 000000 0000000000000000ffffffffffffffff
1256 0000 0058 00000000 00000397 dnl
1257 000000000000ffffffffffff 000000000000ffffffffffff dnl
1258 0000 00 00 0800 00 06 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
1259 00000000 00 000000 0000000000000000ffffffffffffffff
1262 0000 0058 00000000 00000357 dnl
1263 000000000000ffffffffffff 000000000000ffffffffffff dnl
1264 0000 00 00 0800 00 06 00000000ffffffff 00000000ffffffff 0000 01bb dnl
1265 00000000 00 000000 0000000000000000ffffffffffffffff
1268 0000 0058 00000000 00000397 dnl
1269 000000000000ffffffffffff 000000000000ffffffffffff dnl
1270 0000 00 00 0800 00 11 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
1271 00000000 00 000000 0000000000000000ffffffffffffffff
1274 0000 0058 00000000 00000397 dnl
1275 000000000000ffffffffffff 000000000000ffffffffffff dnl
1276 0000 00 00 0800 00 01 00000000ffffffff 00000000ffffffff 0005 0000 dnl
1277 00000000 00 000000 0000000000000000ffffffffffffffff
1280 0000 0058 00000000 00000357 dnl
1281 000000000000ffffffffffff 000000000000ffffffffffff dnl
1282 0000 00 00 0800 00 01 00000000ffffffff 00000000ffffffff 0000 0008 dnl
1283 00000000 00 000000 0000000000000000ffffffffffffffff
1286 0000 0058 00000000 00000397 dnl
1287 000000000000ffffffffffff 000000000000ffffffffffff dnl
1288 0000 00 00 0800 00 11 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
1289 00000000 00 000000 0000000000000000ffffffffffffffff
1292 0000 0058 00000000 00000357 dnl
1293 000000000000ffffffffffff 000000000000ffffffffffff dnl
1294 0000 00 00 0800 00 11 00000000ffffffff 00000000ffffffff 0000 01bb dnl
1295 00000000 00 000000 0000000000000000ffffffffffffffff
1299 0000 0058 00000000 000003d7 dnl
1300 000000000000ffffffffffff 000000000000ffffffffffff dnl
1301 0000 00 00 0800 00 84 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1302 00000000 00 000000 0000000000000000ffffffffffffffff
1304 dnl SCTP tp_src matching not supported:
1305 # bad ofp11_match: OFPBMC_BAD_FIELD
1306 0000 0058 00000000 00000397 dnl
1307 000000000000ffffffffffff 000000000000ffffffffffff dnl
1308 0000 00 00 0800 00 84 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
1309 00000000 00 000000 0000000000000000ffffffffffffffff
1311 dnl SCTP tp_dst matching not supported:
1312 # bad ofp11_match: OFPBMC_BAD_FIELD
1313 0000 0058 00000000 00000357 dnl
1314 000000000000ffffffffffff 000000000000ffffffffffff dnl
1315 0000 00 00 0800 00 84 00000000ffffffff 00000000ffffffff 0000 01bb dnl
1316 00000000 00 000000 0000000000000000ffffffffffffffff
1318 dnl Ignore tp_src if not TCP or UDP or SCTP:
1323 0000 0058 00000000 00000397 dnl
1324 000000000000ffffffffffff 000000000000ffffffffffff dnl
1325 0000 00 00 0800 00 15 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
1326 00000000 00 000000 0000000000000000ffffffffffffffff
1328 dnl Ignore tp_dst if not TCP or UDP or SCTP:
1333 0000 0058 00000000 00000357 dnl
1334 000000000000ffffffffffff 000000000000ffffffffffff dnl
1335 0000 00 00 0800 00 16 00000000ffffffff 00000000ffffffff 0000 01bb dnl
1336 00000000 00 000000 0000000000000000ffffffffffffffff
1338 dnl mpls_label not yet supported:
1339 # bad ofp11_match: OFPBMC_BAD_TAG
1340 0000 0058 00000000 000002f7 dnl
1341 000000000000ffffffffffff 000000000000ffffffffffff dnl
1342 0000 00 00 8847 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1343 12345678 00 000000 0000000000000000ffffffffffffffff
1345 dnl mpls_tc not yet supported:
1346 # bad ofp11_match: OFPBMC_BAD_TAG
1347 0000 0058 00000000 000001f7 dnl
1348 000000000000ffffffffffff 000000000000ffffffffffff dnl
1349 0000 00 00 8848 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1350 00000000 5a 000000 0000000000000000ffffffffffffffff
1352 dnl mpls_label and mpls_tc must be ignored if dl_type is not MPLS:
1360 0000 0058 00000000 000000f7 dnl
1361 000000000000ffffffffffff 000000000000ffffffffffff dnl
1362 0000 00 00 1234 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1363 12345678 5a 000000 0000000000000000ffffffffffffffff
1366 # metadata=0x1234567890abcdef
1367 0000 0058 00000000 000003ff dnl
1368 000000000000ffffffffffff 000000000000ffffffffffff dnl
1369 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1370 00000000 00 000000 1234567890abcdef0000000000000000
1373 # metadata=0x5555555555555555/0x5555555555555555
1374 0000 0058 00000000 000003ff dnl
1375 000000000000ffffffffffff 000000000000ffffffffffff dnl
1376 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1377 00000000 00 000000 5555555555555555aaaaaaaaaaaaaaaa
1380 # metadata=0x1234000090ab0000/0xffff0000ffff0000
1385 0000 0058 00000000 000003ff dnl
1386 000000000000ffffffffffff 000000000000ffffffffffff dnl
1387 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1388 00000000 00 000000 1234567890abcdef0000ffff0000ffff
1391 sed '/^[[#&]]/d' < test-data > input.txt
1392 sed -n 's/^# //p; /^$/p' < test-data > expout
1393 sed -n 's/^& //p' < test-data > experr
1394 AT_CAPTURE_FILE([input.txt])
1395 AT_CAPTURE_FILE([expout])
1396 AT_CAPTURE_FILE([experr])
1398 [ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-ofp11-match < input.txt],
1399 [0], [expout], [experr])
1402 AT_SETUP([ovs-ofctl parse-nx-match loose])
1403 AT_KEYWORDS([nx-match])
1404 AT_DATA([nx-match.txt], [dnl
1405 NXM_OF_IN_PORT(0001), 01020304(1111/2222), NXM_OF_ETH_TYPE(0800)
1408 AT_CHECK([ovs-ofctl --strict parse-nx-match < nx-match.txt], [0], [dnl
1409 nx_pull_match() returned error OFPBMC_BAD_FIELD
1412 AT_CHECK([ovs-ofctl parse-nx-match < nx-match.txt], [0], [dnl
1413 NXM_OF_IN_PORT(0001), NXM_OF_ETH_TYPE(0800)
1417 AT_SETUP([ovs-ofctl parse-oxm])
1419 AT_DATA([oxm.txt], [dnl
1423 OXM_OF_IN_PORT(00000000)
1424 OXM_OF_IN_PORT(fffffffe)
1427 OXM_OF_METADATA(5a5a5a5a5a5a5a5a)
1428 OXM_OF_METADATA_W(0000000000000000/00000000ffffffff)
1429 OXM_OF_METADATA_W(1234567890abcdef/ffff0000ffff0000)
1430 OXM_OF_METADATA_W(1234567890abcdef/ffffffffffffffff)
1431 OXM_OF_METADATA_W(1234567890abcdef/0000000000000000)
1434 OXM_OF_ETH_DST(0002e30f80a4)
1435 OXM_OF_ETH_DST_W(010000000000/010000000000)
1436 OXM_OF_ETH_DST_W(000000000000/010000000000)
1437 OXM_OF_ETH_DST_W(ffffffffffff/010000000000)
1438 OXM_OF_ETH_DST_W(0002e30f80a4/ffffffffffff)
1439 OXM_OF_ETH_DST_W(0002e30f80a4/000000000000)
1440 OXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
1443 OXM_OF_ETH_SRC(020898456ddb)
1446 OXM_OF_ETH_TYPE(0800)
1447 OXM_OF_ETH_TYPE(0800) OXM_OF_IN_PORT(00000012)
1450 OXM_OF_VLAN_VID(1009) OXM_OF_VLAN_VID(1009) # Duplicate Field
1451 OXM_OF_VLAN_VID(f009) # Bad Value
1452 OXM_OF_VLAN_PCP(00) # Bad Pre-Requisite
1453 OXM_OF_VLAN_VID(0000) # Packets without 802.1Q header or with VID=0
1454 OXM_OF_VLAN_VID(1123) # Packets with VID=123, any PCP
1455 OXM_OF_VLAN_VID(1123) OXM_OF_VLAN_PCP(01) # Packets with VID=123, PCP=1.
1456 OXM_OF_VLAN_VID(0123) # Does not make sense (but supported anyway)
1457 OXM_OF_VLAN_VID_W(0123/0123) # Does not make sense (but supported anyway)
1458 OXM_OF_VLAN_VID_W(1123/0123) # Does not make sense (but supported anyway)
1459 OXM_OF_VLAN_VID_W(0123/1123) # Does not make sense (but supported anyway)
1460 OXM_OF_VLAN_VID(0123) OXM_OF_VLAN_PCP(01) #Bad Pre-Requisite
1461 OXM_OF_VLAN_VID_W(1123/1fff) # Packets with VID=123, any PCP.
1462 OXM_OF_VLAN_VID_W(1123/ffff) # Packets with VID=123, any PCP.
1463 OXM_OF_VLAN_VID_W(1123/0000) # Packets with or without 802.1Q header
1464 OXM_OF_VLAN_VID_W(1123/1f0f), # Packets with # VID=123 (masked)
1465 OXM_OF_VLAN_VID_W(1123/1f0f), OXM_OF_VLAN_PCP(01) # Packets with VID=123 (masked), any PCP.
1466 OXM_OF_VLAN_VID_W(1000/1000) # Packets with any VID, any PCP
1467 OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(01) # Packets with any VID, PCP=1.
1470 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_DSCP(f0)
1471 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_DSCP(41)
1472 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_DSCP(3f)
1476 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_ECN(03)
1477 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_ECN(06)
1481 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01)
1482 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(05)
1486 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC(ac100014)
1487 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC_W(C0a80000/FFFF0000)
1488 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC_W(C0a80000/FFFFFFFF)
1489 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC_W(C0a80000/00000000)
1490 OXM_OF_ETH_TYPE(0806) OXM_OF_IPV4_SRC(ac100014)
1491 OXM_OF_IPV4_SRC_W(C0D80000/FFFF0000)
1494 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST(ac100014)
1495 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST_W(C0a88012/FFFF0000)
1496 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST_W(C0a88012/FFFFFFFF)
1497 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST_W(C0a88012/00000000)
1498 OXM_OF_IPV4_DST(ac100014)
1499 OXM_OF_ETH_TYPE(0806) OXM_OF_IPV4_DST_W(C0D80000/FFFF0000)
1502 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC(4231)
1503 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC_W(5050/F0F0)
1504 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC_W(5050/FFFF)
1505 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC_W(5050/0000)
1506 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(07) OXM_OF_TCP_SRC(4231)
1508 # TCP destination port
1509 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST(4231)
1510 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST_W(FDE0/FFF0)
1511 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST_W(FDE0/FFFF)
1512 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST_W(FDE0/0000)
1513 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(07) OXM_OF_TCP_DST(4231)
1516 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC(8732)
1517 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC_W(0132/01FF)
1518 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC_W(0132/FFFF)
1519 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC_W(0132/0000)
1520 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_UDP_SRC(7823)
1522 # UDP destination port
1523 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST(1782)
1524 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST_W(5005/F00F)
1525 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST_W(5005/FFFF)
1526 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST_W(5005/0000)
1527 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(02) OXM_OF_UDP_DST(1293)
1530 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01) OXM_OF_ICMPV4_TYPE(12)
1531 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(00) OXM_OF_ICMPV4_TYPE(10)
1534 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01) OXM_OF_ICMPV4_CODE(12)
1535 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(00) OXM_OF_ICMPV4_CODE(10)
1536 OXM_OF_ETH_TYPE(0800) OXM_OF_ICMPV4_CODE(10)
1537 OXM_OF_ICMPV4_CODE(00)
1540 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(0001)
1541 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(1111)
1542 OXM_OF_ETH_TYPE(0000) OXM_OF_ARP_OP(0001)
1544 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(0001) OXM_OF_ARP_OP(0001)
1546 # ARP source protocol address
1547 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA(ac100014)
1548 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA_W(C0a81234/FFFFFF00)
1549 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA_W(C0a81234/FFFFFFFF)
1550 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA_W(C0a81234/00000000)
1551 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_SPA(ac100014)
1552 OXM_OF_ARP_SPA_W(C0D8fedc/FFFF0000)
1554 # ARP destination protocol address
1555 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA(ac100014)
1556 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA_W(C0a812fe/FFFFFF00)
1557 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA_W(C0a812fe/FFFFFFFF)
1558 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA_W(C0a812fe/00000000)
1559 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_TPA(ac100014)
1560 OXM_OF_ARP_TPA_W(C0D80000/FFFF0000)
1562 # ARP source hardware address
1563 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA(0002e30f80a4)
1564 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_SHA(0002e30f80a4)
1565 OXM_OF_ARP_SHA(0002e30f80a4)
1566 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA_W(0002e30f80a4/ffffffffffff)
1567 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA_W(0002e30f80a4/000000000000)
1568 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA_W(0002e30f80a4/00000000000f)
1570 # ARP destination hardware address
1571 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA(0002e30f80a4)
1572 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_THA(0002e30f80a4)
1573 OXM_OF_ARP_THA(0002e30f80a4)
1574 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA_W(0002e30f80a4/ffffffffffff)
1575 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA_W(0002e30f80a4/000000000000)
1576 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA_W(0002e30f80a4/00000000000f)
1579 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
1580 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
1581 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1582 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
1583 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/00000000000000000000000000000000)
1584 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1587 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
1588 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
1589 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1590 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
1591 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/00000000000000000000000000000000)
1592 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1595 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL(1000000f)
1596 OXM_OF_IPV6_FLABEL(0000000f)
1597 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL(0000000f)
1598 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/0000000f)
1599 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/000fffff)
1600 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/000ffff0)
1601 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/100fffff)
1602 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/ffffffff)
1603 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/00000000)
1605 # ND source hardware address
1606 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)
1607 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)
1608 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)
1609 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)
1611 # ND destination hardware address
1612 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)
1613 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)
1614 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)
1615 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)
1617 # Invalid field number.
1620 AT_CHECK([ovs-ofctl '-vPATTERN:console:%c|%p|%m' --strict parse-oxm < oxm.txt],
1625 OXM_OF_IN_PORT(00000000)
1626 OXM_OF_IN_PORT(fffffffe)
1629 OXM_OF_METADATA(5a5a5a5a5a5a5a5a)
1630 OXM_OF_METADATA_W(0000000000000000/00000000ffffffff)
1631 OXM_OF_METADATA_W(1234000090ab0000/ffff0000ffff0000)
1632 OXM_OF_METADATA(1234567890abcdef)
1636 OXM_OF_ETH_DST(0002e30f80a4)
1637 OXM_OF_ETH_DST_W(010000000000/010000000000)
1638 OXM_OF_ETH_DST_W(000000000000/010000000000)
1639 OXM_OF_ETH_DST_W(010000000000/010000000000)
1640 OXM_OF_ETH_DST(0002e30f80a4)
1642 OXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
1645 OXM_OF_ETH_SRC(020898456ddb)
1648 OXM_OF_ETH_TYPE(0800)
1649 OXM_OF_IN_PORT(00000012), OXM_OF_ETH_TYPE(0800)
1652 nx_pull_match() returned error OFPBMC_DUP_FIELD
1653 nx_pull_match() returned error OFPBMC_BAD_VALUE
1654 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1655 OXM_OF_VLAN_VID(0000)
1656 OXM_OF_VLAN_VID(1123)
1657 OXM_OF_VLAN_VID(1123), OXM_OF_VLAN_PCP(01)
1658 OXM_OF_VLAN_VID(0123)
1659 OXM_OF_VLAN_VID_W(0123/0123)
1660 OXM_OF_VLAN_VID_W(0123/0123)
1661 OXM_OF_VLAN_VID_W(0123/1123)
1662 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1663 OXM_OF_VLAN_VID(1123)
1664 OXM_OF_VLAN_VID(1123)
1666 OXM_OF_VLAN_VID_W(1103/1f0f)
1667 OXM_OF_VLAN_VID_W(1103/1f0f), OXM_OF_VLAN_PCP(01)
1668 OXM_OF_VLAN_VID_W(1000/1000)
1669 OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(01)
1672 nx_pull_match() returned error OFPBMC_BAD_VALUE
1673 nx_pull_match() returned error OFPBMC_BAD_VALUE
1674 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_DSCP(3f)
1675 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1678 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_ECN(03)
1679 nx_pull_match() returned error OFPBMC_BAD_VALUE
1680 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1683 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01)
1684 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(05)
1685 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1688 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_SRC(ac100014)
1689 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_SRC_W(c0a80000/ffff0000)
1690 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_SRC(c0a80000)
1691 OXM_OF_ETH_TYPE(0800)
1692 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1693 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1696 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_DST(ac100014)
1697 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_DST_W(c0a80000/ffff0000)
1698 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_DST(c0a88012)
1699 OXM_OF_ETH_TYPE(0800)
1700 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1701 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1704 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_SRC(4231)
1705 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_SRC_W(5050/f0f0)
1706 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_SRC(5050)
1707 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06)
1708 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1710 # TCP destination port
1711 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_DST(4231)
1712 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_DST_W(fde0/fff0)
1713 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_DST(fde0)
1714 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06)
1715 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1718 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_SRC(8732)
1719 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_SRC_W(0132/01ff)
1720 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_SRC(0132)
1721 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11)
1722 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1724 # UDP destination port
1725 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_DST(1782)
1726 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_DST_W(5005/f00f)
1727 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_DST(5005)
1728 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11)
1729 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1732 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01), OXM_OF_ICMPV4_TYPE(12)
1733 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1736 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01), OXM_OF_ICMPV4_CODE(12)
1737 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1738 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1739 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1742 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_OP(0001)
1743 nx_pull_match() returned error OFPBMC_BAD_VALUE
1744 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1745 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1746 nx_pull_match() returned error OFPBMC_DUP_FIELD
1748 # ARP source protocol address
1749 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SPA(ac100014)
1750 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SPA_W(c0a81200/ffffff00)
1751 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SPA(c0a81234)
1752 OXM_OF_ETH_TYPE(0806)
1753 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1754 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1756 # ARP destination protocol address
1757 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_TPA(ac100014)
1758 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_TPA_W(c0a81200/ffffff00)
1759 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_TPA(c0a812fe)
1760 OXM_OF_ETH_TYPE(0806)
1761 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1762 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1764 # ARP source hardware address
1765 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SHA(0002e30f80a4)
1766 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1767 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1768 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SHA(0002e30f80a4)
1769 OXM_OF_ETH_TYPE(0806)
1770 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SHA_W(000000000004/00000000000f)
1772 # ARP destination hardware address
1773 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_THA(0002e30f80a4)
1774 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1775 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1776 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_THA(0002e30f80a4)
1777 OXM_OF_ETH_TYPE(0806)
1778 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_THA_W(000000000004/00000000000f)
1781 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
1782 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1783 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1784 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_SRC(20010db83c4d00010000000000000000)
1785 OXM_OF_ETH_TYPE(86dd)
1786 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1789 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
1790 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1791 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1792 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_DST(20010db83c4d00010000000000000000)
1793 OXM_OF_ETH_TYPE(86dd)
1794 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1797 nx_pull_match() returned error OFPBMC_BAD_VALUE
1798 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1799 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
1800 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL_W(0000000f/0000000f)
1801 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
1802 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL_W(00000000/000ffff0)
1803 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
1804 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
1805 OXM_OF_ETH_TYPE(86dd)
1807 # ND source hardware address
1808 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)
1809 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1810 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1811 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1813 # ND destination hardware address
1814 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)
1815 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1816 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1817 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1819 # Invalid field number.
1820 nx_pull_match() returned error OFPBMC_BAD_FIELD
1823 # Check that at least the first warning made it. (It's rate-limited
1824 # so a variable number could show up, especially under valgrind etc.)
1825 AT_CHECK([grep 'has 1-bits in value' stderr | sed 1q], [0], [dnl
1826 nx_match|WARN|NXM/OXM entry OXM_OF_METADATA_W(1234567890abcdef/ffff0000ffff0000) has 1-bits in value for bits wildcarded by the mask. (Future versions of OVS may report this as an OpenFlow error.)
1829 # Check that there wasn't any other stderr output.
1830 AT_CHECK([grep -v 'has 1-bits in value' stderr], [1])
1833 AT_SETUP([ovs-ofctl parse-oxm loose])
1835 AT_DATA([oxm.txt], [dnl
1836 OXM_OF_IN_PORT(00000001), 01020304(1111/2222), OXM_OF_ETH_TYPE(0800)
1839 AT_CHECK([ovs-ofctl --strict parse-oxm < oxm.txt], [0], [dnl
1840 nx_pull_match() returned error OFPBMC_BAD_FIELD
1843 AT_CHECK([ovs-ofctl parse-oxm < oxm.txt], [0], [dnl
1844 OXM_OF_IN_PORT(00000001), OXM_OF_ETH_TYPE(0800)
1848 dnl Check all of the patterns mentioned in the "VLAN Matching" section
1849 dnl in the DESIGN file at top level.
1850 AT_SETUP([ovs-ofctl check-vlan])
1854 AT_CHECK([ovs-ofctl check-vlan 0000 0000], [0], [dnl
1856 NXM: <any> -> 0000/0000
1857 OXM: <any> -> 0000/0000,--
1858 OF1.0: 0000/1,00/1 -> 0000/0000
1859 OF1.1: 0000/1,00/1 -> 0000/0000
1863 AT_CHECK([ovs-ofctl check-vlan 0000 ffff], [0], [dnl
1864 vlan_tci=0x0000 -> 0000/ffff
1865 NXM: NXM_OF_VLAN_TCI(0000) -> 0000/ffff
1866 OXM: OXM_OF_VLAN_VID(0000) -> 0000/1fff,--
1867 OF1.0: ffff/0,00/1 -> 0000/ffff
1868 OF1.1: ffff/0,00/1 -> 0000/ffff
1872 AT_CHECK([ovs-ofctl check-vlan 1abc 1fff], [0], [dnl
1873 dl_vlan=2748 -> 1abc/1fff
1874 NXM: NXM_OF_VLAN_TCI_W(1abc/1fff) -> 1abc/1fff
1875 OXM: OXM_OF_VLAN_VID(1abc) -> 1abc/1fff,--
1876 OF1.0: 0abc/0,00/1 -> 1abc/1fff
1877 OF1.1: 0abc/0,00/1 -> 1abc/1fff
1881 AT_CHECK([ovs-ofctl check-vlan b000 f000], [0], [dnl
1882 dl_vlan_pcp=5 -> b000/f000
1883 NXM: NXM_OF_VLAN_TCI_W(b000/f000) -> b000/f000
1884 OXM: OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(05) -> 1000/1000,05
1885 OF1.0: 0000/1,05/0 -> b000/f000
1886 OF1.1: fffe/0,05/0 -> b000/f000
1890 AT_CHECK([ovs-ofctl check-vlan babc ffff], [0], [dnl
1891 dl_vlan=2748,dl_vlan_pcp=5 -> babc/ffff
1892 NXM: NXM_OF_VLAN_TCI(babc) -> babc/ffff
1893 OXM: OXM_OF_VLAN_VID(1abc), OXM_OF_VLAN_PCP(05) -> 1abc/1fff,05
1894 OF1.0: 0abc/0,05/0 -> babc/ffff
1895 OF1.1: 0abc/0,05/0 -> babc/ffff
1899 AT_CHECK([ovs-ofctl check-vlan 0000 0fff], [0], [dnl
1900 vlan_tci=0x0000/0x0fff -> 0000/0fff
1901 NXM: NXM_OF_VLAN_TCI_W(0000/0fff) -> 0000/0fff
1902 OXM: OXM_OF_VLAN_VID_W(0000/0fff) -> 0000/0fff,--
1903 OF1.0: 0000/0,00/1 -> 1000/1fff
1904 OF1.1: 0000/0,00/1 -> 1000/1fff
1908 AT_CHECK([ovs-ofctl check-vlan 0000 f000], [0], [dnl
1909 vlan_tci=0x0000/0xf000 -> 0000/f000
1910 NXM: NXM_OF_VLAN_TCI_W(0000/f000) -> 0000/f000
1911 OXM: OXM_OF_VLAN_VID_W(0000/1000) -> 0000/1000,--
1912 OF1.0: ffff/0,00/1 -> 0000/ffff
1913 OF1.1: ffff/0,00/1 -> 0000/ffff
1917 AT_CHECK([ovs-ofctl check-vlan 0000 efff], [0], [dnl
1918 vlan_tci=0x0000/0xefff -> 0000/efff
1919 NXM: NXM_OF_VLAN_TCI_W(0000/efff) -> 0000/efff
1920 OXM: OXM_OF_VLAN_VID_W(0000/0fff) -> 0000/0fff,--
1921 OF1.0: 0000/0,00/0 -> 1000/ffff
1922 OF1.1: 0000/0,00/0 -> 1000/ffff
1926 AT_CHECK([ovs-ofctl check-vlan 1001 1001], [0], [dnl
1927 vlan_tci=0x1001/0x1001 -> 1001/1001
1928 NXM: NXM_OF_VLAN_TCI_W(1001/1001) -> 1001/1001
1929 OXM: OXM_OF_VLAN_VID_W(1001/1001) -> 1001/1001,--
1930 OF1.0: 0001/0,00/1 -> 1001/1fff
1931 OF1.1: 0001/0,00/1 -> 1001/1fff
1935 AT_CHECK([ovs-ofctl check-vlan 3000 3000], [0], [dnl
1936 vlan_tci=0x3000/0x3000 -> 3000/3000
1937 NXM: NXM_OF_VLAN_TCI_W(3000/3000) -> 3000/3000
1938 OXM: OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(01) -> 1000/1000,01
1939 OF1.0: 0000/1,01/0 -> 3000/f000
1940 OF1.1: fffe/0,01/0 -> 3000/f000
1945 dnl Check that "-F openflow10" rejects a flow_mod with unsupported features,
1946 dnl such as tunnels and metadata.
1947 AT_SETUP([ovs-ofctl -F option and NXM features])
1948 AT_CHECK([ovs-ofctl -F openflow10 add-flow dummy tun_id=123,actions=drop],
1949 [1], [], [ovs-ofctl: none of the usable flow formats (NXM,OXM) is among the allowed flow formats (OpenFlow10)
1951 AT_CHECK([ovs-ofctl -F openflow10 add-flow dummy metadata=123,actions=drop],
1952 [1], [], [ovs-ofctl: none of the usable flow formats (NXM,OXM) is among the allowed flow formats (OpenFlow10)
1956 dnl Check that "-F nxm" really forces add-flow to use the NXM flow format.
1957 dnl (If it doesn't, then either the tun_id won't show up at all, or it will
1958 dnl additionally show up as the top 32 bits of the cookie.) This checks
1959 dnl for regression against bug #4566.
1960 AT_SETUP([ovs-ofctl -F option with flow_mods])
1962 AT_CHECK([ovs-ofctl -F nxm add-flow br0 tun_id=0x12345678,actions=drop])
1963 AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip], [0], [dnl
1965 tun_id=0x12345678 actions=drop
1970 dnl Check that "-F openflow10" is really honored on dump-flows.
1971 dnl (If it isn't, then dump-flows will show the register match.)
1972 AT_SETUP([ovs-ofctl dump-flows honors -F option])
1974 AT_CHECK([ovs-ofctl add-flow br0 reg0=0x12345,actions=drop])
1975 AT_CHECK([ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip], [0], [dnl
1982 dnl Check that "-F openflow10" fails on dump-flows if the requested match
1983 dnl can't be represented in OpenFlow 1.0.
1984 AT_SETUP([ovs-ofctl dump-flows rejects bad -F option])
1986 AT_CHECK([ovs-ofctl -F openflow10 dump-flows unix:br0.mgmt reg0=0xabcdef], [1], [],
1987 [ovs-ofctl: none of the usable flow formats (NXM,OXM) is among the allowed flow formats (OpenFlow10)
1992 dnl Check that add-flow reports non-normalized flows (feature #5029).
1993 AT_SETUP([ovs-ofctl add-flow reports non-normalized flows])
1995 AT_CHECK([ovs-ofctl TESTABLE_LOG add-flow br0 nw_src=1.2.3.4,actions=5],
1997 ofp_util|INFO|normalization changed ofp_match, details:
1998 ofp_util|INFO| pre: nw_src=1.2.3.4
1999 ofp_util|INFO|post: @&t@
2004 dnl Check that --sort and --rsort works with dump-flows
2005 dnl Default field is 'priority'. Flow entries are displayed based
2006 dnl on field to sort.
2007 AT_SETUP([ovs-ofctl dump-flows with sorting])
2010 AT_DATA([allflows.txt], [[
2011 priority=4,in_port=23213 actions=output:42
2012 priority=5,in_port=1029 actions=output:43
2013 priority=7,in_port=1029 actions=output:43
2014 priority=3,in_port=1028 actions=output:44
2015 priority=1,in_port=1026 actions=output:45
2016 priority=6,in_port=1027 actions=output:64
2017 priority=2,in_port=1025 actions=output:47
2018 priority=8,tcp,tp_src=5 actions=drop
2019 priority=9,tcp,tp_src=6 actions=drop
2022 AT_CHECK([ovs-ofctl add-flows br0 allflows.txt
2024 AT_CHECK([ovs-ofctl --sort dump-flows br0 | ofctl_strip], [0], [dnl
2025 priority=1,in_port=1026 actions=output:45
2026 priority=2,in_port=1025 actions=output:47
2027 priority=3,in_port=1028 actions=output:44
2028 priority=4,in_port=23213 actions=output:42
2029 priority=5,in_port=1029 actions=output:43
2030 priority=6,in_port=1027 actions=output:64
2031 priority=7,in_port=1029 actions=output:43
2032 priority=8,tcp,tp_src=5 actions=drop
2033 priority=9,tcp,tp_src=6 actions=drop
2035 AT_CHECK([ovs-ofctl --rsort dump-flows br0 | ofctl_strip], [0], [dnl
2036 priority=9,tcp,tp_src=6 actions=drop
2037 priority=8,tcp,tp_src=5 actions=drop
2038 priority=7,in_port=1029 actions=output:43
2039 priority=6,in_port=1027 actions=output:64
2040 priority=5,in_port=1029 actions=output:43
2041 priority=4,in_port=23213 actions=output:42
2042 priority=3,in_port=1028 actions=output:44
2043 priority=2,in_port=1025 actions=output:47
2044 priority=1,in_port=1026 actions=output:45
2046 AT_CHECK([ovs-ofctl --sort=in_port dump-flows br0 | ofctl_strip], [0], [dnl
2047 priority=2,in_port=1025 actions=output:47
2048 priority=1,in_port=1026 actions=output:45
2049 priority=6,in_port=1027 actions=output:64
2050 priority=3,in_port=1028 actions=output:44
2051 priority=7,in_port=1029 actions=output:43
2052 priority=5,in_port=1029 actions=output:43
2053 priority=4,in_port=23213 actions=output:42
2054 priority=9,tcp,tp_src=6 actions=drop
2055 priority=8,tcp,tp_src=5 actions=drop
2057 AT_CHECK([ovs-ofctl --rsort=in_port dump-flows br0 | ofctl_strip], [0], [dnl
2058 priority=4,in_port=23213 actions=output:42
2059 priority=7,in_port=1029 actions=output:43
2060 priority=5,in_port=1029 actions=output:43
2061 priority=3,in_port=1028 actions=output:44
2062 priority=6,in_port=1027 actions=output:64
2063 priority=1,in_port=1026 actions=output:45
2064 priority=2,in_port=1025 actions=output:47
2065 priority=9,tcp,tp_src=6 actions=drop
2066 priority=8,tcp,tp_src=5 actions=drop
2068 AT_CHECK([ovs-ofctl --sort=tcp_src dump-flows br0 | ofctl_strip], [0], [dnl
2069 priority=8,tcp,tp_src=5 actions=drop
2070 priority=9,tcp,tp_src=6 actions=drop
2071 priority=7,in_port=1029 actions=output:43
2072 priority=6,in_port=1027 actions=output:64
2073 priority=5,in_port=1029 actions=output:43
2074 priority=4,in_port=23213 actions=output:42
2075 priority=3,in_port=1028 actions=output:44
2076 priority=2,in_port=1025 actions=output:47
2077 priority=1,in_port=1026 actions=output:45
2080 [ovs-ofctl --sort=in_port --sort=tcp_src dump-flows br0 | ofctl_strip], [0],
2081 [ priority=2,in_port=1025 actions=output:47
2082 priority=1,in_port=1026 actions=output:45
2083 priority=6,in_port=1027 actions=output:64
2084 priority=3,in_port=1028 actions=output:44
2085 priority=7,in_port=1029 actions=output:43
2086 priority=5,in_port=1029 actions=output:43
2087 priority=4,in_port=23213 actions=output:42
2088 priority=8,tcp,tp_src=5 actions=drop
2089 priority=9,tcp,tp_src=6 actions=drop
2094 AT_SETUP([ovs-ofctl diff-flows])
2097 # Add tons of flows to br0.
2098 for i in `seq 0 1023`; do echo "dl_vlan=$i,actions=drop"; done > add-flows.txt
2099 AT_CHECK([ovs-ofctl add-flows br0 add-flows.txt])
2101 # Dump them and compare against what we expect by hand, then with diff-flows.
2102 for i in `seq 0 1023`; do echo " dl_vlan=$i actions=drop"; done | sort > expout
2103 AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip | sed '/NXST_FLOW/d' | sort],
2105 AT_CHECK([ovs-ofctl diff-flows br0 add-flows.txt])
2107 # Remove even-numbered flows, compare again.
2108 for i in `seq 0 1023 2`; do echo "dl_vlan=$i"; done > del-flows.txt
2109 AT_CHECK([ovs-ofctl del-flows br0 - < del-flows.txt])
2110 for i in `seq 0 1023 2`; do echo "+dl_vlan=$i actions=drop"; done | sort > expout
2111 AT_CHECK([ovs-ofctl diff-flows br0 add-flows.txt | sort], [0], [expout])
2112 for i in `seq 0 1023 2`; do echo "-dl_vlan=$i actions=drop"; done | sort > expout
2113 AT_CHECK([ovs-ofctl diff-flows add-flows.txt br0 | sort], [0], [expout])
2118 dnl ofpacts that differ bytewise don't necessarily differ when
2119 dnl converted to another representation, such as OpenFlow 1.0
2120 dnl or to a string. "resubmit(,1)" is an example of an action
2121 dnl of this type: "ofpact_resubmit"s can differ in their "compat"
2122 dnl values even though this doesn't affect the string format.
2124 dnl This test checks that "ovs-ofctl diff-flows" doesn't report
2125 dnl false ofpacts differences.
2126 AT_SETUP([ovs-ofctl diff-flows - suppress false differences])
2128 AT_DATA([flows.txt], [actions=resubmit(,1)
2130 AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
2131 AT_CHECK([ovs-ofctl diff-flows br0 flows.txt])
2132 AT_CHECK([ovs-ofctl add-flow br0 idle_timeout=60,dl_vlan=9,actions=output:1])
2133 AT_CHECK([ovs-ofctl diff-flows br0 flows.txt], [2], [dnl
2134 -dl_vlan=9 idle_timeout=60 actions=output:1
2136 AT_CHECK([ovs-ofctl add-flow br0 hard_timeout=120,cookie=1234,dl_vlan=9,actions=output:1])
2137 AT_CHECK([ovs-ofctl diff-flows flows.txt br0], [2], [dnl
2138 +dl_vlan=9 cookie=0x4d2 hard_timeout=120 actions=output:1
2143 AT_SETUP([ovs-ofctl -F and -O interaction])
2144 AT_CHECK([ovs-ofctl -F oxm -O openflow10], [1], [],
2145 [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.)
2147 AT_CHECK([ovs-ofctl -F oxm -O openflow11], [1], [],
2148 [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.)
2150 AT_CHECK([ovs-ofctl -F oxm -O openflow10,openflow11], [1], [],
2151 [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.)
2153 AT_CHECK([ovs-ofctl -F oxm -O openflow10,openflow12], [1], [],
2154 [ovs-ofctl: missing command name; use --help for help
2156 AT_CHECK([ovs-ofctl -F oxm -O openflow12], [1], [],
2157 [ovs-ofctl: missing command name; use --help for help
2159 AT_CHECK([ovs-ofctl -F oxm -O openflow13], [1], [],
2160 [ovs-ofctl: missing command name; use --help for help