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_ECN(03)
1471 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_ECN(06)
1475 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01)
1476 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(05)
1480 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC(ac100014)
1481 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC_W(C0a80000/FFFF0000)
1482 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC_W(C0a80000/FFFFFFFF)
1483 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC_W(C0a80000/00000000)
1484 OXM_OF_ETH_TYPE(0806) OXM_OF_IPV4_SRC(ac100014)
1485 OXM_OF_IPV4_SRC_W(C0D80000/FFFF0000)
1488 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST(ac100014)
1489 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST_W(C0a88012/FFFF0000)
1490 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST_W(C0a88012/FFFFFFFF)
1491 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST_W(C0a88012/00000000)
1492 OXM_OF_IPV4_DST(ac100014)
1493 OXM_OF_ETH_TYPE(0806) OXM_OF_IPV4_DST_W(C0D80000/FFFF0000)
1496 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC(4231)
1497 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC_W(5050/F0F0)
1498 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC_W(5050/FFFF)
1499 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC_W(5050/0000)
1500 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(07) OXM_OF_TCP_SRC(4231)
1502 # TCP destination port
1503 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST(4231)
1504 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST_W(FDE0/FFF0)
1505 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST_W(FDE0/FFFF)
1506 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST_W(FDE0/0000)
1507 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(07) OXM_OF_TCP_DST(4231)
1510 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC(8732)
1511 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC_W(0132/01FF)
1512 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC_W(0132/FFFF)
1513 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC_W(0132/0000)
1514 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_UDP_SRC(7823)
1516 # UDP destination port
1517 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST(1782)
1518 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST_W(5005/F00F)
1519 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST_W(5005/FFFF)
1520 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST_W(5005/0000)
1521 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(02) OXM_OF_UDP_DST(1293)
1524 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01) OXM_OF_ICMPV4_TYPE(12)
1525 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(00) OXM_OF_ICMPV4_TYPE(10)
1528 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01) OXM_OF_ICMPV4_CODE(12)
1529 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(00) OXM_OF_ICMPV4_CODE(10)
1530 OXM_OF_ETH_TYPE(0800) OXM_OF_ICMPV4_CODE(10)
1531 OXM_OF_ICMPV4_CODE(00)
1534 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(0001)
1535 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(1111)
1536 OXM_OF_ETH_TYPE(0000) OXM_OF_ARP_OP(0001)
1538 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(0001) OXM_OF_ARP_OP(0001)
1540 # ARP source protocol address
1541 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA(ac100014)
1542 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA_W(C0a81234/FFFFFF00)
1543 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA_W(C0a81234/FFFFFFFF)
1544 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA_W(C0a81234/00000000)
1545 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_SPA(ac100014)
1546 OXM_OF_ARP_SPA_W(C0D8fedc/FFFF0000)
1548 # ARP destination protocol address
1549 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA(ac100014)
1550 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA_W(C0a812fe/FFFFFF00)
1551 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA_W(C0a812fe/FFFFFFFF)
1552 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA_W(C0a812fe/00000000)
1553 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_TPA(ac100014)
1554 OXM_OF_ARP_TPA_W(C0D80000/FFFF0000)
1556 # ARP source hardware address
1557 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA(0002e30f80a4)
1558 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_SHA(0002e30f80a4)
1559 OXM_OF_ARP_SHA(0002e30f80a4)
1560 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA_W(0002e30f80a4/ffffffffffff)
1561 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA_W(0002e30f80a4/000000000000)
1562 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA_W(0002e30f80a4/00000000000f)
1564 # ARP destination hardware address
1565 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA(0002e30f80a4)
1566 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_THA(0002e30f80a4)
1567 OXM_OF_ARP_THA(0002e30f80a4)
1568 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA_W(0002e30f80a4/ffffffffffff)
1569 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA_W(0002e30f80a4/000000000000)
1570 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA_W(0002e30f80a4/00000000000f)
1573 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
1574 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
1575 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1576 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
1577 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/00000000000000000000000000000000)
1578 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1581 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
1582 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
1583 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1584 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
1585 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/00000000000000000000000000000000)
1586 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1589 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL(1000000f)
1590 OXM_OF_IPV6_FLABEL(0000000f)
1591 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL(0000000f)
1592 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/0000000f)
1593 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/000fffff)
1594 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/000ffff0)
1595 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/100fffff)
1596 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/ffffffff)
1597 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/00000000)
1599 # ND source hardware address
1600 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)
1601 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)
1602 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)
1603 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)
1605 # ND destination hardware address
1606 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)
1607 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)
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_TLL(0002e30f80a4)
1609 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)
1611 # Invalid field number.
1614 AT_CHECK([ovs-ofctl '-vPATTERN:console:%c|%p|%m' --strict parse-oxm < oxm.txt],
1619 OXM_OF_IN_PORT(00000000)
1620 OXM_OF_IN_PORT(fffffffe)
1623 OXM_OF_METADATA(5a5a5a5a5a5a5a5a)
1624 OXM_OF_METADATA_W(0000000000000000/00000000ffffffff)
1625 OXM_OF_METADATA_W(1234000090ab0000/ffff0000ffff0000)
1626 OXM_OF_METADATA(1234567890abcdef)
1630 OXM_OF_ETH_DST(0002e30f80a4)
1631 OXM_OF_ETH_DST_W(010000000000/010000000000)
1632 OXM_OF_ETH_DST_W(000000000000/010000000000)
1633 OXM_OF_ETH_DST_W(010000000000/010000000000)
1634 OXM_OF_ETH_DST(0002e30f80a4)
1636 OXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
1639 OXM_OF_ETH_SRC(020898456ddb)
1642 OXM_OF_ETH_TYPE(0800)
1643 OXM_OF_IN_PORT(00000012), OXM_OF_ETH_TYPE(0800)
1646 nx_pull_match() returned error OFPBMC_DUP_FIELD
1647 nx_pull_match() returned error OFPBMC_BAD_VALUE
1648 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1649 OXM_OF_VLAN_VID(0000)
1650 OXM_OF_VLAN_VID(1123)
1651 OXM_OF_VLAN_VID(1123), OXM_OF_VLAN_PCP(01)
1652 OXM_OF_VLAN_VID(0123)
1653 OXM_OF_VLAN_VID_W(0123/0123)
1654 OXM_OF_VLAN_VID_W(0123/0123)
1655 OXM_OF_VLAN_VID_W(0123/1123)
1656 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1657 OXM_OF_VLAN_VID(1123)
1658 OXM_OF_VLAN_VID(1123)
1660 OXM_OF_VLAN_VID_W(1103/1f0f)
1661 OXM_OF_VLAN_VID_W(1103/1f0f), OXM_OF_VLAN_PCP(01)
1662 OXM_OF_VLAN_VID_W(1000/1000)
1663 OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(01)
1666 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_ECN(03)
1667 nx_pull_match() returned error OFPBMC_BAD_VALUE
1668 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1671 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01)
1672 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(05)
1673 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1676 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_SRC(ac100014)
1677 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_SRC_W(c0a80000/ffff0000)
1678 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_SRC(c0a80000)
1679 OXM_OF_ETH_TYPE(0800)
1680 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1681 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1684 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_DST(ac100014)
1685 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_DST_W(c0a80000/ffff0000)
1686 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_DST(c0a88012)
1687 OXM_OF_ETH_TYPE(0800)
1688 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1689 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1692 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_SRC(4231)
1693 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_SRC_W(5050/f0f0)
1694 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_SRC(5050)
1695 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06)
1696 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1698 # TCP destination port
1699 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_DST(4231)
1700 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_DST_W(fde0/fff0)
1701 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_DST(fde0)
1702 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06)
1703 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1706 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_SRC(8732)
1707 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_SRC_W(0132/01ff)
1708 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_SRC(0132)
1709 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11)
1710 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1712 # UDP destination port
1713 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_DST(1782)
1714 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_DST_W(5005/f00f)
1715 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_DST(5005)
1716 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11)
1717 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1720 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01), OXM_OF_ICMPV4_TYPE(12)
1721 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1724 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01), OXM_OF_ICMPV4_CODE(12)
1725 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1726 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1727 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1730 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_OP(0001)
1731 nx_pull_match() returned error OFPBMC_BAD_VALUE
1732 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1733 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1734 nx_pull_match() returned error OFPBMC_DUP_FIELD
1736 # ARP source protocol address
1737 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SPA(ac100014)
1738 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SPA_W(c0a81200/ffffff00)
1739 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SPA(c0a81234)
1740 OXM_OF_ETH_TYPE(0806)
1741 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1742 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1744 # ARP destination protocol address
1745 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_TPA(ac100014)
1746 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_TPA_W(c0a81200/ffffff00)
1747 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_TPA(c0a812fe)
1748 OXM_OF_ETH_TYPE(0806)
1749 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1750 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1752 # ARP source hardware address
1753 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SHA(0002e30f80a4)
1754 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1755 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1756 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SHA(0002e30f80a4)
1757 OXM_OF_ETH_TYPE(0806)
1758 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SHA_W(000000000004/00000000000f)
1760 # ARP destination hardware address
1761 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_THA(0002e30f80a4)
1762 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1763 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1764 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_THA(0002e30f80a4)
1765 OXM_OF_ETH_TYPE(0806)
1766 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_THA_W(000000000004/00000000000f)
1769 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
1770 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1771 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1772 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_SRC(20010db83c4d00010000000000000000)
1773 OXM_OF_ETH_TYPE(86dd)
1774 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1777 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
1778 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1779 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1780 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_DST(20010db83c4d00010000000000000000)
1781 OXM_OF_ETH_TYPE(86dd)
1782 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1785 nx_pull_match() returned error OFPBMC_BAD_VALUE
1786 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1787 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
1788 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL_W(0000000f/0000000f)
1789 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
1790 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL_W(00000000/000ffff0)
1791 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
1792 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
1793 OXM_OF_ETH_TYPE(86dd)
1795 # ND source hardware address
1796 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)
1797 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1798 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1799 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1801 # ND destination hardware address
1802 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)
1803 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1804 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1805 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1807 # Invalid field number.
1808 nx_pull_match() returned error OFPBMC_BAD_FIELD
1811 # Check that at least the first warning made it. (It's rate-limited
1812 # so a variable number could show up, especially under valgrind etc.)
1813 AT_CHECK([grep 'has 1-bits in value' stderr | sed 1q], [0], [dnl
1814 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.)
1817 # Check that there wasn't any other stderr output.
1818 AT_CHECK([grep -v 'has 1-bits in value' stderr], [1])
1821 AT_SETUP([ovs-ofctl parse-oxm loose])
1823 AT_DATA([oxm.txt], [dnl
1824 OXM_OF_IN_PORT(00000001), 01020304(1111/2222), OXM_OF_ETH_TYPE(0800)
1827 AT_CHECK([ovs-ofctl --strict parse-oxm < oxm.txt], [0], [dnl
1828 nx_pull_match() returned error OFPBMC_BAD_FIELD
1831 AT_CHECK([ovs-ofctl parse-oxm < oxm.txt], [0], [dnl
1832 OXM_OF_IN_PORT(00000001), OXM_OF_ETH_TYPE(0800)
1836 dnl Check all of the patterns mentioned in the "VLAN Matching" section
1837 dnl in the DESIGN file at top level.
1838 AT_SETUP([ovs-ofctl check-vlan])
1842 AT_CHECK([ovs-ofctl check-vlan 0000 0000], [0], [dnl
1844 NXM: <any> -> 0000/0000
1845 OXM: <any> -> 0000/0000,--
1846 OF1.0: 0000/1,00/1 -> 0000/0000
1847 OF1.1: 0000/1,00/1 -> 0000/0000
1851 AT_CHECK([ovs-ofctl check-vlan 0000 ffff], [0], [dnl
1852 vlan_tci=0x0000 -> 0000/ffff
1853 NXM: NXM_OF_VLAN_TCI(0000) -> 0000/ffff
1854 OXM: OXM_OF_VLAN_VID(0000) -> 0000/1fff,--
1855 OF1.0: ffff/0,00/1 -> 0000/ffff
1856 OF1.1: ffff/0,00/1 -> 0000/ffff
1860 AT_CHECK([ovs-ofctl check-vlan 1abc 1fff], [0], [dnl
1861 dl_vlan=2748 -> 1abc/1fff
1862 NXM: NXM_OF_VLAN_TCI_W(1abc/1fff) -> 1abc/1fff
1863 OXM: OXM_OF_VLAN_VID(1abc) -> 1abc/1fff,--
1864 OF1.0: 0abc/0,00/1 -> 1abc/1fff
1865 OF1.1: 0abc/0,00/1 -> 1abc/1fff
1869 AT_CHECK([ovs-ofctl check-vlan b000 f000], [0], [dnl
1870 dl_vlan_pcp=5 -> b000/f000
1871 NXM: NXM_OF_VLAN_TCI_W(b000/f000) -> b000/f000
1872 OXM: OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(05) -> 1000/1000,05
1873 OF1.0: 0000/1,05/0 -> b000/f000
1874 OF1.1: fffe/0,05/0 -> b000/f000
1878 AT_CHECK([ovs-ofctl check-vlan babc ffff], [0], [dnl
1879 dl_vlan=2748,dl_vlan_pcp=5 -> babc/ffff
1880 NXM: NXM_OF_VLAN_TCI(babc) -> babc/ffff
1881 OXM: OXM_OF_VLAN_VID(1abc), OXM_OF_VLAN_PCP(05) -> 1abc/1fff,05
1882 OF1.0: 0abc/0,05/0 -> babc/ffff
1883 OF1.1: 0abc/0,05/0 -> babc/ffff
1887 AT_CHECK([ovs-ofctl check-vlan 0000 0fff], [0], [dnl
1888 vlan_tci=0x0000/0x0fff -> 0000/0fff
1889 NXM: NXM_OF_VLAN_TCI_W(0000/0fff) -> 0000/0fff
1890 OXM: OXM_OF_VLAN_VID_W(0000/0fff) -> 0000/0fff,--
1891 OF1.0: 0000/0,00/1 -> 1000/1fff
1892 OF1.1: 0000/0,00/1 -> 1000/1fff
1896 AT_CHECK([ovs-ofctl check-vlan 0000 f000], [0], [dnl
1897 vlan_tci=0x0000/0xf000 -> 0000/f000
1898 NXM: NXM_OF_VLAN_TCI_W(0000/f000) -> 0000/f000
1899 OXM: OXM_OF_VLAN_VID_W(0000/1000) -> 0000/1000,--
1900 OF1.0: ffff/0,00/1 -> 0000/ffff
1901 OF1.1: ffff/0,00/1 -> 0000/ffff
1905 AT_CHECK([ovs-ofctl check-vlan 0000 efff], [0], [dnl
1906 vlan_tci=0x0000/0xefff -> 0000/efff
1907 NXM: NXM_OF_VLAN_TCI_W(0000/efff) -> 0000/efff
1908 OXM: OXM_OF_VLAN_VID_W(0000/0fff) -> 0000/0fff,--
1909 OF1.0: 0000/0,00/0 -> 1000/ffff
1910 OF1.1: 0000/0,00/0 -> 1000/ffff
1914 AT_CHECK([ovs-ofctl check-vlan 1001 1001], [0], [dnl
1915 vlan_tci=0x1001/0x1001 -> 1001/1001
1916 NXM: NXM_OF_VLAN_TCI_W(1001/1001) -> 1001/1001
1917 OXM: OXM_OF_VLAN_VID_W(1001/1001) -> 1001/1001,--
1918 OF1.0: 0001/0,00/1 -> 1001/1fff
1919 OF1.1: 0001/0,00/1 -> 1001/1fff
1923 AT_CHECK([ovs-ofctl check-vlan 3000 3000], [0], [dnl
1924 vlan_tci=0x3000/0x3000 -> 3000/3000
1925 NXM: NXM_OF_VLAN_TCI_W(3000/3000) -> 3000/3000
1926 OXM: OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(01) -> 1000/1000,01
1927 OF1.0: 0000/1,01/0 -> 3000/f000
1928 OF1.1: fffe/0,01/0 -> 3000/f000
1933 dnl Check that "-F openflow10" rejects a flow_mod with unsupported features,
1934 dnl such as tunnels and metadata.
1935 AT_SETUP([ovs-ofctl -F option and NXM features])
1936 AT_CHECK([ovs-ofctl -F openflow10 add-flow dummy tun_id=123,actions=drop],
1937 [1], [], [ovs-ofctl: none of the usable flow formats (NXM,OXM) is among the allowed flow formats (OpenFlow10)
1939 AT_CHECK([ovs-ofctl -F openflow10 add-flow dummy metadata=123,actions=drop],
1940 [1], [], [ovs-ofctl: none of the usable flow formats (NXM,OXM) is among the allowed flow formats (OpenFlow10)
1944 dnl Check that "-F nxm" really forces add-flow to use the NXM flow format.
1945 dnl (If it doesn't, then either the tun_id won't show up at all, or it will
1946 dnl additionally show up as the top 32 bits of the cookie.) This checks
1947 dnl for regression against bug #4566.
1948 AT_SETUP([ovs-ofctl -F option with flow_mods])
1950 AT_CHECK([ovs-ofctl -F nxm add-flow br0 tun_id=0x12345678,actions=drop])
1951 AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip], [0], [dnl
1953 tun_id=0x12345678 actions=drop
1958 dnl Check that "-F openflow10" is really honored on dump-flows.
1959 dnl (If it isn't, then dump-flows will show the register match.)
1960 AT_SETUP([ovs-ofctl dump-flows honors -F option])
1962 AT_CHECK([ovs-ofctl add-flow br0 reg0=0x12345,actions=drop])
1963 AT_CHECK([ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip], [0], [dnl
1970 dnl Check that "-F openflow10" fails on dump-flows if the requested match
1971 dnl can't be represented in OpenFlow 1.0.
1972 AT_SETUP([ovs-ofctl dump-flows rejects bad -F option])
1974 AT_CHECK([ovs-ofctl -F openflow10 dump-flows unix:br0.mgmt reg0=0xabcdef], [1], [],
1975 [ovs-ofctl: none of the usable flow formats (NXM,OXM) is among the allowed flow formats (OpenFlow10)
1980 dnl Check that add-flow reports non-normalized flows (feature #5029).
1981 AT_SETUP([ovs-ofctl add-flow reports non-normalized flows])
1983 AT_CHECK([ovs-ofctl TESTABLE_LOG add-flow br0 nw_src=1.2.3.4,actions=5],
1985 ofp_util|INFO|normalization changed ofp_match, details:
1986 ofp_util|INFO| pre: nw_src=1.2.3.4
1987 ofp_util|INFO|post: @&t@
1992 dnl Check that --sort and --rsort works with dump-flows
1993 dnl Default field is 'priority'. Flow entries are displayed based
1994 dnl on field to sort.
1995 AT_SETUP([ovs-ofctl dump-flows with sorting])
1998 AT_DATA([allflows.txt], [[
1999 priority=4,in_port=23213 actions=output:42
2000 priority=5,in_port=1029 actions=output:43
2001 priority=7,in_port=1029 actions=output:43
2002 priority=3,in_port=1028 actions=output:44
2003 priority=1,in_port=1026 actions=output:45
2004 priority=6,in_port=1027 actions=output:64
2005 priority=2,in_port=1025 actions=output:47
2006 priority=8,tcp,tp_src=5 actions=drop
2007 priority=9,tcp,tp_src=6 actions=drop
2010 AT_CHECK([ovs-ofctl add-flows br0 allflows.txt
2012 AT_CHECK([ovs-ofctl --sort dump-flows br0 | ofctl_strip], [0], [dnl
2013 priority=1,in_port=1026 actions=output:45
2014 priority=2,in_port=1025 actions=output:47
2015 priority=3,in_port=1028 actions=output:44
2016 priority=4,in_port=23213 actions=output:42
2017 priority=5,in_port=1029 actions=output:43
2018 priority=6,in_port=1027 actions=output:64
2019 priority=7,in_port=1029 actions=output:43
2020 priority=8,tcp,tp_src=5 actions=drop
2021 priority=9,tcp,tp_src=6 actions=drop
2023 AT_CHECK([ovs-ofctl --rsort dump-flows br0 | ofctl_strip], [0], [dnl
2024 priority=9,tcp,tp_src=6 actions=drop
2025 priority=8,tcp,tp_src=5 actions=drop
2026 priority=7,in_port=1029 actions=output:43
2027 priority=6,in_port=1027 actions=output:64
2028 priority=5,in_port=1029 actions=output:43
2029 priority=4,in_port=23213 actions=output:42
2030 priority=3,in_port=1028 actions=output:44
2031 priority=2,in_port=1025 actions=output:47
2032 priority=1,in_port=1026 actions=output:45
2034 AT_CHECK([ovs-ofctl --sort=in_port dump-flows br0 | ofctl_strip], [0], [dnl
2035 priority=2,in_port=1025 actions=output:47
2036 priority=1,in_port=1026 actions=output:45
2037 priority=6,in_port=1027 actions=output:64
2038 priority=3,in_port=1028 actions=output:44
2039 priority=7,in_port=1029 actions=output:43
2040 priority=5,in_port=1029 actions=output:43
2041 priority=4,in_port=23213 actions=output:42
2042 priority=9,tcp,tp_src=6 actions=drop
2043 priority=8,tcp,tp_src=5 actions=drop
2045 AT_CHECK([ovs-ofctl --rsort=in_port dump-flows br0 | ofctl_strip], [0], [dnl
2046 priority=4,in_port=23213 actions=output:42
2047 priority=7,in_port=1029 actions=output:43
2048 priority=5,in_port=1029 actions=output:43
2049 priority=3,in_port=1028 actions=output:44
2050 priority=6,in_port=1027 actions=output:64
2051 priority=1,in_port=1026 actions=output:45
2052 priority=2,in_port=1025 actions=output:47
2053 priority=9,tcp,tp_src=6 actions=drop
2054 priority=8,tcp,tp_src=5 actions=drop
2056 AT_CHECK([ovs-ofctl --sort=tcp_src dump-flows br0 | ofctl_strip], [0], [dnl
2057 priority=8,tcp,tp_src=5 actions=drop
2058 priority=9,tcp,tp_src=6 actions=drop
2059 priority=7,in_port=1029 actions=output:43
2060 priority=6,in_port=1027 actions=output:64
2061 priority=5,in_port=1029 actions=output:43
2062 priority=4,in_port=23213 actions=output:42
2063 priority=3,in_port=1028 actions=output:44
2064 priority=2,in_port=1025 actions=output:47
2065 priority=1,in_port=1026 actions=output:45
2068 [ovs-ofctl --sort=in_port --sort=tcp_src dump-flows br0 | ofctl_strip], [0],
2069 [ priority=2,in_port=1025 actions=output:47
2070 priority=1,in_port=1026 actions=output:45
2071 priority=6,in_port=1027 actions=output:64
2072 priority=3,in_port=1028 actions=output:44
2073 priority=7,in_port=1029 actions=output:43
2074 priority=5,in_port=1029 actions=output:43
2075 priority=4,in_port=23213 actions=output:42
2076 priority=8,tcp,tp_src=5 actions=drop
2077 priority=9,tcp,tp_src=6 actions=drop
2082 AT_SETUP([ovs-ofctl diff-flows])
2085 # Add tons of flows to br0.
2086 for i in `seq 0 1023`; do echo "dl_vlan=$i,actions=drop"; done > add-flows.txt
2087 AT_CHECK([ovs-ofctl add-flows br0 add-flows.txt])
2089 # Dump them and compare against what we expect by hand, then with diff-flows.
2090 for i in `seq 0 1023`; do echo " dl_vlan=$i actions=drop"; done | sort > expout
2091 AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip | sed '/NXST_FLOW/d' | sort],
2093 AT_CHECK([ovs-ofctl diff-flows br0 add-flows.txt])
2095 # Remove even-numbered flows, compare again.
2096 for i in `seq 0 1023 2`; do echo "dl_vlan=$i"; done > del-flows.txt
2097 AT_CHECK([ovs-ofctl del-flows br0 - < del-flows.txt])
2098 for i in `seq 0 1023 2`; do echo "+dl_vlan=$i actions=drop"; done | sort > expout
2099 AT_CHECK([ovs-ofctl diff-flows br0 add-flows.txt | sort], [0], [expout])
2100 for i in `seq 0 1023 2`; do echo "-dl_vlan=$i actions=drop"; done | sort > expout
2101 AT_CHECK([ovs-ofctl diff-flows add-flows.txt br0 | sort], [0], [expout])
2106 dnl ofpacts that differ bytewise don't necessarily differ when
2107 dnl converted to another representation, such as OpenFlow 1.0
2108 dnl or to a string. "resubmit(,1)" is an example of an action
2109 dnl of this type: "ofpact_resubmit"s can differ in their "compat"
2110 dnl values even though this doesn't affect the string format.
2112 dnl This test checks that "ovs-ofctl diff-flows" doesn't report
2113 dnl false ofpacts differences.
2114 AT_SETUP([ovs-ofctl diff-flows - suppress false differences])
2116 AT_DATA([flows.txt], [actions=resubmit(,1)
2118 AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
2119 AT_CHECK([ovs-ofctl diff-flows br0 flows.txt])
2120 AT_CHECK([ovs-ofctl add-flow br0 idle_timeout=60,dl_vlan=9,actions=output:1])
2121 AT_CHECK([ovs-ofctl diff-flows br0 flows.txt], [2], [dnl
2122 -dl_vlan=9 idle_timeout=60 actions=output:1
2124 AT_CHECK([ovs-ofctl add-flow br0 hard_timeout=120,cookie=1234,dl_vlan=9,actions=output:1])
2125 AT_CHECK([ovs-ofctl diff-flows flows.txt br0], [2], [dnl
2126 +dl_vlan=9 cookie=0x4d2 hard_timeout=120 actions=output:1
2131 AT_SETUP([ovs-ofctl -F and -O interaction])
2132 AT_CHECK([ovs-ofctl -F oxm -O openflow10], [1], [],
2133 [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.)
2135 AT_CHECK([ovs-ofctl -F oxm -O openflow11], [1], [],
2136 [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.)
2138 AT_CHECK([ovs-ofctl -F oxm -O openflow10,openflow11], [1], [],
2139 [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.)
2141 AT_CHECK([ovs-ofctl -F oxm -O openflow10,openflow12], [1], [],
2142 [ovs-ofctl: missing command name; use --help for help
2144 AT_CHECK([ovs-ofctl -F oxm -O openflow12], [1], [],
2145 [ovs-ofctl: missing command name; use --help for help
2147 AT_CHECK([ovs-ofctl -F oxm -O openflow13], [1], [],
2148 [ovs-ofctl: missing command name; use --help for help