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=65534,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=65534,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 (NXM)])
78 AT_DATA([flows.txt], [[
80 tcp,tp_src=123,actions=flood
81 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
82 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
83 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
84 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
85 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
86 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
87 tcp,tp_src=0x1230/0xfff0,tun_id=0x1234,cookie=0x5678,actions=flood
88 actions=set_tunnel:0x1234,set_tunnel64:0x9876,set_tunnel:0x123456789
89 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])
91 tun_id=0x1234000056780000/0xffff0000ffff0000,actions=drop
92 metadata=0x1234ffff5678ffff/0xffff0000ffff0000,actions=drop
93 actions=bundle(eth_src,50,active_backup,ofport,slaves:1)
94 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:2,3)
95 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:)
96 actions=output:1,bundle(eth_src,0,hrw,ofport,slaves:1),output:2
97 actions=bundle_load(eth_src,50,active_backup,ofport,NXM_NX_REG0[],slaves:1)
98 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:2,3)
99 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:[2,3])
100 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..30],slaves:)
101 actions=output:1,bundle_load(eth_src,0,hrw,ofport,NXM_NX_REG0[16..31],slaves:1),output:2
102 actions=resubmit:1,resubmit(2),resubmit(,3),resubmit(2,3)
103 send_flow_rem,actions=output:1,output:NXM_NX_REG0[],output:2,output:NXM_NX_REG1[16..31],output:3
104 check_overlap,actions=output:1,exit,output:2
105 actions=fin_timeout(idle_timeout=5,hard_timeout=15)
106 actions=controller(max_len=123,reason=invalid_ttl,id=555)
109 AT_CHECK([ovs-ofctl parse-flows flows.txt
111 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
112 [[usable protocols: OXM,NXM+table_id
113 chosen protocol: NXM+table_id
114 NXT_FLOW_MOD: ADD table:255 tcp,tp_src=123 actions=FLOOD
115 NXT_FLOW_MOD: ADD table:255 in_port=65534,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
116 NXT_FLOW_MOD: ADD table:255 udp,dl_vlan_pcp=7 idle:5 actions=strip_vlan,output:0
117 NXT_FLOW_MOD: ADD table:255 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
118 NXT_FLOW_MOD: ADD table:255 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
119 NXT_FLOW_MOD: ADD table:255 priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
120 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
121 NXT_FLOW_MOD: ADD table:255 tcp,tun_id=0x1234,tp_src=0x1230/0xfff0 cookie:0x5678 actions=FLOOD
122 NXT_FLOW_MOD: ADD table:255 actions=set_tunnel:0x1234,set_tunnel64:0x9876,set_tunnel64:0x123456789
123 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])
124 NXT_FLOW_MOD: ADD table:1 actions=drop
125 NXT_FLOW_MOD: ADD table:255 tun_id=0x1234000056780000/0xffff0000ffff0000 actions=drop
126 NXT_FLOW_MOD: ADD table:255 metadata=0x1234000056780000/0xffff0000ffff0000 actions=drop
127 NXT_FLOW_MOD: ADD table:255 actions=bundle(eth_src,50,active_backup,ofport,slaves:1)
128 NXT_FLOW_MOD: ADD table:255 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:2,3)
129 NXT_FLOW_MOD: ADD table:255 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:)
130 NXT_FLOW_MOD: ADD table:255 actions=output:1,bundle(eth_src,0,hrw,ofport,slaves:1),output:2
131 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(eth_src,50,active_backup,ofport,NXM_NX_REG0[],slaves:1)
132 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:2,3)
133 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:2,3)
134 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..30],slaves:)
135 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
136 NXT_FLOW_MOD: ADD table:255 actions=resubmit:1,resubmit:2,resubmit(,3),resubmit(2,3)
137 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
138 NXT_FLOW_MOD: ADD table:255 check_overlap actions=output:1,exit,output:2
139 NXT_FLOW_MOD: ADD table:255 actions=fin_timeout(idle_timeout=5,hard_timeout=15)
140 NXT_FLOW_MOD: ADD table:255 actions=controller(reason=invalid_ttl,max_len=123,id=555)
144 AT_SETUP([ovs-ofctl -F nxm parse-flows])
145 AT_DATA([flows.txt], [
147 tcp,tp_src=123,actions=flood
148 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
149 arp,dl_src=00:0A:E4:25:6B:B0,arp_sha=00:0A:E4:25:6B:B0 actions=drop
150 ipv6,ipv6_label=0x12345 actions=2
151 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=3
152 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5/64 actions=4
153 ipv6,ipv6_dst=2001:db8:3c4d:1:2:3:4:5/127 actions=5
154 tcp6,ipv6_src=2001:db8:3c4d:1::1,tp_dst=80 actions=drop
155 udp6,ipv6_src=2001:db8:3c4d:1::3,tp_dst=53 actions=drop
156 in_port=3 icmp6,ipv6_src=2001:db8:3c4d:1::1,icmp_type=134 actions=drop
157 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
158 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
159 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
160 icmp6,icmp_type=135,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571 actions=drop
161 icmp6,icmp_type=135,nd_target=FEC0::1234:F045:8FFF:1111:FE4F:0571/112 actions=drop
162 icmp6,icmp_type=135,nd_sll=00:0A:E4:25:6B:B0 actions=drop
163 icmp6,icmp_type=136,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571,nd_tll=00:0A:E4:25:6B:B1 actions=drop
164 icmp6,icmp_type=136,nd_target=FEC0::1234:F045:8FFF:1111:FE00:0000/96,nd_tll=00:0A:E4:25:6B:B1 actions=drop
165 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
166 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
167 tun_id=0x1234,cookie=0x5678,actions=flood
169 tun_id=0x1234000056780000/0xffff0000ffff0000,actions=drop
170 dl_dst=01:00:00:00:00:00/01:00:00:00:00:00,actions=drop
171 dl_dst=00:00:00:00:00:00/01:00:00:00:00:00,actions=drop
172 dl_dst=aa:bb:cc:dd:ee:ff/fe:ff:ff:ff:ff:ff,actions=drop
173 dl_dst=aa:bb:cc:dd:ee:ff/00:00:00:00:00:00,actions=drop
175 AT_CHECK([ovs-ofctl -F nxm parse-flows flows.txt], [0], [stdout])
176 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0], [dnl
177 usable protocols: NXM,OXM
178 chosen protocol: NXM-table_id
179 NXT_FLOW_MOD: ADD tcp,tp_src=123 actions=FLOOD
180 NXT_FLOW_MOD: ADD in_port=65534,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
181 NXT_FLOW_MOD: ADD arp,dl_src=00:0a:e4:25:6b:b0,arp_sha=00:0a:e4:25:6b:b0 actions=drop
182 NXT_FLOW_MOD: ADD ipv6,ipv6_label=0x12345 actions=output:2
183 NXT_FLOW_MOD: ADD ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=output:3
184 NXT_FLOW_MOD: ADD ipv6,ipv6_src=2001:db8:3c4d:1::/64 actions=output:4
185 NXT_FLOW_MOD: ADD ipv6,ipv6_dst=2001:db8:3c4d:1:2:3:4:4/127 actions=output:5
186 NXT_FLOW_MOD: ADD tcp6,ipv6_src=2001:db8:3c4d:1::1,tp_dst=80 actions=drop
187 NXT_FLOW_MOD: ADD udp6,ipv6_src=2001:db8:3c4d:1::3,tp_dst=53 actions=drop
188 NXT_FLOW_MOD: ADD icmp6,in_port=3,ipv6_src=2001:db8:3c4d:1::1,icmp_type=134 actions=drop
189 NXT_FLOW_MOD: ADD udp,dl_vlan_pcp=7 idle:5 actions=strip_vlan,output:0
190 NXT_FLOW_MOD: ADD tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
191 NXT_FLOW_MOD: ADD udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
192 NXT_FLOW_MOD: ADD icmp6,icmp_type=135,nd_target=fec0:0:1234:f045:8fff:1111:fe4e:571 actions=drop
193 NXT_FLOW_MOD: ADD icmp6,icmp_type=135,nd_target=fec0:0:1234:f045:8fff:1111:fe4f:0/112 actions=drop
194 NXT_FLOW_MOD: ADD icmp6,icmp_type=135,nd_sll=00:0a:e4:25:6b:b0 actions=drop
195 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
196 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
197 NXT_FLOW_MOD: ADD priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
198 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
199 NXT_FLOW_MOD: ADD tun_id=0x1234 cookie:0x5678 actions=FLOOD
200 NXT_FLOW_MOD: ADD actions=drop
201 NXT_FLOW_MOD: ADD tun_id=0x1234000056780000/0xffff0000ffff0000 actions=drop
202 NXT_FLOW_MOD: ADD dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=drop
203 NXT_FLOW_MOD: ADD dl_dst=00:00:00:00:00:00/01:00:00:00:00:00 actions=drop
204 NXT_FLOW_MOD: ADD dl_dst=aa:bb:cc:dd:ee:ff/fe:ff:ff:ff:ff:ff actions=drop
205 NXT_FLOW_MOD: ADD actions=drop
209 AT_SETUP([ovs-ofctl -F nxm -mmm parse-flows])
210 AT_DATA([flows.txt], [[
212 tcp,tp_src=123,actions=flood
213 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
214 arp,dl_src=00:0A:E4:25:6B:B0,arp_sha=00:0A:E4:25:6B:B0 actions=drop
215 ipv6,ipv6_label=0x12345 actions=2
216 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=3
217 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5/64 actions=4
218 ipv6,ipv6_dst=2001:db8:3c4d:1:2:3:4:5/127 actions=5
219 tcp6,ipv6_src=2001:db8:3c4d:1::1,tp_dst=80 actions=drop
220 udp6,ipv6_src=2001:db8:3c4d:1::3,tp_dst=53 actions=drop
221 in_port=3 icmp6,ipv6_src=2001:db8:3c4d:1::1,icmp_type=134 actions=drop
222 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
223 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
224 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
225 icmp6,icmp_type=135,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571 actions=drop
226 icmp6,icmp_type=135,nd_sll=00:0A:E4:25:6B:B0 actions=drop
227 icmp6,icmp_type=136,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571,nd_tll=00:0A:E4:25:6B:B1 actions=drop
228 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
229 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
230 tun_id=0x1234,cookie=0x5678,actions=flood
232 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[]
233 actions=move:OXM_OF_ETH_DST[]->OXM_OF_ETH_SRC[]
234 actions=autopath(5,NXM_NX_REG0[])
235 vlan_tci=0x1123/0x1fff,actions=drop
237 AT_CHECK([ovs-ofctl -F nxm -mmm parse-flows flows.txt], [0], [stdout], [stderr])
238 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
239 [[usable protocols: NXM,OXM
240 chosen protocol: NXM-table_id
241 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC(007b) actions=FLOOD
242 NXT_FLOW_MOD: ADD NXM_OF_IN_PORT(fffe), NXM_OF_ETH_SRC(000ae4256bb0), NXM_OF_VLAN_TCI_W(1009/1fff) actions=drop
243 NXT_FLOW_MOD: ADD NXM_OF_ETH_SRC(000ae4256bb0), NXM_OF_ETH_TYPE(0806), NXM_NX_ARP_SHA(000ae4256bb0) actions=drop
244 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_LABEL(00012345) actions=output:2
245 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005) actions=output:3
246 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000) actions=output:4
247 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST_W(20010db83c4d00010002000300040004/fffffffffffffffffffffffffffffffe) actions=output:5
248 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
249 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
250 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
251 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
252 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
253 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
254 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
255 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
256 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
257 NXT_FLOW_MOD: ADD <any> cookie:0x123456789abcdef hard:10 pri:60000 actions=CONTROLLER:65535
258 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
259 NXT_FLOW_MOD: ADD NXM_NX_TUN_ID(0000000000001234) cookie:0x5678 actions=FLOOD
260 NXT_FLOW_MOD: ADD <any> actions=drop
261 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[]
262 NXT_FLOW_MOD: ADD <any> actions=move:NXM_OF_ETH_DST[]->NXM_OF_ETH_SRC[]
263 NXT_FLOW_MOD: ADD <any> actions=autopath(5,NXM_NX_REG0[])
264 NXT_FLOW_MOD: ADD NXM_OF_VLAN_TCI_W(1123/1fff) actions=drop
266 AT_CHECK([[sed 's/^[^|]*|[^|]*|//' stderr]], [0], [dnl
267 autopath|WARN|The autopath action is deprecated and may be removed in February 2013. Please email dev@openvswitch.org with concerns.
271 AT_SETUP([ovs-ofctl parse-nx-match])
272 AT_KEYWORDS([nx-match])
273 AT_DATA([nx-match.txt], [dnl
281 NXM_OF_ETH_DST(0002e30f80a4)
282 NXM_OF_ETH_DST_W(010000000000/010000000000)
283 NXM_OF_ETH_DST_W(000000000000/010000000000)
284 NXM_OF_ETH_DST_W(ffffffffffff/010000000000)
285 NXM_OF_ETH_DST_W(0002e30f80a4/ffffffffffff)
286 NXM_OF_ETH_DST_W(60175619848f/000000000000)
287 NXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
288 NXM_OF_ETH_DST_W(60175619848f/5a5a5a5a5a5a)
291 NXM_OF_ETH_SRC(020898456ddb)
292 NXM_OF_ETH_SRC_W(012345abcdef/ffffff555555)
293 NXM_OF_ETH_SRC_W(020898456ddb/ffffffffffff)
294 NXM_OF_ETH_SRC_W(020898456ddb/000000000000)
297 NXM_OF_ETH_TYPE(0800)
298 NXM_OF_ETH_TYPE(0800) NXM_OF_IN_PORT(0012)
301 NXM_OF_VLAN_TCI(f009)
302 NXM_OF_VLAN_TCI(f009) NXM_OF_VLAN_TCI(f009)
303 NXM_OF_VLAN_TCI(0000) # Packets without 802.1Q header.
304 NXM_OF_VLAN_TCI(3123) # Packets with VID=123, PCP=1.
305 NXM_OF_VLAN_TCI(0123) # Does not make sense (but supported anyway)
306 NXM_OF_VLAN_TCI_W(1123/1fff) # Packets with VID=123, any PCP.
307 NXM_OF_VLAN_TCI_W(1123/ffff) # Packets with VID=123, PCP=0
308 NXM_OF_VLAN_TCI_W(1123/0000) # Packets with or without 802.1Q header
309 NXM_OF_VLAN_TCI_W(f000/f000) # Packets with any VID, PCP=7.
310 NXM_OF_VLAN_TCI_W(0000/e000) # No 802.1Q or with VID=0
313 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_TOS(f0)
314 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_TOS(41)
318 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_ECN(03)
319 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_ECN(06)
323 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(01)
324 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(05)
328 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_TTL(80)
329 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_TTL(ff)
333 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC(ac100014)
334 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC_W(C0a80000/FFFF0000)
335 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC_W(C0a80000/5a5a5a5a)
336 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC_W(C0a80000/ffffffff)
337 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC_W(C0a80000/00000000)
338 NXM_OF_ETH_TYPE(0806) NXM_OF_IP_SRC(ac100014)
339 NXM_OF_IP_SRC_W(C0D80000/FFFF0000)
342 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST(ac100014)
343 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST_W(C0a88012/FFFF0000)
344 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST_W(C0a80000/5a5a5a5a)
345 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST_W(C0a80000/ffffffff)
346 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST_W(C0a80000/00000000)
347 NXM_OF_IP_DST(ac100014)
348 NXM_OF_ETH_TYPE(0806) NXM_OF_IP_DST_W(C0D80000/FFFF0000)
351 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_SRC(4231)
352 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_SRC_W(5050/F0F0)
353 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_SRC_W(5050/ffff)
354 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_SRC_W(5050/0000)
355 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(07) NXM_OF_TCP_SRC(4231)
357 # TCP destination port
358 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_DST(4231)
359 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_DST_W(FDE0/FFF0)
360 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_DST_W(FDE0/ffff)
361 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_DST_W(FDE0/0000)
362 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(07) NXM_OF_TCP_DST(4231)
365 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_SRC(8732)
366 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_SRC_W(0132/01FF)
367 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_SRC_W(0132/ffff)
368 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_SRC_W(0132/0000)
369 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_UDP_SRC(7823)
371 # UDP destination port
372 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_DST(1782)
373 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_DST_W(5005/F00F)
374 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_DST_W(5005/FFFF)
375 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_DST_W(5005/0000)
376 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(02) NXM_OF_UDP_DST(1293)
379 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(01) NXM_OF_ICMP_TYPE(12)
380 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(00) NXM_OF_ICMP_TYPE(10)
383 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(01) NXM_OF_ICMP_CODE(12)
384 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(00) NXM_OF_ICMP_CODE(10)
385 NXM_OF_ETH_TYPE(0800) NXM_OF_ICMP_CODE(10)
389 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_OP(0001)
390 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_OP(1111)
391 NXM_OF_ETH_TYPE(0000) NXM_OF_ARP_OP(0001)
393 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_OP(0001) NXM_OF_ARP_OP(0001)
395 # ARP source protocol address
396 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA(ac100014)
397 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA_W(C0a81234/FFFFFF00)
398 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA_W(C0a81234/aaaaaa00)
399 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA_W(C0a81234/ffffffff)
400 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA_W(C0a81234/00000000)
401 NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_SPA(ac100014)
402 NXM_OF_ARP_SPA_W(C0D8fedc/FFFF0000)
404 # ARP destination protocol address
405 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA(ac100014)
406 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA_W(C0a812fe/FFFFFF00)
407 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA_W(C0a81234/77777777)
408 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA_W(C0a81234/ffffffff)
409 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA_W(C0a81234/00000000)
410 NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_TPA(ac100014)
411 NXM_OF_ARP_TPA_W(C0D80000/FFFF0000)
413 # ARP source hardware address
414 NXM_OF_ETH_TYPE(0806) NXM_NX_ARP_SHA(0002e30f80a4)
415 NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_SHA(0002e30f80a4)
416 NXM_NX_ARP_SHA(0002e30f80a4)
418 # ARP destination hardware address
419 NXM_OF_ETH_TYPE(0806) NXM_NX_ARP_THA(0002e30f80a4)
420 NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_THA(0002e30f80a4)
421 NXM_NX_ARP_THA(0002e30f80a4)
424 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_OP(0003)
425 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_OP(1111)
426 NXM_OF_ETH_TYPE(0000) NXM_OF_ARP_OP(0003)
428 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_OP(0003) NXM_OF_ARP_OP(0003)
430 # RARP source protocol address
431 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA(ac100014)
432 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA_W(C0a81234/FFFFFF00)
433 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA_W(C0a81234/aaaaaa00)
434 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA_W(C0a81234/ffffffff)
435 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA_W(C0a81234/00000000)
436 NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_SPA(ac100014)
437 NXM_OF_ARP_SPA_W(C0D8fedc/FFFF0000)
439 # RARP destination protocol address
440 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA(ac100014)
441 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA_W(C0a812fe/FFFFFF00)
442 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA_W(C0a81234/77777777)
443 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA_W(C0a81234/ffffffff)
444 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA_W(C0a81234/00000000)
445 NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_TPA(ac100014)
446 NXM_OF_ARP_TPA_W(C0D80000/FFFF0000)
448 # RARP source hardware address
449 NXM_OF_ETH_TYPE(8035) NXM_NX_ARP_SHA(0002e30f80a4)
450 NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_SHA(0002e30f80a4)
451 NXM_NX_ARP_SHA(0002e30f80a4)
453 # RARP destination hardware address
454 NXM_OF_ETH_TYPE(8035) NXM_NX_ARP_THA(0002e30f80a4)
455 NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_THA(0002e30f80a4)
456 NXM_NX_ARP_THA(0002e30f80a4)
459 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005)
460 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005)
461 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
462 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/5a5a5a5a5a5a5a5a0000000000000000)
463 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
464 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/00000000000000000000000000000000)
465 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
468 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST(20010db83c4d00010002000300040005)
469 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_DST(20010db83c4d00010002000300040005)
470 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/77777777777777777777777777777777)
471 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
472 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/00000000000000000000000000000000)
473 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
476 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_LABEL(1000000f)
477 NXM_NX_IPV6_LABEL(0000000f)
478 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_LABEL(0000000f)
481 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
482 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(88) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
483 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET_W(20010db83c4d00010002000300040005/0123456789abcdeffedcba9876543210)
484 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET_W(20010db83c4d00010002000300040005/ffffffffffffffffffffffffffffffff)
485 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET_W(20010db83c4d00010002000300040005/00000000000000000000000000000000)
486 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(88) NXM_NX_ND_TARGET_W(20010db83c4d00010002000300040005/fedcba98765432100123456789abcdef)
488 # ND source hardware address
489 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)
490 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)
491 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)
492 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)
494 # ND destination hardware address
495 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)
496 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)
497 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)
498 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)
501 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(00)
502 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(01)
503 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(02)
504 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(03)
505 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(00/03)
506 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(00/fd)
507 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(00/02)
508 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(01/01)
509 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(02/02)
510 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(03/03)
511 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(03/ff)
512 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(03/00)
513 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(f3)
516 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(00)
517 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(01)
518 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(02)
519 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(03)
520 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(00/03)
521 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(00/01)
522 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(00/02)
523 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(01/01)
524 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(02/02)
525 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(03/03)
526 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(03/00)
527 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(03/ff)
528 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(f3)
531 NXM_NX_COOKIE(00000000abcdef01)
532 NXM_NX_COOKIE_W(84200000abcdef01/84200000FFFFFFFF)
533 NXM_NX_COOKIE_W(84200000abcdef01/ffffffffffffffff)
534 NXM_NX_COOKIE_W(84200000abcdef01/0000000000000000)
537 NXM_NX_TUN_ID(00000000abcdef01)
538 NXM_NX_TUN_ID_W(84200000abcdef01/84200000FFFFFFFF)
539 NXM_NX_TUN_ID_W(84200000abcdef01/FFFFFFFFFFFFFFFF)
540 NXM_NX_TUN_ID_W(84200000abcdef01/0000000000000000)
543 NXM_NX_REG0(acebdf56)
544 NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
545 NXM_NX_REG0_W(a0e0d050/ffffffff)
546 NXM_NX_REG0_W(a0e0d050/00000000)
548 # Invalid field number.
551 # Unimplemented registers.
553 # This test assumes that at least two registers, but fewer than 16,
554 # registers are implemented.
556 00010108(12345678/12345678)
558 00011f08(12345678/12345678)
560 AT_CHECK([ovs-ofctl --strict parse-nx-match < nx-match.txt], [0], [dnl
568 NXM_OF_ETH_DST(0002e30f80a4)
569 NXM_OF_ETH_DST_W(010000000000/010000000000)
570 NXM_OF_ETH_DST_W(000000000000/010000000000)
571 NXM_OF_ETH_DST_W(010000000000/010000000000)
572 NXM_OF_ETH_DST(0002e30f80a4)
574 NXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
575 NXM_OF_ETH_DST_W(40125218000a/5a5a5a5a5a5a)
578 NXM_OF_ETH_SRC(020898456ddb)
579 NXM_OF_ETH_SRC_W(012345014545/ffffff555555)
580 NXM_OF_ETH_SRC(020898456ddb)
584 NXM_OF_ETH_TYPE(0800)
585 NXM_OF_IN_PORT(0012), NXM_OF_ETH_TYPE(0800)
588 NXM_OF_VLAN_TCI(f009)
589 nx_pull_match() returned error OFPBMC_DUP_FIELD
590 NXM_OF_VLAN_TCI(0000)
591 NXM_OF_VLAN_TCI(3123)
592 NXM_OF_VLAN_TCI(0123)
593 NXM_OF_VLAN_TCI_W(1123/1fff)
594 NXM_OF_VLAN_TCI(1123)
596 NXM_OF_VLAN_TCI_W(f000/f000)
597 NXM_OF_VLAN_TCI_W(0000/e000)
600 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_TOS(f0)
601 nx_pull_match() returned error OFPBMC_BAD_VALUE
602 nx_pull_match() returned error OFPBMC_BAD_PREREQ
605 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_ECN(03)
606 nx_pull_match() returned error OFPBMC_BAD_VALUE
607 nx_pull_match() returned error OFPBMC_BAD_PREREQ
610 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(01)
611 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(05)
612 nx_pull_match() returned error OFPBMC_BAD_PREREQ
615 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_TTL(80)
616 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_TTL(ff)
617 nx_pull_match() returned error OFPBMC_BAD_PREREQ
620 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC(ac100014)
621 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC_W(c0a80000/ffff0000)
622 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC_W(40080000/5a5a5a5a)
623 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC(c0a80000)
624 NXM_OF_ETH_TYPE(0800)
625 nx_pull_match() returned error OFPBMC_BAD_PREREQ
626 nx_pull_match() returned error OFPBMC_BAD_PREREQ
629 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_DST(ac100014)
630 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_DST_W(c0a80000/ffff0000)
631 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_DST_W(40080000/5a5a5a5a)
632 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_DST(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_PROTO(06), NXM_OF_TCP_SRC(4231)
639 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC_W(5050/f0f0)
640 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC(5050)
641 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06)
642 nx_pull_match() returned error OFPBMC_BAD_PREREQ
644 # TCP destination port
645 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST(4231)
646 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST_W(fde0/fff0)
647 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST(fde0)
648 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06)
649 nx_pull_match() returned error OFPBMC_BAD_PREREQ
652 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_SRC(8732)
653 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_SRC_W(0132/01ff)
654 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_SRC(0132)
655 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11)
656 nx_pull_match() returned error OFPBMC_BAD_PREREQ
658 # UDP destination port
659 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST(1782)
660 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST_W(5005/f00f)
661 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST(5005)
662 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11)
663 nx_pull_match() returned error OFPBMC_BAD_PREREQ
666 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(01), NXM_OF_ICMP_TYPE(12)
667 nx_pull_match() returned error OFPBMC_BAD_PREREQ
670 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(01), NXM_OF_ICMP_CODE(12)
671 nx_pull_match() returned error OFPBMC_BAD_PREREQ
672 nx_pull_match() returned error OFPBMC_BAD_PREREQ
673 nx_pull_match() returned error OFPBMC_BAD_PREREQ
676 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_OP(0001)
677 nx_pull_match() returned error OFPBMC_BAD_VALUE
678 nx_pull_match() returned error OFPBMC_BAD_PREREQ
679 nx_pull_match() returned error OFPBMC_BAD_PREREQ
680 nx_pull_match() returned error OFPBMC_DUP_FIELD
682 # ARP source protocol address
683 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_SPA(ac100014)
684 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_SPA_W(c0a81200/ffffff00)
685 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_SPA_W(80a80200/aaaaaa00)
686 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_SPA(c0a81234)
687 NXM_OF_ETH_TYPE(0806)
688 nx_pull_match() returned error OFPBMC_BAD_PREREQ
689 nx_pull_match() returned error OFPBMC_BAD_PREREQ
691 # ARP destination protocol address
692 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_TPA(ac100014)
693 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_TPA_W(c0a81200/ffffff00)
694 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_TPA_W(40201234/77777777)
695 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_TPA(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 source hardware address
701 NXM_OF_ETH_TYPE(0806), NXM_NX_ARP_SHA(0002e30f80a4)
702 nx_pull_match() returned error OFPBMC_BAD_PREREQ
703 nx_pull_match() returned error OFPBMC_BAD_PREREQ
705 # ARP destination hardware address
706 NXM_OF_ETH_TYPE(0806), NXM_NX_ARP_THA(0002e30f80a4)
707 nx_pull_match() returned error OFPBMC_BAD_PREREQ
708 nx_pull_match() returned error OFPBMC_BAD_PREREQ
711 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_OP(0003)
712 nx_pull_match() returned error OFPBMC_BAD_VALUE
713 nx_pull_match() returned error OFPBMC_BAD_PREREQ
714 nx_pull_match() returned error OFPBMC_BAD_PREREQ
715 nx_pull_match() returned error OFPBMC_DUP_FIELD
717 # RARP source protocol address
718 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_SPA(ac100014)
719 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_SPA_W(c0a81200/ffffff00)
720 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_SPA_W(80a80200/aaaaaa00)
721 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_SPA(c0a81234)
722 NXM_OF_ETH_TYPE(8035)
723 nx_pull_match() returned error OFPBMC_BAD_PREREQ
724 nx_pull_match() returned error OFPBMC_BAD_PREREQ
726 # RARP destination protocol address
727 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_TPA(ac100014)
728 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_TPA_W(c0a81200/ffffff00)
729 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_TPA_W(40201234/77777777)
730 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_TPA(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 source hardware address
736 NXM_OF_ETH_TYPE(8035), NXM_NX_ARP_SHA(0002e30f80a4)
737 nx_pull_match() returned error OFPBMC_BAD_PREREQ
738 nx_pull_match() returned error OFPBMC_BAD_PREREQ
740 # RARP destination hardware address
741 NXM_OF_ETH_TYPE(8035), NXM_NX_ARP_THA(0002e30f80a4)
742 nx_pull_match() returned error OFPBMC_BAD_PREREQ
743 nx_pull_match() returned error OFPBMC_BAD_PREREQ
746 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005)
747 nx_pull_match() returned error OFPBMC_BAD_PREREQ
748 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
749 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC_W(00000818184800000000000000000000/5a5a5a5a5a5a5a5a0000000000000000)
750 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010000000000000000)
751 NXM_OF_ETH_TYPE(86dd)
752 nx_pull_match() returned error OFPBMC_BAD_PREREQ
755 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST(20010db83c4d00010002000300040005)
756 nx_pull_match() returned error OFPBMC_BAD_PREREQ
757 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST_W(20010530344500010000000000000000/77777777777777777777777777777777)
758 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST(20010db83c4d00010000000000000000)
759 NXM_OF_ETH_TYPE(86dd)
760 nx_pull_match() returned error OFPBMC_BAD_PREREQ
763 nx_pull_match() returned error OFPBMC_BAD_VALUE
764 nx_pull_match() returned error OFPBMC_BAD_PREREQ
765 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_LABEL(0000000f)
768 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87), NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
769 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(88), NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
770 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87), NXM_NX_ND_TARGET_W(00010520080900010000000000040000/0123456789abcdeffedcba9876543210)
771 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87), NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
772 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87)
773 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(88), NXM_NX_ND_TARGET_W(20000898344400000002000300000005/fedcba98765432100123456789abcdef)
775 # ND source hardware address
776 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)
777 nx_pull_match() returned error OFPBMC_BAD_PREREQ
778 nx_pull_match() returned error OFPBMC_BAD_PREREQ
779 nx_pull_match() returned error OFPBMC_BAD_PREREQ
781 # ND destination hardware address
782 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)
783 nx_pull_match() returned error OFPBMC_BAD_PREREQ
784 nx_pull_match() returned error OFPBMC_BAD_PREREQ
785 nx_pull_match() returned error OFPBMC_BAD_PREREQ
788 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(00)
789 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(01)
790 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(02)
791 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(03)
792 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(00)
793 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(00/01)
794 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(00/02)
795 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(01/01)
796 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(02/02)
797 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(03)
798 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(03)
799 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(00)
800 nx_pull_match() returned error OFPBMC_BAD_VALUE
803 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(00)
804 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(01)
805 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(02)
806 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(03)
807 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(00)
808 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(00/01)
809 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(00/02)
810 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(01/01)
811 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(02/02)
812 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(03)
813 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(00)
814 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(03)
815 nx_pull_match() returned error OFPBMC_BAD_VALUE
818 NXM_NX_COOKIE(00000000abcdef01)
819 NXM_NX_COOKIE_W(84200000abcdef01/84200000ffffffff)
820 NXM_NX_COOKIE(84200000abcdef01)
824 NXM_NX_TUN_ID(00000000abcdef01)
825 NXM_NX_TUN_ID_W(84200000abcdef01/84200000ffffffff)
826 NXM_NX_TUN_ID(84200000abcdef01)
830 NXM_NX_REG0(acebdf56)
831 NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
832 NXM_NX_REG0(a0e0d050)
835 # Invalid field number.
836 nx_pull_match() returned error OFPBMC_BAD_FIELD
838 # Unimplemented registers.
840 # This test assumes that at least two registers, but fewer than 16,
841 # registers are implemented.
842 NXM_NX_REG0(12345678)
843 NXM_NX_REG0_W(12345678/12345678)
844 nx_pull_match() returned error OFPBMC_BAD_FIELD
845 nx_pull_match() returned error OFPBMC_BAD_FIELD
849 AT_SETUP([ovs-ofctl parse-ofp10-match])
851 AT_DATA([test-data], [dnl
853 003820fe fffe xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx xxxx xx xx xxxx dnl
854 xxxxxxxx xxxxxxxx xxxx xxxx
856 # dl_src=00:01:02:03:04:05
857 003820fb xxxx 000102030405 xxxxxxxxxxxx xxxx xx xx xxxx xx xx xxxx dnl
858 xxxxxxxx xxxxxxxx xxxx xxxx
860 # dl_dst=10:20:30:40:50:60
861 003820f7 xxxx xxxxxxxxxxxx 102030405060 xxxx xx xx xxxx xx xx xxxx dnl
862 xxxxxxxx xxxxxxxx xxxx xxxx
865 003820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx 0123 xx xx xxxx xx xx xxxx dnl
866 xxxxxxxx xxxxxxxx xxxx xxxx
869 002820ff xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx 05 xx xxxx xx xx xxxx dnl
870 xxxxxxxx xxxxxxxx xxxx xxxx
872 # dl_vlan=291,dl_vlan_pcp=4
873 002820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx 0123 04 xx xxxx xx xx xxxx dnl
874 xxxxxxxx xxxxxxxx xxxx xxxx
877 003820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx ffff xx xx xxxx xx xx xxxx dnl
878 xxxxxxxx xxxxxxxx xxxx xxxx
880 dnl dl_vlan_pcp doesn't make sense when dl_vlan is "none", so
881 dnl OVS ignores it and drops it on output.
885 002820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx ffff 05 xx xxxx xx xx xxxx dnl
886 xxxxxxxx xxxxxxxx xxxx xxxx
888 dnl Invalid VID and PCP discards out-of-range bits:
889 # dl_vlan=256,dl_vlan_pcp=7
892 002820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx f100 ff xx xxxx xx xx xxxx dnl
893 xxxxxxxx xxxxxxxx xxxx xxxx
896 003820ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 1234 xx xx xxxx dnl
897 xxxxxxxx xxxxxxxx xxxx xxxx
900 003820cf xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 05 xxxx dnl
901 xxxxxxxx xxxxxxxx xxxx xxxx
903 dnl Ignore nw_proto if not IP or ARP:
904 # dl_type=0x1234,nw_proto=5
905 # normal: 3: cf -> ef
906 # normal: 25: 05 -> 00
907 & ofp_util|INFO|normalization changed ofp_match, details:
908 & ofp_util|INFO| pre: dl_type=0x1234,nw_proto=5
909 & ofp_util|INFO|post: dl_type=0x1234
910 003820cf xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 1234 xx 05 xxxx dnl
911 xxxxxxxx xxxxxxxx xxxx xxxx
914 001820ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 fc xx xxxx dnl
915 xxxxxxxx xxxxxxxx xxxx xxxx
917 dnl Ignore nw_tos if not IP:
920 # normal: 1: 18 -> 38
921 # normal: 24: 04 -> 00
922 & ofp_util|INFO|normalization changed ofp_match, details:
923 & ofp_util|INFO| pre: arp,nw_tos=4
924 & ofp_util|INFO|post: arp
925 001820ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 05 xx xxxx dnl
926 xxxxxxxx xxxxxxxx xxxx xxxx
928 dnl Low 2 bits of invalid TOS are forced to 0:
931 001820ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 31 xx xxxx dnl
932 xxxxxxxx xxxxxxxx xxxx xxxx
935 003820cf xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx 02 xxxx dnl
936 xxxxxxxx xxxxxxxx xxxx xxxx
938 # ip,nw_src=192.168.128.85
939 003800ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx xx xxxx dnl
940 c0a88055 xxxxxxxx xxxx xxxx
942 # ip,nw_src=192.168.128.0/24
944 003808ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx xx xxxx dnl
945 c0a88055 xxxxxxxx xxxx xxxx
947 # ip,nw_dst=192.168.128.85
948 003020ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx xx xxxx dnl
949 xxxxxxxx c0a88055 xxxx xxxx
951 # ip,nw_dst=192.168.128.0/24
953 003220ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx xx xxxx dnl
954 xxxxxxxx c0a88055 xxxx xxxx
956 # arp,arp_spa=192.168.128.85
957 003800ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx xx xxxx dnl
958 c0a88055 xxxxxxxx xxxx xxxx
960 # arp,arp_spa=192.168.128.0/24
962 003808ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx xx xxxx dnl
963 c0a88055 xxxxxxxx xxxx xxxx
965 # arp,arp_tpa=192.168.128.85
966 003020ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx xx xxxx dnl
967 xxxxxxxx c0a88055 xxxx xxxx
969 # arp,arp_tpa=192.168.128.0/24
971 003220ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx xx xxxx dnl
972 xxxxxxxx c0a88055 xxxx xxxx
974 dnl Ignore nw_src if not IP or ARP:
975 # dl_type=0x1234,nw_src=192.168.128.0/24
977 # normal: 2: 08 -> 20
978 # normal: 28: c0 -> 00
979 # normal: 29: a8 -> 00
980 # normal: 30: 80 -> 00
981 & ofp_util|INFO|normalization changed ofp_match, details:
982 & ofp_util|INFO| pre: dl_type=0x1234,nw_src=192.168.128.0/24
983 & ofp_util|INFO|post: dl_type=0x1234
984 003808ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 1234 xx xx xxxx dnl
985 c0a88055 xxxxxxxx xxxx xxxx
987 dnl Ignore nw_dst if not IP or ARP:
988 # dl_type=0x1234,nw_dst=192.168.128.0/24
990 # normal: 1: 32 -> 38
991 # normal: 32: c0 -> 00
992 # normal: 33: a8 -> 00
993 # normal: 34: 80 -> 00
994 & ofp_util|INFO|normalization changed ofp_match, details:
995 & ofp_util|INFO| pre: dl_type=0x1234,nw_dst=192.168.128.0/24
996 & ofp_util|INFO|post: dl_type=0x1234
997 003220ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 1234 xx xx xxxx dnl
998 xxxxxxxx c0a88055 xxxx xxxx
1001 0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 06 xxxx dnl
1002 xxxxxxxx xxxxxxxx 01bb xxxx
1005 0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 06 xxxx dnl
1006 xxxxxxxx xxxxxxxx xxxx 01bb
1009 0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 11 xxxx dnl
1010 xxxxxxxx xxxxxxxx 01bb xxxx
1013 0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 11 xxxx dnl
1014 xxxxxxxx xxxxxxxx xxxx 01bb
1017 0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 01 xxxx dnl
1018 xxxxxxxx xxxxxxxx 0005 xxxx
1021 0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 01 xxxx dnl
1022 xxxxxxxx xxxxxxxx xxxx 0008
1024 dnl Ignore tp_src if not TCP or UDP:
1025 # ip,nw_proto=21,tp_src=443
1026 # normal: 3: 8f -> cf
1027 # normal: 36: 01 -> 00
1028 # normal: 37: bb -> 00
1029 & ofp_util|INFO|normalization changed ofp_match, details:
1030 & ofp_util|INFO| pre: ip,nw_proto=21,tp_src=443
1031 & ofp_util|INFO|post: ip,nw_proto=21
1032 0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 15 xxxx dnl
1033 xxxxxxxx xxxxxxxx 01bb xxxx
1035 dnl Ignore tp_dst if not TCP or UDP:
1036 # ip,nw_proto=21,tp_dst=443
1037 # normal: 3: 4f -> cf
1038 # normal: 38: 01 -> 00
1039 # normal: 39: bb -> 00
1040 dnl The normalization details are suppressed here due to rate-limiting.
1041 0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 15 xxxx dnl
1042 xxxxxxxx xxxxxxxx xxxx 01bb
1045 sed '/^[[#&]]/d' < test-data > input.txt
1046 sed -n 's/^# //p; /^$/p' < test-data > expout
1047 sed -n 's/^& //p' < test-data > experr
1048 AT_CAPTURE_FILE([input.txt])
1049 AT_CAPTURE_FILE([expout])
1050 AT_CAPTURE_FILE([experr])
1052 [ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-ofp10-match < input.txt],
1053 [0], [expout], [experr])
1056 AT_SETUP([ovs-ofctl parse-ofp11-match])
1057 AT_KEYWORDS([OF1.1])
1058 AT_DATA([test-data], [dnl
1060 0000 0058 fffffffe 000003fe dnl
1061 000000000000ffffffffffff 000000000000ffffffffffff dnl
1062 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1063 00000000 00 000000 0000000000000000ffffffffffffffff
1065 # bad ofp11_match: OFPBMC_BAD_VALUE
1066 & ofp_util|WARN|port 305419896 is outside the supported range 0 through 65279 or 0xffffff00 through 0xffffffff
1067 0000 0058 12345678 000003fe dnl
1068 000000000000ffffffffffff 000000000000ffffffffffff dnl
1069 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1070 00000000 00 000000 0000000000000000ffffffffffffffff
1072 # dl_src=00:01:02:03:04:05
1073 0000 0058 00000000 000003ff dnl
1074 000102030405000000000000 000000000000ffffffffffff dnl
1075 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1076 00000000 00 000000 0000000000000000ffffffffffffffff
1078 # dl_src=55:55:55:55:55:55/55:55:55:55:55:55
1079 0000 0058 00000000 000003ff dnl
1080 555555555555aaaaaaaaaaaa 000000000000ffffffffffff dnl
1081 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1082 00000000 00 000000 0000000000000000ffffffffffffffff
1084 # dl_dst=00:01:02:03:04:05
1085 0000 0058 00000000 000003ff dnl
1086 000000000000ffffffffffff 000102030405000000000000 dnl
1087 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1088 00000000 00 000000 0000000000000000ffffffffffffffff
1090 # dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
1091 0000 0058 00000000 000003ff dnl
1092 000000000000ffffffffffff 010000000000feffffffffff dnl
1093 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1094 00000000 00 000000 0000000000000000ffffffffffffffff
1096 # dl_dst=00:01:02:03:04:05/fe:ff:ff:ff:ff:ff
1097 0000 0058 00000000 000003ff dnl
1098 000000000000ffffffffffff 000102030405010000000000 dnl
1099 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1100 00000000 00 000000 0000000000000000ffffffffffffffff
1102 # dl_dst=55:55:55:55:55:55/55:55:55:55:55:55
1103 0000 0058 00000000 000003ff dnl
1104 000000000000ffffffffffff 555555555555aaaaaaaaaaaa dnl
1105 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1106 00000000 00 000000 0000000000000000ffffffffffffffff
1108 dnl dl_vlan_pcp is ignored if dl_vlan is wildcarded, which causes the
1109 dnl the wildcard bit and the dl_vlan_pcp to be dropped for output:
1113 0000 0058 00000001 000003fa dnl
1114 000000000000ffffffffffff 000000000000ffffffffffff dnl
1115 0000 03 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1116 00000000 00 000000 0000000000000000ffffffffffffffff
1119 0000 0058 00000000 000003fd dnl
1120 000000000000ffffffffffff 000000000000ffffffffffff dnl
1121 0123 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1122 00000000 00 000000 0000000000000000ffffffffffffffff
1126 0000 0058 00000000 000003fd dnl
1127 000000000000ffffffffffff 000000000000ffffffffffff dnl
1128 ffff 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1129 00000000 00 000000 0000000000000000ffffffffffffffff
1131 dnl OFPVID_NONE ignores dl_vlan_pcp even if not wildcarded, which causes
1132 dnl the wildcard bit and the dl_vlan_pcp to be dropped for output:
1136 0000 0058 00000000 000003f9 dnl
1137 000000000000ffffffffffff 000000000000ffffffffffff dnl
1138 ffff 05 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1139 00000000 00 000000 0000000000000000ffffffffffffffff
1141 # vlan_tci=0x1000/0x1000
1142 0000 0058 00000000 000003fd dnl
1143 000000000000ffffffffffff 000000000000ffffffffffff dnl
1144 fffe 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1145 00000000 00 000000 0000000000000000ffffffffffffffff
1147 dnl Try invalid VID:
1148 # bad ofp11_match: OFPBMC_BAD_VALUE
1149 0000 0058 00000000 000003fd dnl
1150 000000000000ffffffffffff 000000000000ffffffffffff dnl
1151 1234 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1152 00000000 00 000000 0000000000000000ffffffffffffffff
1155 0000 0058 00000000 000003f9 dnl
1156 000000000000ffffffffffff 000000000000ffffffffffff dnl
1157 fffe 04 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1158 00000000 00 000000 0000000000000000ffffffffffffffff
1160 # dl_vlan=10,dl_vlan_pcp=6
1161 0000 0058 00000000 000003f9 dnl
1162 000000000000ffffffffffff 000000000000ffffffffffff dnl
1163 000a 06 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1164 00000000 00 000000 0000000000000000ffffffffffffffff
1167 0000 0058 00000000 000003f7 dnl
1168 000000000000ffffffffffff 000000000000ffffffffffff dnl
1169 0000 00 00 1234 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1170 00000000 00 000000 0000000000000000ffffffffffffffff
1173 0000 0058 00000000 000003e7 dnl
1174 000000000000ffffffffffff 000000000000ffffffffffff dnl
1175 0000 00 00 0800 fc 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1176 00000000 00 000000 0000000000000000ffffffffffffffff
1178 dnl Try invalid TOS:
1179 # bad ofp11_match: OFPBMC_BAD_VALUE
1180 0000 0058 00000000 000003e7 dnl
1181 000000000000ffffffffffff 000000000000ffffffffffff dnl
1182 0000 00 00 0800 01 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1183 00000000 00 000000 0000000000000000ffffffffffffffff
1186 0000 0058 00000000 000003d7 dnl
1187 000000000000ffffffffffff 000000000000ffffffffffff dnl
1188 0000 00 00 0800 00 05 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1189 00000000 00 000000 0000000000000000ffffffffffffffff
1192 0000 0058 00000000 000003d7 dnl
1193 000000000000ffffffffffff 000000000000ffffffffffff dnl
1194 0000 00 00 0806 00 02 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1195 00000000 00 000000 0000000000000000ffffffffffffffff
1197 # ip,nw_src=192.168.128.0/24
1198 0000 0058 00000000 000003f7 dnl
1199 000000000000ffffffffffff 000000000000ffffffffffff dnl
1200 0000 00 00 0800 00 00 c0a88000000000ff 00000000ffffffff 0000 0000 dnl
1201 00000000 00 000000 0000000000000000ffffffffffffffff
1203 # ip,nw_src=128.160.128.0/165.165.165.165
1206 0000 0058 00000000 000003f7 dnl
1207 000000000000ffffffffffff 000000000000ffffffffffff dnl
1208 0000 00 00 0800 00 00 c0a880005a5a5a5a 00000000ffffffff 0000 0000 dnl
1209 00000000 00 000000 0000000000000000ffffffffffffffff
1211 # ip,nw_dst=192.168.128.0/24
1212 0000 0058 00000000 000003f7 dnl
1213 000000000000ffffffffffff 000000000000ffffffffffff dnl
1214 0000 00 00 0800 00 00 00000000ffffffff c0a88000000000ff 0000 0000 dnl
1215 00000000 00 000000 0000000000000000ffffffffffffffff
1217 # ip,nw_dst=128.160.128.0/165.165.165.165
1220 0000 0058 00000000 000003f7 dnl
1221 000000000000ffffffffffff 000000000000ffffffffffff dnl
1222 0000 00 00 0800 00 00 00000000ffffffff c0a880005a5a5a5a 0000 0000 dnl
1223 00000000 00 000000 0000000000000000ffffffffffffffff
1225 # arp,arp_spa=192.168.128.0/24
1226 0000 0058 00000000 000003f7 dnl
1227 000000000000ffffffffffff 000000000000ffffffffffff dnl
1228 0000 00 00 0806 00 00 c0a88000000000ff 00000000ffffffff 0000 0000 dnl
1229 00000000 00 000000 0000000000000000ffffffffffffffff
1231 # arp,arp_tpa=192.168.128.0/24
1232 0000 0058 00000000 000003f7 dnl
1233 000000000000ffffffffffff 000000000000ffffffffffff dnl
1234 0000 00 00 0806 00 00 00000000ffffffff c0a88000000000ff 0000 0000 dnl
1235 00000000 00 000000 0000000000000000ffffffffffffffff
1238 0000 0058 00000000 00000397 dnl
1239 000000000000ffffffffffff 000000000000ffffffffffff dnl
1240 0000 00 00 0800 00 06 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
1241 00000000 00 000000 0000000000000000ffffffffffffffff
1244 0000 0058 00000000 00000357 dnl
1245 000000000000ffffffffffff 000000000000ffffffffffff dnl
1246 0000 00 00 0800 00 06 00000000ffffffff 00000000ffffffff 0000 01bb dnl
1247 00000000 00 000000 0000000000000000ffffffffffffffff
1250 0000 0058 00000000 00000397 dnl
1251 000000000000ffffffffffff 000000000000ffffffffffff dnl
1252 0000 00 00 0800 00 11 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
1253 00000000 00 000000 0000000000000000ffffffffffffffff
1256 0000 0058 00000000 00000397 dnl
1257 000000000000ffffffffffff 000000000000ffffffffffff dnl
1258 0000 00 00 0800 00 01 00000000ffffffff 00000000ffffffff 0005 0000 dnl
1259 00000000 00 000000 0000000000000000ffffffffffffffff
1262 0000 0058 00000000 00000357 dnl
1263 000000000000ffffffffffff 000000000000ffffffffffff dnl
1264 0000 00 00 0800 00 01 00000000ffffffff 00000000ffffffff 0000 0008 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 00000357 dnl
1275 000000000000ffffffffffff 000000000000ffffffffffff dnl
1276 0000 00 00 0800 00 11 00000000ffffffff 00000000ffffffff 0000 01bb dnl
1277 00000000 00 000000 0000000000000000ffffffffffffffff
1281 0000 0058 00000000 000003d7 dnl
1282 000000000000ffffffffffff 000000000000ffffffffffff dnl
1283 0000 00 00 0800 00 84 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1284 00000000 00 000000 0000000000000000ffffffffffffffff
1286 dnl SCTP tp_src matching not supported:
1287 # bad ofp11_match: OFPBMC_BAD_FIELD
1288 0000 0058 00000000 00000397 dnl
1289 000000000000ffffffffffff 000000000000ffffffffffff dnl
1290 0000 00 00 0800 00 84 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
1291 00000000 00 000000 0000000000000000ffffffffffffffff
1293 dnl SCTP tp_dst matching not supported:
1294 # bad ofp11_match: OFPBMC_BAD_FIELD
1295 0000 0058 00000000 00000357 dnl
1296 000000000000ffffffffffff 000000000000ffffffffffff dnl
1297 0000 00 00 0800 00 84 00000000ffffffff 00000000ffffffff 0000 01bb dnl
1298 00000000 00 000000 0000000000000000ffffffffffffffff
1300 dnl Ignore tp_src if not TCP or UDP or SCTP:
1305 0000 0058 00000000 00000397 dnl
1306 000000000000ffffffffffff 000000000000ffffffffffff dnl
1307 0000 00 00 0800 00 15 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
1308 00000000 00 000000 0000000000000000ffffffffffffffff
1310 dnl Ignore tp_dst if not TCP or UDP or SCTP:
1315 0000 0058 00000000 00000357 dnl
1316 000000000000ffffffffffff 000000000000ffffffffffff dnl
1317 0000 00 00 0800 00 16 00000000ffffffff 00000000ffffffff 0000 01bb dnl
1318 00000000 00 000000 0000000000000000ffffffffffffffff
1320 dnl mpls_label not yet supported:
1321 # bad ofp11_match: OFPBMC_BAD_TAG
1322 0000 0058 00000000 000002f7 dnl
1323 000000000000ffffffffffff 000000000000ffffffffffff dnl
1324 0000 00 00 8847 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1325 12345678 00 000000 0000000000000000ffffffffffffffff
1327 dnl mpls_tc not yet supported:
1328 # bad ofp11_match: OFPBMC_BAD_TAG
1329 0000 0058 00000000 000001f7 dnl
1330 000000000000ffffffffffff 000000000000ffffffffffff dnl
1331 0000 00 00 8848 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1332 00000000 5a 000000 0000000000000000ffffffffffffffff
1334 dnl mpls_label and mpls_tc must be ignored if dl_type is not MPLS:
1342 0000 0058 00000000 000000f7 dnl
1343 000000000000ffffffffffff 000000000000ffffffffffff dnl
1344 0000 00 00 1234 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1345 12345678 5a 000000 0000000000000000ffffffffffffffff
1348 # metadata=0x1234567890abcdef
1349 0000 0058 00000000 000003ff dnl
1350 000000000000ffffffffffff 000000000000ffffffffffff dnl
1351 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1352 00000000 00 000000 1234567890abcdef0000000000000000
1355 # metadata=0x5555555555555555/0x5555555555555555
1356 0000 0058 00000000 000003ff dnl
1357 000000000000ffffffffffff 000000000000ffffffffffff dnl
1358 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1359 00000000 00 000000 5555555555555555aaaaaaaaaaaaaaaa
1362 # metadata=0x1234000090ab0000/0xffff0000ffff0000
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 1234567890abcdef0000ffff0000ffff
1373 sed '/^[[#&]]/d' < test-data > input.txt
1374 sed -n 's/^# //p; /^$/p' < test-data > expout
1375 sed -n 's/^& //p' < test-data > experr
1376 AT_CAPTURE_FILE([input.txt])
1377 AT_CAPTURE_FILE([expout])
1378 AT_CAPTURE_FILE([experr])
1380 [ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-ofp11-match < input.txt],
1381 [0], [expout], [experr])
1384 AT_SETUP([ovs-ofctl parse-nx-match loose])
1385 AT_KEYWORDS([nx-match])
1386 AT_DATA([nx-match.txt], [dnl
1387 NXM_OF_IN_PORT(0001), 01020304(1111/2222), NXM_OF_ETH_TYPE(0800)
1390 AT_CHECK([ovs-ofctl --strict parse-nx-match < nx-match.txt], [0], [dnl
1391 nx_pull_match() returned error OFPBMC_BAD_FIELD
1394 AT_CHECK([ovs-ofctl parse-nx-match < nx-match.txt], [0], [dnl
1395 NXM_OF_IN_PORT(0001), NXM_OF_ETH_TYPE(0800)
1399 AT_SETUP([ovs-ofctl parse-oxm])
1401 AT_DATA([oxm.txt], [dnl
1405 OXM_OF_IN_PORT(00000000)
1406 OXM_OF_IN_PORT(fffffffe)
1409 OXM_OF_METADATA(5a5a5a5a5a5a5a5a)
1410 OXM_OF_METADATA_W(0000000000000000/00000000ffffffff)
1411 OXM_OF_METADATA_W(1234567890abcdef/ffff0000ffff0000)
1412 OXM_OF_METADATA_W(1234567890abcdef/ffffffffffffffff)
1413 OXM_OF_METADATA_W(1234567890abcdef/0000000000000000)
1416 OXM_OF_ETH_DST(0002e30f80a4)
1417 OXM_OF_ETH_DST_W(010000000000/010000000000)
1418 OXM_OF_ETH_DST_W(000000000000/010000000000)
1419 OXM_OF_ETH_DST_W(ffffffffffff/010000000000)
1420 OXM_OF_ETH_DST_W(0002e30f80a4/ffffffffffff)
1421 OXM_OF_ETH_DST_W(0002e30f80a4/000000000000)
1422 OXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
1425 OXM_OF_ETH_SRC(020898456ddb)
1428 OXM_OF_ETH_TYPE(0800)
1429 OXM_OF_ETH_TYPE(0800) OXM_OF_IN_PORT(00000012)
1432 OXM_OF_VLAN_VID(1009) OXM_OF_VLAN_VID(1009) # Duplicate Field
1433 OXM_OF_VLAN_VID(f009) # Bad Value
1434 OXM_OF_VLAN_PCP(00) # Bad Pre-Requisite
1435 OXM_OF_VLAN_VID(0000) # Packets without 802.1Q header or with VID=0
1436 OXM_OF_VLAN_VID(1123) # Packets with VID=123, any PCP
1437 OXM_OF_VLAN_VID(1123) OXM_OF_VLAN_PCP(01) # Packets with VID=123, PCP=1.
1438 OXM_OF_VLAN_VID(0123) # Does not make sense (but supported anyway)
1439 OXM_OF_VLAN_VID_W(0123/0123) # Does not make sense (but supported anyway)
1440 OXM_OF_VLAN_VID_W(1123/0123) # Does not make sense (but supported anyway)
1441 OXM_OF_VLAN_VID_W(0123/1123) # Does not make sense (but supported anyway)
1442 OXM_OF_VLAN_VID(0123) OXM_OF_VLAN_PCP(01) #Bad Pre-Requisite
1443 OXM_OF_VLAN_VID_W(1123/1fff) # Packets with VID=123, any PCP.
1444 OXM_OF_VLAN_VID_W(1123/ffff) # Packets with VID=123, any PCP.
1445 OXM_OF_VLAN_VID_W(1123/0000) # Packets with or without 802.1Q header
1446 OXM_OF_VLAN_VID_W(1123/1f0f), # Packets with # VID=123 (masked)
1447 OXM_OF_VLAN_VID_W(1123/1f0f), OXM_OF_VLAN_PCP(01) # Packets with VID=123 (masked), any PCP.
1448 OXM_OF_VLAN_VID_W(1000/1000) # Packets with any VID, any PCP
1449 OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(01) # Packets with any VID, PCP=1.
1452 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_ECN(03)
1453 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_ECN(06)
1457 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01)
1458 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(05)
1462 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC(ac100014)
1463 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC_W(C0a80000/FFFF0000)
1464 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC_W(C0a80000/FFFFFFFF)
1465 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC_W(C0a80000/00000000)
1466 OXM_OF_ETH_TYPE(0806) OXM_OF_IPV4_SRC(ac100014)
1467 OXM_OF_IPV4_SRC_W(C0D80000/FFFF0000)
1470 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST(ac100014)
1471 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST_W(C0a88012/FFFF0000)
1472 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST_W(C0a88012/FFFFFFFF)
1473 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST_W(C0a88012/00000000)
1474 OXM_OF_IPV4_DST(ac100014)
1475 OXM_OF_ETH_TYPE(0806) OXM_OF_IPV4_DST_W(C0D80000/FFFF0000)
1478 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC(4231)
1479 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC_W(5050/F0F0)
1480 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC_W(5050/FFFF)
1481 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC_W(5050/0000)
1482 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(07) OXM_OF_TCP_SRC(4231)
1484 # TCP destination port
1485 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST(4231)
1486 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST_W(FDE0/FFF0)
1487 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST_W(FDE0/FFFF)
1488 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST_W(FDE0/0000)
1489 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(07) OXM_OF_TCP_DST(4231)
1492 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC(8732)
1493 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC_W(0132/01FF)
1494 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC_W(0132/FFFF)
1495 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC_W(0132/0000)
1496 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_UDP_SRC(7823)
1498 # UDP destination port
1499 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST(1782)
1500 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST_W(5005/F00F)
1501 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST_W(5005/FFFF)
1502 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST_W(5005/0000)
1503 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(02) OXM_OF_UDP_DST(1293)
1506 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01) OXM_OF_ICMPV4_TYPE(12)
1507 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(00) OXM_OF_ICMPV4_TYPE(10)
1510 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01) OXM_OF_ICMPV4_CODE(12)
1511 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(00) OXM_OF_ICMPV4_CODE(10)
1512 OXM_OF_ETH_TYPE(0800) OXM_OF_ICMPV4_CODE(10)
1513 OXM_OF_ICMPV4_CODE(00)
1516 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(0001)
1517 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(1111)
1518 OXM_OF_ETH_TYPE(0000) OXM_OF_ARP_OP(0001)
1520 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(0001) OXM_OF_ARP_OP(0001)
1522 # ARP source protocol address
1523 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA(ac100014)
1524 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA_W(C0a81234/FFFFFF00)
1525 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA_W(C0a81234/FFFFFFFF)
1526 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA_W(C0a81234/00000000)
1527 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_SPA(ac100014)
1528 OXM_OF_ARP_SPA_W(C0D8fedc/FFFF0000)
1530 # ARP destination protocol address
1531 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA(ac100014)
1532 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA_W(C0a812fe/FFFFFF00)
1533 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA_W(C0a812fe/FFFFFFFF)
1534 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA_W(C0a812fe/00000000)
1535 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_TPA(ac100014)
1536 OXM_OF_ARP_TPA_W(C0D80000/FFFF0000)
1538 # ARP source hardware address
1539 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA(0002e30f80a4)
1540 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_SHA(0002e30f80a4)
1541 OXM_OF_ARP_SHA(0002e30f80a4)
1542 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA_W(0002e30f80a4/ffffffffffff)
1543 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA_W(0002e30f80a4/000000000000)
1544 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA_W(0002e30f80a4/00000000000f)
1546 # ARP destination hardware address
1547 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA(0002e30f80a4)
1548 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_THA(0002e30f80a4)
1549 OXM_OF_ARP_THA(0002e30f80a4)
1550 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA_W(0002e30f80a4/ffffffffffff)
1551 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA_W(0002e30f80a4/000000000000)
1552 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA_W(0002e30f80a4/00000000000f)
1555 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
1556 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
1557 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1558 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
1559 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/00000000000000000000000000000000)
1560 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1563 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
1564 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
1565 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1566 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
1567 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/00000000000000000000000000000000)
1568 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1571 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL(1000000f)
1572 OXM_OF_IPV6_FLABEL(0000000f)
1573 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL(0000000f)
1574 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/0000000f)
1575 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/000fffff)
1576 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/000ffff0)
1577 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/100fffff)
1578 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/ffffffff)
1579 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/00000000)
1581 # ND source hardware address
1582 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)
1583 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)
1584 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)
1585 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)
1587 # ND destination hardware address
1588 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)
1589 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)
1590 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)
1591 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)
1593 # Invalid field number.
1596 AT_CHECK([ovs-ofctl --strict parse-oxm < oxm.txt], [0], [dnl
1600 OXM_OF_IN_PORT(00000000)
1601 OXM_OF_IN_PORT(fffffffe)
1604 OXM_OF_METADATA(5a5a5a5a5a5a5a5a)
1605 OXM_OF_METADATA_W(0000000000000000/00000000ffffffff)
1606 OXM_OF_METADATA_W(1234000090ab0000/ffff0000ffff0000)
1607 OXM_OF_METADATA(1234567890abcdef)
1611 OXM_OF_ETH_DST(0002e30f80a4)
1612 OXM_OF_ETH_DST_W(010000000000/010000000000)
1613 OXM_OF_ETH_DST_W(000000000000/010000000000)
1614 OXM_OF_ETH_DST_W(010000000000/010000000000)
1615 OXM_OF_ETH_DST(0002e30f80a4)
1617 OXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
1620 OXM_OF_ETH_SRC(020898456ddb)
1623 OXM_OF_ETH_TYPE(0800)
1624 OXM_OF_IN_PORT(00000012), OXM_OF_ETH_TYPE(0800)
1627 nx_pull_match() returned error OFPBMC_DUP_FIELD
1628 nx_pull_match() returned error OFPBMC_BAD_VALUE
1629 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1630 OXM_OF_VLAN_VID(0000)
1631 OXM_OF_VLAN_VID(1123)
1632 OXM_OF_VLAN_VID(1123), OXM_OF_VLAN_PCP(01)
1633 OXM_OF_VLAN_VID(0123)
1634 OXM_OF_VLAN_VID_W(0123/0123)
1635 OXM_OF_VLAN_VID_W(0123/0123)
1636 OXM_OF_VLAN_VID_W(0123/1123)
1637 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1638 OXM_OF_VLAN_VID(1123)
1639 OXM_OF_VLAN_VID(1123)
1641 OXM_OF_VLAN_VID_W(1103/1f0f)
1642 OXM_OF_VLAN_VID_W(1103/1f0f), OXM_OF_VLAN_PCP(01)
1643 OXM_OF_VLAN_VID_W(1000/1000)
1644 OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(01)
1647 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_ECN(03)
1648 nx_pull_match() returned error OFPBMC_BAD_VALUE
1649 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1652 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01)
1653 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(05)
1654 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1657 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_SRC(ac100014)
1658 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_SRC_W(c0a80000/ffff0000)
1659 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_SRC(c0a80000)
1660 OXM_OF_ETH_TYPE(0800)
1661 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1662 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1665 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_DST(ac100014)
1666 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_DST_W(c0a80000/ffff0000)
1667 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_DST(c0a88012)
1668 OXM_OF_ETH_TYPE(0800)
1669 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1670 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1673 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_SRC(4231)
1674 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_SRC_W(5050/f0f0)
1675 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_SRC(5050)
1676 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06)
1677 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1679 # TCP destination port
1680 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_DST(4231)
1681 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_DST_W(fde0/fff0)
1682 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_DST(fde0)
1683 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06)
1684 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1687 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_SRC(8732)
1688 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_SRC_W(0132/01ff)
1689 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_SRC(0132)
1690 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11)
1691 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1693 # UDP destination port
1694 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_DST(1782)
1695 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_DST_W(5005/f00f)
1696 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_DST(5005)
1697 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11)
1698 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1701 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01), OXM_OF_ICMPV4_TYPE(12)
1702 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1705 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01), OXM_OF_ICMPV4_CODE(12)
1706 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1707 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1708 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1711 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_OP(0001)
1712 nx_pull_match() returned error OFPBMC_BAD_VALUE
1713 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1714 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1715 nx_pull_match() returned error OFPBMC_DUP_FIELD
1717 # ARP source protocol address
1718 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SPA(ac100014)
1719 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SPA_W(c0a81200/ffffff00)
1720 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SPA(c0a81234)
1721 OXM_OF_ETH_TYPE(0806)
1722 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1723 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1725 # ARP destination protocol address
1726 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_TPA(ac100014)
1727 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_TPA_W(c0a81200/ffffff00)
1728 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_TPA(c0a812fe)
1729 OXM_OF_ETH_TYPE(0806)
1730 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1731 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1733 # ARP source hardware address
1734 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SHA(0002e30f80a4)
1735 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1736 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1737 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SHA(0002e30f80a4)
1738 OXM_OF_ETH_TYPE(0806)
1739 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SHA_W(000000000004/00000000000f)
1741 # ARP destination hardware address
1742 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_THA(0002e30f80a4)
1743 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1744 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1745 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_THA(0002e30f80a4)
1746 OXM_OF_ETH_TYPE(0806)
1747 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_THA_W(000000000004/00000000000f)
1750 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
1751 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1752 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1753 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_SRC(20010db83c4d00010000000000000000)
1754 OXM_OF_ETH_TYPE(86dd)
1755 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1758 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
1759 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1760 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1761 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_DST(20010db83c4d00010000000000000000)
1762 OXM_OF_ETH_TYPE(86dd)
1763 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1766 nx_pull_match() returned error OFPBMC_BAD_VALUE
1767 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1768 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
1769 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL_W(0000000f/0000000f)
1770 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
1771 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL_W(00000000/000ffff0)
1772 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
1773 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
1774 OXM_OF_ETH_TYPE(86dd)
1776 # ND source hardware address
1777 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)
1778 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1779 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1780 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1782 # ND destination hardware address
1783 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)
1784 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1785 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1786 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1788 # Invalid field number.
1789 nx_pull_match() returned error OFPBMC_BAD_FIELD
1793 AT_SETUP([ovs-ofctl parse-oxm loose])
1795 AT_DATA([oxm.txt], [dnl
1796 OXM_OF_IN_PORT(00000001), 01020304(1111/2222), OXM_OF_ETH_TYPE(0800)
1799 AT_CHECK([ovs-ofctl --strict parse-oxm < oxm.txt], [0], [dnl
1800 nx_pull_match() returned error OFPBMC_BAD_FIELD
1803 AT_CHECK([ovs-ofctl parse-oxm < oxm.txt], [0], [dnl
1804 OXM_OF_IN_PORT(00000001), OXM_OF_ETH_TYPE(0800)
1808 dnl Check all of the patterns mentioned in the "VLAN Matching" section
1809 dnl in the DESIGN file at top level.
1810 AT_SETUP([ovs-ofctl check-vlan])
1814 AT_CHECK([ovs-ofctl check-vlan 0000 0000], [0], [dnl
1816 NXM: <any> -> 0000/0000
1817 OXM: <any> -> 0000/0000,--
1818 OF1.0: 0000/1,00/1 -> 0000/0000
1819 OF1.1: 0000/1,00/1 -> 0000/0000
1823 AT_CHECK([ovs-ofctl check-vlan 0000 ffff], [0], [dnl
1824 vlan_tci=0x0000 -> 0000/ffff
1825 NXM: NXM_OF_VLAN_TCI(0000) -> 0000/ffff
1826 OXM: OXM_OF_VLAN_VID(0000) -> 0000/1fff,--
1827 OF1.0: ffff/0,00/1 -> 0000/ffff
1828 OF1.1: ffff/0,00/1 -> 0000/ffff
1832 AT_CHECK([ovs-ofctl check-vlan 1abc 1fff], [0], [dnl
1833 dl_vlan=2748 -> 1abc/1fff
1834 NXM: NXM_OF_VLAN_TCI_W(1abc/1fff) -> 1abc/1fff
1835 OXM: OXM_OF_VLAN_VID(1abc) -> 1abc/1fff,--
1836 OF1.0: 0abc/0,00/1 -> 1abc/1fff
1837 OF1.1: 0abc/0,00/1 -> 1abc/1fff
1841 AT_CHECK([ovs-ofctl check-vlan b000 f000], [0], [dnl
1842 dl_vlan_pcp=5 -> b000/f000
1843 NXM: NXM_OF_VLAN_TCI_W(b000/f000) -> b000/f000
1844 OXM: OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(05) -> 1000/1000,05
1845 OF1.0: 0000/1,05/0 -> b000/f000
1846 OF1.1: fffe/0,05/0 -> b000/f000
1850 AT_CHECK([ovs-ofctl check-vlan babc ffff], [0], [dnl
1851 dl_vlan=2748,dl_vlan_pcp=5 -> babc/ffff
1852 NXM: NXM_OF_VLAN_TCI(babc) -> babc/ffff
1853 OXM: OXM_OF_VLAN_VID(1abc), OXM_OF_VLAN_PCP(05) -> 1abc/1fff,05
1854 OF1.0: 0abc/0,05/0 -> babc/ffff
1855 OF1.1: 0abc/0,05/0 -> babc/ffff
1859 AT_CHECK([ovs-ofctl check-vlan 0000 0fff], [0], [dnl
1860 vlan_tci=0x0000/0x0fff -> 0000/0fff
1861 NXM: NXM_OF_VLAN_TCI_W(0000/0fff) -> 0000/0fff
1862 OXM: OXM_OF_VLAN_VID_W(0000/0fff) -> 0000/0fff,--
1863 OF1.0: 0000/0,00/1 -> 1000/1fff
1864 OF1.1: 0000/0,00/1 -> 1000/1fff
1868 AT_CHECK([ovs-ofctl check-vlan 0000 f000], [0], [dnl
1869 vlan_tci=0x0000/0xf000 -> 0000/f000
1870 NXM: NXM_OF_VLAN_TCI_W(0000/f000) -> 0000/f000
1871 OXM: OXM_OF_VLAN_VID_W(0000/1000) -> 0000/1000,--
1872 OF1.0: ffff/0,00/1 -> 0000/ffff
1873 OF1.1: ffff/0,00/1 -> 0000/ffff
1877 AT_CHECK([ovs-ofctl check-vlan 0000 efff], [0], [dnl
1878 vlan_tci=0x0000/0xefff -> 0000/efff
1879 NXM: NXM_OF_VLAN_TCI_W(0000/efff) -> 0000/efff
1880 OXM: OXM_OF_VLAN_VID_W(0000/0fff) -> 0000/0fff,--
1881 OF1.0: 0000/0,00/0 -> 1000/ffff
1882 OF1.1: 0000/0,00/0 -> 1000/ffff
1886 AT_CHECK([ovs-ofctl check-vlan 1001 1001], [0], [dnl
1887 vlan_tci=0x1001/0x1001 -> 1001/1001
1888 NXM: NXM_OF_VLAN_TCI_W(1001/1001) -> 1001/1001
1889 OXM: OXM_OF_VLAN_VID_W(1001/1001) -> 1001/1001,--
1890 OF1.0: 0001/0,00/1 -> 1001/1fff
1891 OF1.1: 0001/0,00/1 -> 1001/1fff
1895 AT_CHECK([ovs-ofctl check-vlan 3000 3000], [0], [dnl
1896 vlan_tci=0x3000/0x3000 -> 3000/3000
1897 NXM: NXM_OF_VLAN_TCI_W(3000/3000) -> 3000/3000
1898 OXM: OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(01) -> 1000/1000,01
1899 OF1.0: 0000/1,01/0 -> 3000/f000
1900 OF1.1: fffe/0,01/0 -> 3000/f000
1905 dnl Check that "-F openflow10" rejects a flow_mod with unsupported features,
1906 dnl such as tunnels and metadata.
1907 AT_SETUP([ovs-ofctl -F option and NXM features])
1908 AT_CHECK([ovs-ofctl -F openflow10 add-flow dummy tun_id=123,actions=drop],
1909 [1], [], [ovs-ofctl: none of the usable flow formats (NXM,OXM) is among the allowed flow formats (OpenFlow10)
1911 AT_CHECK([ovs-ofctl -F openflow10 add-flow dummy metadata=123,actions=drop],
1912 [1], [], [ovs-ofctl: none of the usable flow formats (NXM,OXM) is among the allowed flow formats (OpenFlow10)
1916 dnl Check that "-F nxm" really forces add-flow to use the NXM flow format.
1917 dnl (If it doesn't, then either the tun_id won't show up at all, or it will
1918 dnl additionally show up as the top 32 bits of the cookie.) This checks
1919 dnl for regression against bug #4566.
1920 AT_SETUP([ovs-ofctl -F option with flow_mods])
1922 AT_CHECK([ovs-ofctl -F nxm add-flow br0 tun_id=0x12345678,actions=drop])
1923 AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip], [0], [dnl
1925 tun_id=0x12345678 actions=drop
1930 dnl Check that "-F openflow10" is really honored on dump-flows.
1931 dnl (If it isn't, then dump-flows will show the register match.)
1932 AT_SETUP([ovs-ofctl dump-flows honors -F option])
1934 AT_CHECK([ovs-ofctl add-flow br0 reg0=0x12345,actions=drop])
1935 AT_CHECK([ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip], [0], [dnl
1942 dnl Check that "-F openflow10" fails on dump-flows if the requested match
1943 dnl can't be represented in OpenFlow 1.0.
1944 AT_SETUP([ovs-ofctl dump-flows rejects bad -F option])
1946 AT_CHECK([ovs-ofctl -F openflow10 dump-flows unix:br0.mgmt reg0=0xabcdef], [1], [],
1947 [ovs-ofctl: none of the usable flow formats (NXM,OXM) is among the allowed flow formats (OpenFlow10)
1952 dnl Check that add-flow reports non-normalized flows (feature #5029).
1953 AT_SETUP([ovs-ofctl add-flow reports non-normalized flows])
1955 AT_CHECK([ovs-ofctl TESTABLE_LOG add-flow br0 nw_src=1.2.3.4,actions=5],
1957 ofp_util|INFO|normalization changed ofp_match, details:
1958 ofp_util|INFO| pre: nw_src=1.2.3.4
1959 ofp_util|INFO|post: @&t@
1964 dnl Check that --sort and --rsort works with dump-flows
1965 dnl Default field is 'priority'. Flow entries are displayed based
1966 dnl on field to sort.
1967 AT_SETUP([ovs-ofctl dump-flows with sorting])
1970 AT_DATA([allflows.txt], [[
1971 priority=4,in_port=23213 actions=output:42
1972 priority=5,in_port=1029 actions=output:43
1973 priority=7,in_port=1029 actions=output:43
1974 priority=3,in_port=1028 actions=output:44
1975 priority=1,in_port=1026 actions=output:45
1976 priority=6,in_port=1027 actions=output:64
1977 priority=2,in_port=1025 actions=output:47
1978 priority=8,tcp,tp_src=5 actions=drop
1979 priority=9,tcp,tp_src=6 actions=drop
1982 AT_CHECK([ovs-ofctl add-flows br0 allflows.txt
1984 AT_CHECK([ovs-ofctl --sort dump-flows br0 | ofctl_strip], [0], [dnl
1985 priority=1,in_port=1026 actions=output:45
1986 priority=2,in_port=1025 actions=output:47
1987 priority=3,in_port=1028 actions=output:44
1988 priority=4,in_port=23213 actions=output:42
1989 priority=5,in_port=1029 actions=output:43
1990 priority=6,in_port=1027 actions=output:64
1991 priority=7,in_port=1029 actions=output:43
1992 priority=8,tcp,tp_src=5 actions=drop
1993 priority=9,tcp,tp_src=6 actions=drop
1995 AT_CHECK([ovs-ofctl --rsort dump-flows br0 | ofctl_strip], [0], [dnl
1996 priority=9,tcp,tp_src=6 actions=drop
1997 priority=8,tcp,tp_src=5 actions=drop
1998 priority=7,in_port=1029 actions=output:43
1999 priority=6,in_port=1027 actions=output:64
2000 priority=5,in_port=1029 actions=output:43
2001 priority=4,in_port=23213 actions=output:42
2002 priority=3,in_port=1028 actions=output:44
2003 priority=2,in_port=1025 actions=output:47
2004 priority=1,in_port=1026 actions=output:45
2006 AT_CHECK([ovs-ofctl --sort=in_port dump-flows br0 | ofctl_strip], [0], [dnl
2007 priority=2,in_port=1025 actions=output:47
2008 priority=1,in_port=1026 actions=output:45
2009 priority=6,in_port=1027 actions=output:64
2010 priority=3,in_port=1028 actions=output:44
2011 priority=7,in_port=1029 actions=output:43
2012 priority=5,in_port=1029 actions=output:43
2013 priority=4,in_port=23213 actions=output:42
2014 priority=9,tcp,tp_src=6 actions=drop
2015 priority=8,tcp,tp_src=5 actions=drop
2017 AT_CHECK([ovs-ofctl --rsort=in_port dump-flows br0 | ofctl_strip], [0], [dnl
2018 priority=4,in_port=23213 actions=output:42
2019 priority=7,in_port=1029 actions=output:43
2020 priority=5,in_port=1029 actions=output:43
2021 priority=3,in_port=1028 actions=output:44
2022 priority=6,in_port=1027 actions=output:64
2023 priority=1,in_port=1026 actions=output:45
2024 priority=2,in_port=1025 actions=output:47
2025 priority=9,tcp,tp_src=6 actions=drop
2026 priority=8,tcp,tp_src=5 actions=drop
2028 AT_CHECK([ovs-ofctl --sort=tcp_src dump-flows br0 | ofctl_strip], [0], [dnl
2029 priority=8,tcp,tp_src=5 actions=drop
2030 priority=9,tcp,tp_src=6 actions=drop
2031 priority=7,in_port=1029 actions=output:43
2032 priority=6,in_port=1027 actions=output:64
2033 priority=5,in_port=1029 actions=output:43
2034 priority=4,in_port=23213 actions=output:42
2035 priority=3,in_port=1028 actions=output:44
2036 priority=2,in_port=1025 actions=output:47
2037 priority=1,in_port=1026 actions=output:45
2040 [ovs-ofctl --sort=in_port --sort=tcp_src dump-flows br0 | ofctl_strip], [0],
2041 [ priority=2,in_port=1025 actions=output:47
2042 priority=1,in_port=1026 actions=output:45
2043 priority=6,in_port=1027 actions=output:64
2044 priority=3,in_port=1028 actions=output:44
2045 priority=7,in_port=1029 actions=output:43
2046 priority=5,in_port=1029 actions=output:43
2047 priority=4,in_port=23213 actions=output:42
2048 priority=8,tcp,tp_src=5 actions=drop
2049 priority=9,tcp,tp_src=6 actions=drop
2054 AT_SETUP([ovs-ofctl diff-flows])
2057 # Add tons of flows to br0.
2058 for i in `seq 0 1023`; do echo "dl_vlan=$i,actions=drop"; done > add-flows.txt
2059 AT_CHECK([ovs-ofctl add-flows br0 add-flows.txt])
2061 # Dump them and compare against what we expect by hand, then with diff-flows.
2062 for i in `seq 0 1023`; do echo " dl_vlan=$i actions=drop"; done | sort > expout
2063 AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip | sed '/NXST_FLOW/d' | sort],
2065 AT_CHECK([ovs-ofctl diff-flows br0 add-flows.txt])
2067 # Remove even-numbered flows, compare again.
2068 for i in `seq 0 1023 2`; do echo "dl_vlan=$i"; done > del-flows.txt
2069 AT_CHECK([ovs-ofctl del-flows br0 - < del-flows.txt])
2070 for i in `seq 0 1023 2`; do echo "+dl_vlan=$i actions=drop"; done | sort > expout
2071 AT_CHECK([ovs-ofctl diff-flows br0 add-flows.txt | sort], [0], [expout])
2072 for i in `seq 0 1023 2`; do echo "-dl_vlan=$i actions=drop"; done | sort > expout
2073 AT_CHECK([ovs-ofctl diff-flows add-flows.txt br0 | sort], [0], [expout])
2078 dnl ofpacts that differ bytewise don't necessarily differ when
2079 dnl converted to another representation, such as OpenFlow 1.0
2080 dnl or to a string. "resubmit(,1)" is an example of an action
2081 dnl of this type: "ofpact_resubmit"s can differ in their "compat"
2082 dnl values even though this doesn't affect the string format.
2084 dnl This test checks that "ovs-ofctl diff-flows" doesn't report
2085 dnl false ofpacts differences.
2086 AT_SETUP([ovs-ofctl diff-flows - suppress false differences])
2088 AT_DATA([flows.txt], [actions=resubmit(,1)
2090 AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
2091 AT_CHECK([ovs-ofctl diff-flows br0 flows.txt])
2092 AT_CHECK([ovs-ofctl add-flow br0 idle_timeout=60,dl_vlan=9,actions=output:1])
2093 AT_CHECK([ovs-ofctl diff-flows br0 flows.txt], [2], [dnl
2094 -dl_vlan=9 idle_timeout=60 actions=output:1
2096 AT_CHECK([ovs-ofctl add-flow br0 hard_timeout=120,cookie=1234,dl_vlan=9,actions=output:1])
2097 AT_CHECK([ovs-ofctl diff-flows flows.txt br0], [2], [dnl
2098 +dl_vlan=9 cookie=0x4d2 hard_timeout=120 actions=output:1
2103 AT_SETUP([ovs-ofctl -F and -O interaction])
2104 AT_CHECK([ovs-ofctl -F oxm -O openflow10], [1], [],
2105 [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.)
2107 AT_CHECK([ovs-ofctl -F oxm -O openflow11], [1], [],
2108 [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.)
2110 AT_CHECK([ovs-ofctl -F oxm -O openflow10,openflow11], [1], [],
2111 [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.)
2113 AT_CHECK([ovs-ofctl -F oxm -O openflow10,openflow12], [1], [],
2114 [ovs-ofctl: missing command name; use --help for help
2116 AT_CHECK([ovs-ofctl -F oxm -O openflow12], [1], [],
2117 [ovs-ofctl: missing command name; use --help for help
2119 AT_CHECK([ovs-ofctl -F oxm -O openflow13], [1], [],
2120 [ovs-ofctl: missing command name; use --help for help