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
15 AT_CHECK([ovs-ofctl parse-flows flows.txt
17 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
18 [[usable protocols: any
19 chosen protocol: OpenFlow10-table_id
20 OFPT_FLOW_MOD: ADD tcp,tp_src=123 actions=FLOOD
21 OFPT_FLOW_MOD: ADD in_port=65534,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
22 OFPT_FLOW_MOD: ADD udp,dl_vlan_pcp=7 idle:5 actions=strip_vlan,output:0
23 OFPT_FLOW_MOD: ADD tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
24 OFPT_FLOW_MOD: ADD udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
25 OFPT_FLOW_MOD: ADD priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
26 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
30 AT_SETUP([ovs-ofctl parse-flows (NXM)])
31 AT_DATA([flows.txt], [[
33 tcp,tp_src=123,actions=flood
34 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
35 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
36 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
37 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
38 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
39 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
40 tcp,tp_src=0x1230/0xfff0,tun_id=0x1234,cookie=0x5678,actions=flood
41 actions=set_tunnel:0x1234,set_tunnel64:0x9876,set_tunnel:0x123456789
42 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])
44 tun_id=0x1234000056780000/0xffff0000ffff0000,actions=drop
45 actions=bundle(eth_src,50,active_backup,ofport,slaves:1)
46 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:2,3)
47 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:)
48 actions=output:1,bundle(eth_src,0,hrw,ofport,slaves:1),output:2
49 actions=bundle_load(eth_src,50,active_backup,ofport,NXM_NX_REG0[],slaves:1)
50 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:2,3)
51 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:[2,3])
52 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..30],slaves:)
53 actions=output:1,bundle_load(eth_src,0,hrw,ofport,NXM_NX_REG0[16..31],slaves:1),output:2
54 actions=resubmit:1,resubmit(2),resubmit(,3),resubmit(2,3)
55 send_flow_rem,actions=output:1,output:NXM_NX_REG0[],output:2,output:NXM_NX_REG1[16..31],output:3
56 check_overlap,actions=output:1,exit,output:2
57 actions=fin_timeout(idle_timeout=5,hard_timeout=15)
58 actions=controller(max_len=123,reason=invalid_ttl,id=555)
61 AT_CHECK([ovs-ofctl parse-flows flows.txt
63 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
64 [[usable protocols: NXM+table_id
65 chosen protocol: NXM+table_id
66 NXT_FLOW_MOD: ADD table:255 tcp,tp_src=123 actions=FLOOD
67 NXT_FLOW_MOD: ADD table:255 in_port=65534,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
68 NXT_FLOW_MOD: ADD table:255 udp,dl_vlan_pcp=7 idle:5 actions=strip_vlan,output:0
69 NXT_FLOW_MOD: ADD table:255 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
70 NXT_FLOW_MOD: ADD table:255 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
71 NXT_FLOW_MOD: ADD table:255 priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
72 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
73 NXT_FLOW_MOD: ADD table:255 tcp,tun_id=0x1234,tp_src=0x1230/0xfff0 cookie:0x5678 actions=FLOOD
74 NXT_FLOW_MOD: ADD table:255 actions=set_tunnel:0x1234,set_tunnel64:0x9876,set_tunnel64:0x123456789
75 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])
76 NXT_FLOW_MOD: ADD table:1 actions=drop
77 NXT_FLOW_MOD: ADD table:255 tun_id=0x1234000056780000/0xffff0000ffff0000 actions=drop
78 NXT_FLOW_MOD: ADD table:255 actions=bundle(eth_src,50,active_backup,ofport,slaves:1)
79 NXT_FLOW_MOD: ADD table:255 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:2,3)
80 NXT_FLOW_MOD: ADD table:255 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:)
81 NXT_FLOW_MOD: ADD table:255 actions=output:1,bundle(eth_src,0,hrw,ofport,slaves:1),output:2
82 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(eth_src,50,active_backup,ofport,NXM_NX_REG0[],slaves:1)
83 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:2,3)
84 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:2,3)
85 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..30],slaves:)
86 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
87 NXT_FLOW_MOD: ADD table:255 actions=resubmit:1,resubmit:2,resubmit(,3),resubmit(2,3)
88 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
89 NXT_FLOW_MOD: ADD table:255 check_overlap actions=output:1,exit,output:2
90 NXT_FLOW_MOD: ADD table:255 actions=fin_timeout(idle_timeout=5,hard_timeout=15)
91 NXT_FLOW_MOD: ADD table:255 actions=controller(reason=invalid_ttl,max_len=123,id=555)
95 AT_SETUP([ovs-ofctl -F nxm parse-flows])
96 AT_DATA([flows.txt], [
98 tcp,tp_src=123,actions=flood
99 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
100 arp,dl_src=00:0A:E4:25:6B:B0,arp_sha=00:0A:E4:25:6B:B0 actions=drop
101 ipv6,ipv6_label=0x12345 actions=2
102 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=3
103 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5/64 actions=4
104 ipv6,ipv6_dst=2001:db8:3c4d:1:2:3:4:5/127 actions=5
105 tcp6,ipv6_src=2001:db8:3c4d:1::1,tp_dst=80 actions=drop
106 udp6,ipv6_src=2001:db8:3c4d:1::3,tp_dst=53 actions=drop
107 in_port=3 icmp6,ipv6_src=2001:db8:3c4d:1::1,icmp_type=134 actions=drop
108 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
109 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
110 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
111 icmp6,icmp_type=135,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571 actions=drop
112 icmp6,icmp_type=135,nd_target=FEC0::1234:F045:8FFF:1111:FE4F:0571/112 actions=drop
113 icmp6,icmp_type=135,nd_sll=00:0A:E4:25:6B:B0 actions=drop
114 icmp6,icmp_type=136,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571,nd_tll=00:0A:E4:25:6B:B1 actions=drop
115 icmp6,icmp_type=136,nd_target=FEC0::1234:F045:8FFF:1111:FE00:0000/96,nd_tll=00:0A:E4:25:6B:B1 actions=drop
116 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
117 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
118 tun_id=0x1234,cookie=0x5678,actions=flood
120 tun_id=0x1234000056780000/0xffff0000ffff0000,actions=drop
121 dl_dst=01:00:00:00:00:00/01:00:00:00:00:00,actions=drop
122 dl_dst=00:00:00:00:00:00/01:00:00:00:00:00,actions=drop
123 dl_dst=aa:bb:cc:dd:ee:ff/fe:ff:ff:ff:ff:ff,actions=drop
124 dl_dst=aa:bb:cc:dd:ee:ff/00:00:00:00:00:00,actions=drop
126 AT_CHECK([ovs-ofctl -F nxm parse-flows flows.txt], [0], [stdout])
127 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0], [dnl
128 usable protocols: NXM
129 chosen protocol: NXM-table_id
130 NXT_FLOW_MOD: ADD tcp,tp_src=123 actions=FLOOD
131 NXT_FLOW_MOD: ADD in_port=65534,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
132 NXT_FLOW_MOD: ADD arp,dl_src=00:0a:e4:25:6b:b0,arp_sha=00:0a:e4:25:6b:b0 actions=drop
133 NXT_FLOW_MOD: ADD ipv6,ipv6_label=0x12345 actions=output:2
134 NXT_FLOW_MOD: ADD ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=output:3
135 NXT_FLOW_MOD: ADD ipv6,ipv6_src=2001:db8:3c4d:1::/64 actions=output:4
136 NXT_FLOW_MOD: ADD ipv6,ipv6_dst=2001:db8:3c4d:1:2:3:4:4/127 actions=output:5
137 NXT_FLOW_MOD: ADD tcp6,ipv6_src=2001:db8:3c4d:1::1,tp_dst=80 actions=drop
138 NXT_FLOW_MOD: ADD udp6,ipv6_src=2001:db8:3c4d:1::3,tp_dst=53 actions=drop
139 NXT_FLOW_MOD: ADD icmp6,in_port=3,ipv6_src=2001:db8:3c4d:1::1,icmp_type=134 actions=drop
140 NXT_FLOW_MOD: ADD udp,dl_vlan_pcp=7 idle:5 actions=strip_vlan,output:0
141 NXT_FLOW_MOD: ADD tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
142 NXT_FLOW_MOD: ADD udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
143 NXT_FLOW_MOD: ADD icmp6,icmp_type=135,nd_target=fec0:0:1234:f045:8fff:1111:fe4e:571 actions=drop
144 NXT_FLOW_MOD: ADD icmp6,icmp_type=135,nd_target=fec0:0:1234:f045:8fff:1111:fe4f:0/112 actions=drop
145 NXT_FLOW_MOD: ADD icmp6,icmp_type=135,nd_sll=00:0a:e4:25:6b:b0 actions=drop
146 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
147 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
148 NXT_FLOW_MOD: ADD priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
149 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
150 NXT_FLOW_MOD: ADD tun_id=0x1234 cookie:0x5678 actions=FLOOD
151 NXT_FLOW_MOD: ADD actions=drop
152 NXT_FLOW_MOD: ADD tun_id=0x1234000056780000/0xffff0000ffff0000 actions=drop
153 NXT_FLOW_MOD: ADD dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=drop
154 NXT_FLOW_MOD: ADD dl_dst=00:00:00:00:00:00/01:00:00:00:00:00 actions=drop
155 NXT_FLOW_MOD: ADD dl_dst=aa:bb:cc:dd:ee:ff/fe:ff:ff:ff:ff:ff actions=drop
156 NXT_FLOW_MOD: ADD actions=drop
160 AT_SETUP([ovs-ofctl -F nxm -mmm parse-flows])
161 AT_DATA([flows.txt], [[
163 tcp,tp_src=123,actions=flood
164 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
165 arp,dl_src=00:0A:E4:25:6B:B0,arp_sha=00:0A:E4:25:6B:B0 actions=drop
166 ipv6,ipv6_label=0x12345 actions=2
167 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=3
168 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5/64 actions=4
169 ipv6,ipv6_dst=2001:db8:3c4d:1:2:3:4:5/127 actions=5
170 tcp6,ipv6_src=2001:db8:3c4d:1::1,tp_dst=80 actions=drop
171 udp6,ipv6_src=2001:db8:3c4d:1::3,tp_dst=53 actions=drop
172 in_port=3 icmp6,ipv6_src=2001:db8:3c4d:1::1,icmp_type=134 actions=drop
173 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
174 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
175 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
176 icmp6,icmp_type=135,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571 actions=drop
177 icmp6,icmp_type=135,nd_sll=00:0A:E4:25:6B:B0 actions=drop
178 icmp6,icmp_type=136,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571,nd_tll=00:0A:E4:25:6B:B1 actions=drop
179 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
180 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
181 tun_id=0x1234,cookie=0x5678,actions=flood
183 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[]
184 actions=autopath(5,NXM_NX_REG0[])
185 vlan_tci=0x1123/0x1fff,actions=drop
187 AT_CHECK([ovs-ofctl -F nxm -mmm parse-flows flows.txt], [0], [stdout])
188 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
189 [[usable protocols: NXM
190 chosen protocol: NXM-table_id
191 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC(007b) actions=FLOOD
192 NXT_FLOW_MOD: ADD NXM_OF_IN_PORT(fffe), NXM_OF_ETH_SRC(000ae4256bb0), NXM_OF_VLAN_TCI_W(1009/1fff) actions=drop
193 NXT_FLOW_MOD: ADD NXM_OF_ETH_SRC(000ae4256bb0), NXM_OF_ETH_TYPE(0806), NXM_NX_ARP_SHA(000ae4256bb0) actions=drop
194 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_LABEL(00012345) actions=output:2
195 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005) actions=output:3
196 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000) actions=output:4
197 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST_W(20010db83c4d00010002000300040004/fffffffffffffffffffffffffffffffe) actions=output:5
198 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
199 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
200 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
201 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
202 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
203 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
204 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
205 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
206 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
207 NXT_FLOW_MOD: ADD <any> cookie:0x123456789abcdef hard:10 pri:60000 actions=CONTROLLER:65535
208 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
209 NXT_FLOW_MOD: ADD NXM_NX_TUN_ID(0000000000001234) cookie:0x5678 actions=FLOOD
210 NXT_FLOW_MOD: ADD <any> actions=drop
211 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[]
212 NXT_FLOW_MOD: ADD <any> actions=autopath(5,NXM_NX_REG0[])
213 NXT_FLOW_MOD: ADD NXM_OF_VLAN_TCI_W(1123/1fff) actions=drop
217 AT_SETUP([ovs-ofctl parse-nx-match])
218 AT_KEYWORDS([nx-match])
219 AT_DATA([nx-match.txt], [dnl
227 NXM_OF_ETH_DST(0002e30f80a4)
228 NXM_OF_ETH_DST_W(010000000000/010000000000)
229 NXM_OF_ETH_DST_W(000000000000/010000000000)
230 NXM_OF_ETH_DST_W(ffffffffffff/010000000000)
231 NXM_OF_ETH_DST_W(0002e30f80a4/ffffffffffff)
232 NXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
233 NXM_OF_ETH_DST_W(60175619848f/5a5a5a5a5a5a)
236 NXM_OF_ETH_SRC(020898456ddb)
237 NXM_OF_ETH_SRC_W(012345abcdef/ffffff555555)
238 NXM_OF_ETH_SRC_W(020898456ddb/ffffffffffff)
241 NXM_OF_ETH_TYPE(0800)
242 NXM_OF_ETH_TYPE(0800) NXM_OF_IN_PORT(0012)
245 NXM_OF_VLAN_TCI(f009)
246 NXM_OF_VLAN_TCI(f009) NXM_OF_VLAN_TCI(f009)
247 NXM_OF_VLAN_TCI(0000) # Packets without 802.1Q header.
248 NXM_OF_VLAN_TCI(3123) # Packets with VID=123, PCP=1.
249 NXM_OF_VLAN_TCI(0123) # Does not make sense (but supported anyway)
250 NXM_OF_VLAN_TCI_W(1123/1fff) # Packets with VID=123, any PCP.
251 NXM_OF_VLAN_TCI_W(f000/f000) # Packets with any VID, PCP=7.
252 NXM_OF_VLAN_TCI_W(0000/e000) # No 802.1Q or with VID=0
255 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_TOS(f0)
256 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_TOS(41)
260 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_ECN(03)
261 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_ECN(06)
265 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(01)
266 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(05)
270 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_TTL(80)
271 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_TTL(ff)
275 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC(ac100014)
276 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC_W(C0a80000/FFFF0000)
277 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC_W(C0a80000/5a5a5a5a)
278 NXM_OF_ETH_TYPE(0806) NXM_OF_IP_SRC(ac100014)
279 NXM_OF_IP_SRC_W(C0D80000/FFFF0000)
282 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST(ac100014)
283 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST_W(C0a88012/FFFF0000)
284 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST_W(C0a80000/5a5a5a5a)
285 NXM_OF_IP_DST(ac100014)
286 NXM_OF_ETH_TYPE(0806) NXM_OF_IP_DST_W(C0D80000/FFFF0000)
289 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_SRC(4231)
290 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_SRC_W(5050/F0F0)
291 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(07) NXM_OF_TCP_SRC(4231)
293 # TCP destination port
294 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_DST(4231)
295 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_DST_W(FDE0/FFF0)
296 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(07) NXM_OF_TCP_DST(4231)
299 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_SRC(8732)
300 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_SRC_W(0132/01FF)
301 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_UDP_SRC(7823)
303 # UDP destination port
304 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_DST(1782)
305 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_DST_W(5005/F00F)
306 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(02) NXM_OF_UDP_DST(1293)
309 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(01) NXM_OF_ICMP_TYPE(12)
310 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(00) NXM_OF_ICMP_TYPE(10)
313 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(01) NXM_OF_ICMP_CODE(12)
314 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(00) NXM_OF_ICMP_CODE(10)
315 NXM_OF_ETH_TYPE(0800) NXM_OF_ICMP_CODE(10)
319 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_OP(0001)
320 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_OP(1111)
321 NXM_OF_ETH_TYPE(0000) NXM_OF_ARP_OP(0001)
323 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_OP(0001) NXM_OF_ARP_OP(0001)
325 # ARP source protocol address
326 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA(ac100014)
327 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA_W(C0a81234/FFFFFF00)
328 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA_W(C0a81234/aaaaaa00)
329 NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_SPA(ac100014)
330 NXM_OF_ARP_SPA_W(C0D8fedc/FFFF0000)
332 # ARP destination protocol address
333 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA(ac100014)
334 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA_W(C0a812fe/FFFFFF00)
335 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA_W(C0a81234/77777777)
336 NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_TPA(ac100014)
337 NXM_OF_ARP_TPA_W(C0D80000/FFFF0000)
339 # ARP source hardware address
340 NXM_OF_ETH_TYPE(0806) NXM_NX_ARP_SHA(0002e30f80a4)
341 NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_SHA(0002e30f80a4)
342 NXM_NX_ARP_SHA(0002e30f80a4)
344 # ARP destination hardware address
345 NXM_OF_ETH_TYPE(0806) NXM_NX_ARP_THA(0002e30f80a4)
346 NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_THA(0002e30f80a4)
347 NXM_NX_ARP_THA(0002e30f80a4)
350 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005)
351 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005)
352 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
353 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/5a5a5a5a5a5a5a5a0000000000000000)
354 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
357 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST(20010db83c4d00010002000300040005)
358 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_DST(20010db83c4d00010002000300040005)
359 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/77777777777777777777777777777777)
360 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
363 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
364 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(88) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
365 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET_W(20010db83c4d00010002000300040005/0123456789abcdeffedcba9876543210)
366 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(88) NXM_NX_ND_TARGET_W(20010db83c4d00010002000300040005/fedcba98765432100123456789abcdef)
368 # ND source hardware address
369 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)
370 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)
371 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)
372 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)
374 # ND destination hardware address
375 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)
376 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)
377 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)
378 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)
381 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(00)
382 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(01)
383 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(02)
384 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(03)
385 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(00/03)
386 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(00/fd)
387 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(00/02)
388 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(01/01)
389 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(02/02)
390 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(03/03)
391 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(f3)
394 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(00)
395 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(01)
396 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(02)
397 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(03)
398 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(00/03)
399 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(00/01)
400 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(00/02)
401 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(01/01)
402 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(02/02)
403 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(03/03)
404 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(f3)
407 NXM_NX_COOKIE(00000000abcdef01)
408 NXM_NX_COOKIE_W(84200000abcdef01/84200000FFFFFFFF)
411 NXM_NX_TUN_ID(00000000abcdef01)
412 NXM_NX_TUN_ID_W(84200000abcdef01/84200000FFFFFFFF)
415 NXM_NX_REG0(acebdf56)
416 NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
418 # Invalid field number.
421 # Unimplemented registers.
423 # This test assumes that at least two registers, but fewer than 16,
424 # registers are implemented.
426 00010108(12345678/12345678)
428 00011f08(12345678/12345678)
430 AT_CHECK([ovs-ofctl --strict parse-nx-match < nx-match.txt], [0], [dnl
438 NXM_OF_ETH_DST(0002e30f80a4)
439 NXM_OF_ETH_DST_W(010000000000/010000000000)
440 NXM_OF_ETH_DST_W(000000000000/010000000000)
441 NXM_OF_ETH_DST_W(010000000000/010000000000)
442 NXM_OF_ETH_DST(0002e30f80a4)
443 NXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
444 NXM_OF_ETH_DST_W(40125218000a/5a5a5a5a5a5a)
447 NXM_OF_ETH_SRC(020898456ddb)
448 NXM_OF_ETH_SRC_W(012345014545/ffffff555555)
449 NXM_OF_ETH_SRC(020898456ddb)
452 NXM_OF_ETH_TYPE(0800)
453 NXM_OF_IN_PORT(0012), NXM_OF_ETH_TYPE(0800)
456 NXM_OF_VLAN_TCI(f009)
457 nx_pull_match() returned error OFPBMC_DUP_FIELD
458 NXM_OF_VLAN_TCI(0000)
459 NXM_OF_VLAN_TCI(3123)
460 NXM_OF_VLAN_TCI(0123)
461 NXM_OF_VLAN_TCI_W(1123/1fff)
462 NXM_OF_VLAN_TCI_W(f000/f000)
463 NXM_OF_VLAN_TCI_W(0000/e000)
466 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_TOS(f0)
467 nx_pull_match() returned error OFPBMC_BAD_VALUE
468 nx_pull_match() returned error OFPBMC_BAD_PREREQ
471 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_ECN(03)
472 nx_pull_match() returned error OFPBMC_BAD_VALUE
473 nx_pull_match() returned error OFPBMC_BAD_PREREQ
476 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(01)
477 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(05)
478 nx_pull_match() returned error OFPBMC_BAD_PREREQ
481 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_TTL(80)
482 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_TTL(ff)
483 nx_pull_match() returned error OFPBMC_BAD_PREREQ
486 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC(ac100014)
487 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC_W(c0a80000/ffff0000)
488 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC_W(40080000/5a5a5a5a)
489 nx_pull_match() returned error OFPBMC_BAD_PREREQ
490 nx_pull_match() returned error OFPBMC_BAD_PREREQ
493 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_DST(ac100014)
494 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_DST_W(c0a80000/ffff0000)
495 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_DST_W(40080000/5a5a5a5a)
496 nx_pull_match() returned error OFPBMC_BAD_PREREQ
497 nx_pull_match() returned error OFPBMC_BAD_PREREQ
500 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC(4231)
501 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC_W(5050/f0f0)
502 nx_pull_match() returned error OFPBMC_BAD_PREREQ
504 # TCP destination port
505 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST(4231)
506 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST_W(fde0/fff0)
507 nx_pull_match() returned error OFPBMC_BAD_PREREQ
510 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_SRC(8732)
511 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_SRC_W(0132/01ff)
512 nx_pull_match() returned error OFPBMC_BAD_PREREQ
514 # UDP destination port
515 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST(1782)
516 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST_W(5005/f00f)
517 nx_pull_match() returned error OFPBMC_BAD_PREREQ
520 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(01), NXM_OF_ICMP_TYPE(12)
521 nx_pull_match() returned error OFPBMC_BAD_PREREQ
524 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(01), NXM_OF_ICMP_CODE(12)
525 nx_pull_match() returned error OFPBMC_BAD_PREREQ
526 nx_pull_match() returned error OFPBMC_BAD_PREREQ
527 nx_pull_match() returned error OFPBMC_BAD_PREREQ
530 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_OP(0001)
531 nx_pull_match() returned error OFPBMC_BAD_VALUE
532 nx_pull_match() returned error OFPBMC_BAD_PREREQ
533 nx_pull_match() returned error OFPBMC_BAD_PREREQ
534 nx_pull_match() returned error OFPBMC_DUP_FIELD
536 # ARP source protocol address
537 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_SPA(ac100014)
538 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_SPA_W(c0a81200/ffffff00)
539 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_SPA_W(80a80200/aaaaaa00)
540 nx_pull_match() returned error OFPBMC_BAD_PREREQ
541 nx_pull_match() returned error OFPBMC_BAD_PREREQ
543 # ARP destination protocol address
544 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_TPA(ac100014)
545 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_TPA_W(c0a81200/ffffff00)
546 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_TPA_W(40201234/77777777)
547 nx_pull_match() returned error OFPBMC_BAD_PREREQ
548 nx_pull_match() returned error OFPBMC_BAD_PREREQ
550 # ARP source hardware address
551 NXM_OF_ETH_TYPE(0806), NXM_NX_ARP_SHA(0002e30f80a4)
552 nx_pull_match() returned error OFPBMC_BAD_PREREQ
553 nx_pull_match() returned error OFPBMC_BAD_PREREQ
555 # ARP destination hardware address
556 NXM_OF_ETH_TYPE(0806), NXM_NX_ARP_THA(0002e30f80a4)
557 nx_pull_match() returned error OFPBMC_BAD_PREREQ
558 nx_pull_match() returned error OFPBMC_BAD_PREREQ
561 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005)
562 nx_pull_match() returned error OFPBMC_BAD_PREREQ
563 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
564 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC_W(00000818184800000000000000000000/5a5a5a5a5a5a5a5a0000000000000000)
565 nx_pull_match() returned error OFPBMC_BAD_PREREQ
568 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST(20010db83c4d00010002000300040005)
569 nx_pull_match() returned error OFPBMC_BAD_PREREQ
570 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST_W(20010530344500010000000000000000/77777777777777777777777777777777)
571 nx_pull_match() returned error OFPBMC_BAD_PREREQ
574 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87), NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
575 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(88), NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
576 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87), NXM_NX_ND_TARGET_W(00010520080900010000000000040000/0123456789abcdeffedcba9876543210)
577 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(88), NXM_NX_ND_TARGET_W(20000898344400000002000300000005/fedcba98765432100123456789abcdef)
579 # ND source hardware address
580 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)
581 nx_pull_match() returned error OFPBMC_BAD_PREREQ
582 nx_pull_match() returned error OFPBMC_BAD_PREREQ
583 nx_pull_match() returned error OFPBMC_BAD_PREREQ
585 # ND destination hardware address
586 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)
587 nx_pull_match() returned error OFPBMC_BAD_PREREQ
588 nx_pull_match() returned error OFPBMC_BAD_PREREQ
589 nx_pull_match() returned error OFPBMC_BAD_PREREQ
592 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(00)
593 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(01)
594 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(02)
595 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(03)
596 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(00)
597 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(00/01)
598 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(00/02)
599 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(01/01)
600 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(02/02)
601 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(03)
602 nx_pull_match() returned error OFPBMC_BAD_VALUE
605 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(00)
606 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(01)
607 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(02)
608 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(03)
609 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(00)
610 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(00/01)
611 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(00/02)
612 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(01/01)
613 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(02/02)
614 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(03)
615 nx_pull_match() returned error OFPBMC_BAD_VALUE
618 NXM_NX_COOKIE(00000000abcdef01)
619 NXM_NX_COOKIE_W(84200000abcdef01/84200000ffffffff)
622 NXM_NX_TUN_ID(00000000abcdef01)
623 NXM_NX_TUN_ID_W(84200000abcdef01/84200000ffffffff)
626 NXM_NX_REG0(acebdf56)
627 NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
629 # Invalid field number.
630 nx_pull_match() returned error OFPBMC_BAD_FIELD
632 # Unimplemented registers.
634 # This test assumes that at least two registers, but fewer than 16,
635 # registers are implemented.
636 NXM_NX_REG0(12345678)
637 NXM_NX_REG0_W(12345678/12345678)
638 nx_pull_match() returned error OFPBMC_BAD_FIELD
639 nx_pull_match() returned error OFPBMC_BAD_FIELD
643 AT_SETUP([ovs-ofctl parse-ofp11-match])
645 AT_DATA([test-data], [dnl
647 0000 0058 fffffffe 000003fe dnl
648 000000000000ffffffffffff 000000000000ffffffffffff dnl
649 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
650 00000000 00 000000 0000000000000000ffffffffffffffff
652 # bad ofp11_match: OFPBMC_BAD_VALUE
653 & ofp_util|WARN|port 305419896 is outside the supported range 0 through 65279 or 0xffffff00 through 0xffffffff
654 0000 0058 12345678 000003fe dnl
655 000000000000ffffffffffff 000000000000ffffffffffff dnl
656 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
657 00000000 00 000000 0000000000000000ffffffffffffffff
659 # dl_src=00:01:02:03:04:05
660 0000 0058 00000000 000003ff dnl
661 000102030405000000000000 000000000000ffffffffffff dnl
662 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
663 00000000 00 000000 0000000000000000ffffffffffffffff
665 # dl_src=55:55:55:55:55:55/55:55:55:55:55:55
666 0000 0058 00000000 000003ff dnl
667 555555555555aaaaaaaaaaaa 000000000000ffffffffffff dnl
668 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
669 00000000 00 000000 0000000000000000ffffffffffffffff
671 # dl_dst=00:01:02:03:04:05
672 0000 0058 00000000 000003ff dnl
673 000000000000ffffffffffff 000102030405000000000000 dnl
674 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
675 00000000 00 000000 0000000000000000ffffffffffffffff
677 # dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
678 0000 0058 00000000 000003ff dnl
679 000000000000ffffffffffff 010000000000feffffffffff dnl
680 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
681 00000000 00 000000 0000000000000000ffffffffffffffff
683 # dl_dst=00:01:02:03:04:05/fe:ff:ff:ff:ff:ff
684 0000 0058 00000000 000003ff dnl
685 000000000000ffffffffffff 000102030405010000000000 dnl
686 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
687 00000000 00 000000 0000000000000000ffffffffffffffff
689 # dl_dst=55:55:55:55:55:55/55:55:55:55:55:55
690 0000 0058 00000000 000003ff dnl
691 000000000000ffffffffffff 555555555555aaaaaaaaaaaa dnl
692 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
693 00000000 00 000000 0000000000000000ffffffffffffffff
695 dnl dl_vlan_pcp is ignored if dl_vlan is wildcarded, which causes the
696 dnl the wildcard bit and the dl_vlan_pcp to be dropped for output:
700 0000 0058 00000001 000003fa dnl
701 000000000000ffffffffffff 000000000000ffffffffffff dnl
702 0000 03 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
703 00000000 00 000000 0000000000000000ffffffffffffffff
706 0000 0058 00000000 000003fd dnl
707 000000000000ffffffffffff 000000000000ffffffffffff dnl
708 0123 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
709 00000000 00 000000 0000000000000000ffffffffffffffff
713 0000 0058 00000000 000003fd dnl
714 000000000000ffffffffffff 000000000000ffffffffffff dnl
715 ffff 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
716 00000000 00 000000 0000000000000000ffffffffffffffff
718 dnl OFPVID_NONE ignores dl_vlan_pcp even if not wildcarded, which causes
719 dnl the wildcard bit and the dl_vlan_pcp to be dropped for output:
723 0000 0058 00000000 000003f9 dnl
724 000000000000ffffffffffff 000000000000ffffffffffff dnl
725 ffff 05 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
726 00000000 00 000000 0000000000000000ffffffffffffffff
728 # vlan_tci=0x1000/0x1000
729 0000 0058 00000000 000003fd dnl
730 000000000000ffffffffffff 000000000000ffffffffffff dnl
731 fffe 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
732 00000000 00 000000 0000000000000000ffffffffffffffff
735 # bad ofp11_match: OFPBMC_BAD_VALUE
736 0000 0058 00000000 000003fd dnl
737 000000000000ffffffffffff 000000000000ffffffffffff dnl
738 1234 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
739 00000000 00 000000 0000000000000000ffffffffffffffff
742 0000 0058 00000000 000003f9 dnl
743 000000000000ffffffffffff 000000000000ffffffffffff dnl
744 fffe 04 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
745 00000000 00 000000 0000000000000000ffffffffffffffff
747 # dl_vlan=10,dl_vlan_pcp=6
748 0000 0058 00000000 000003f9 dnl
749 000000000000ffffffffffff 000000000000ffffffffffff dnl
750 000a 06 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
751 00000000 00 000000 0000000000000000ffffffffffffffff
754 0000 0058 00000000 000003f7 dnl
755 000000000000ffffffffffff 000000000000ffffffffffff dnl
756 0000 00 00 1234 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
757 00000000 00 000000 0000000000000000ffffffffffffffff
760 0000 0058 00000000 000003e7 dnl
761 000000000000ffffffffffff 000000000000ffffffffffff dnl
762 0000 00 00 0800 fc 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
763 00000000 00 000000 0000000000000000ffffffffffffffff
766 # bad ofp11_match: OFPBMC_BAD_VALUE
767 0000 0058 00000000 000003e7 dnl
768 000000000000ffffffffffff 000000000000ffffffffffff dnl
769 0000 00 00 0800 01 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
770 00000000 00 000000 0000000000000000ffffffffffffffff
773 0000 0058 00000000 000003d7 dnl
774 000000000000ffffffffffff 000000000000ffffffffffff dnl
775 0000 00 00 0800 00 05 00000000ffffffff 00000000ffffffff 0000 0000 dnl
776 00000000 00 000000 0000000000000000ffffffffffffffff
779 0000 0058 00000000 000003d7 dnl
780 000000000000ffffffffffff 000000000000ffffffffffff dnl
781 0000 00 00 0806 00 02 00000000ffffffff 00000000ffffffff 0000 0000 dnl
782 00000000 00 000000 0000000000000000ffffffffffffffff
784 # ip,nw_src=192.168.128.0/24
785 0000 0058 00000000 000003f7 dnl
786 000000000000ffffffffffff 000000000000ffffffffffff dnl
787 0000 00 00 0800 00 00 c0a88000000000ff 00000000ffffffff 0000 0000 dnl
788 00000000 00 000000 0000000000000000ffffffffffffffff
790 # ip,nw_src=128.160.128.0/165.165.165.165
793 0000 0058 00000000 000003f7 dnl
794 000000000000ffffffffffff 000000000000ffffffffffff dnl
795 0000 00 00 0800 00 00 c0a880005a5a5a5a 00000000ffffffff 0000 0000 dnl
796 00000000 00 000000 0000000000000000ffffffffffffffff
798 # ip,nw_dst=192.168.128.0/24
799 0000 0058 00000000 000003f7 dnl
800 000000000000ffffffffffff 000000000000ffffffffffff dnl
801 0000 00 00 0800 00 00 00000000ffffffff c0a88000000000ff 0000 0000 dnl
802 00000000 00 000000 0000000000000000ffffffffffffffff
804 # ip,nw_dst=128.160.128.0/165.165.165.165
807 0000 0058 00000000 000003f7 dnl
808 000000000000ffffffffffff 000000000000ffffffffffff dnl
809 0000 00 00 0800 00 00 00000000ffffffff c0a880005a5a5a5a 0000 0000 dnl
810 00000000 00 000000 0000000000000000ffffffffffffffff
812 # arp,nw_src=192.168.128.0/24
813 0000 0058 00000000 000003f7 dnl
814 000000000000ffffffffffff 000000000000ffffffffffff dnl
815 0000 00 00 0806 00 00 c0a88000000000ff 00000000ffffffff 0000 0000 dnl
816 00000000 00 000000 0000000000000000ffffffffffffffff
818 # arp,nw_dst=192.168.128.0/24
819 0000 0058 00000000 000003f7 dnl
820 000000000000ffffffffffff 000000000000ffffffffffff dnl
821 0000 00 00 0806 00 00 00000000ffffffff c0a88000000000ff 0000 0000 dnl
822 00000000 00 000000 0000000000000000ffffffffffffffff
825 0000 0058 00000000 00000397 dnl
826 000000000000ffffffffffff 000000000000ffffffffffff dnl
827 0000 00 00 0800 00 06 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
828 00000000 00 000000 0000000000000000ffffffffffffffff
831 0000 0058 00000000 00000357 dnl
832 000000000000ffffffffffff 000000000000ffffffffffff dnl
833 0000 00 00 0800 00 06 00000000ffffffff 00000000ffffffff 0000 01bb dnl
834 00000000 00 000000 0000000000000000ffffffffffffffff
837 0000 0058 00000000 00000397 dnl
838 000000000000ffffffffffff 000000000000ffffffffffff dnl
839 0000 00 00 0800 00 11 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
840 00000000 00 000000 0000000000000000ffffffffffffffff
843 0000 0058 00000000 00000397 dnl
844 000000000000ffffffffffff 000000000000ffffffffffff dnl
845 0000 00 00 0800 00 01 00000000ffffffff 00000000ffffffff 0005 0000 dnl
846 00000000 00 000000 0000000000000000ffffffffffffffff
849 0000 0058 00000000 00000357 dnl
850 000000000000ffffffffffff 000000000000ffffffffffff dnl
851 0000 00 00 0800 00 01 00000000ffffffff 00000000ffffffff 0000 0008 dnl
852 00000000 00 000000 0000000000000000ffffffffffffffff
855 0000 0058 00000000 00000397 dnl
856 000000000000ffffffffffff 000000000000ffffffffffff dnl
857 0000 00 00 0800 00 11 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
858 00000000 00 000000 0000000000000000ffffffffffffffff
861 0000 0058 00000000 00000357 dnl
862 000000000000ffffffffffff 000000000000ffffffffffff dnl
863 0000 00 00 0800 00 11 00000000ffffffff 00000000ffffffff 0000 01bb dnl
864 00000000 00 000000 0000000000000000ffffffffffffffff
868 0000 0058 00000000 000003d7 dnl
869 000000000000ffffffffffff 000000000000ffffffffffff dnl
870 0000 00 00 0800 00 84 00000000ffffffff 00000000ffffffff 0000 0000 dnl
871 00000000 00 000000 0000000000000000ffffffffffffffff
873 dnl SCTP tp_src matching not supported:
874 # bad ofp11_match: OFPBMC_BAD_FIELD
875 0000 0058 00000000 00000397 dnl
876 000000000000ffffffffffff 000000000000ffffffffffff dnl
877 0000 00 00 0800 00 84 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
878 00000000 00 000000 0000000000000000ffffffffffffffff
880 dnl SCTP tp_dst matching not supported:
881 # bad ofp11_match: OFPBMC_BAD_FIELD
882 0000 0058 00000000 00000357 dnl
883 000000000000ffffffffffff 000000000000ffffffffffff dnl
884 0000 00 00 0800 00 84 00000000ffffffff 00000000ffffffff 0000 01bb dnl
885 00000000 00 000000 0000000000000000ffffffffffffffff
887 dnl Ignore tp_src if not TCP or UDP or SCTP:
892 0000 0058 00000000 00000397 dnl
893 000000000000ffffffffffff 000000000000ffffffffffff dnl
894 0000 00 00 0800 00 15 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
895 00000000 00 000000 0000000000000000ffffffffffffffff
897 dnl Ignore tp_dst if not TCP or UDP or SCTP:
902 0000 0058 00000000 00000357 dnl
903 000000000000ffffffffffff 000000000000ffffffffffff dnl
904 0000 00 00 0800 00 16 00000000ffffffff 00000000ffffffff 0000 01bb dnl
905 00000000 00 000000 0000000000000000ffffffffffffffff
907 dnl mpls_label not yet supported:
908 # bad ofp11_match: OFPBMC_BAD_TAG
909 0000 0058 00000000 000002f7 dnl
910 000000000000ffffffffffff 000000000000ffffffffffff dnl
911 0000 00 00 8847 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
912 12345678 00 000000 0000000000000000ffffffffffffffff
914 dnl mpls_tc not yet supported:
915 # bad ofp11_match: OFPBMC_BAD_TAG
916 0000 0058 00000000 000001f7 dnl
917 000000000000ffffffffffff 000000000000ffffffffffff dnl
918 0000 00 00 8848 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
919 00000000 5a 000000 0000000000000000ffffffffffffffff
921 dnl mpls_label and mpls_tc must be ignored if dl_type is not MPLS:
929 0000 0058 00000000 000000f7 dnl
930 000000000000ffffffffffff 000000000000ffffffffffff dnl
931 0000 00 00 1234 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
932 12345678 5a 000000 0000000000000000ffffffffffffffff
934 dnl metadata match not yet supported:
935 # bad ofp11_match: OFPBMC_BAD_FIELD
936 0000 0058 00000000 000003ff dnl
937 000000000000ffffffffffff 000000000000ffffffffffff dnl
938 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
939 00000000 00 000000 0000000000000001fffffffffffffffe
942 sed '/^[[#&]]/d' < test-data > input.txt
943 sed -n 's/^# //p; /^$/p' < test-data > expout
944 sed -n 's/^& //p' < test-data > experr
945 AT_CAPTURE_FILE([input.txt])
946 AT_CAPTURE_FILE([expout])
947 AT_CAPTURE_FILE([experr])
949 [ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-ofp11-match < input.txt],
950 [0], [expout], [experr])
953 AT_SETUP([ovs-ofctl parse-nx-match loose])
954 AT_KEYWORDS([nx-match])
955 AT_DATA([nx-match.txt], [dnl
956 NXM_OF_IN_PORT(0001), 01020304(1111/2222), NXM_OF_ETH_TYPE(0800)
959 AT_CHECK([ovs-ofctl --strict parse-nx-match < nx-match.txt], [0], [dnl
960 nx_pull_match() returned error OFPBMC_BAD_FIELD
963 AT_CHECK([ovs-ofctl parse-nx-match < nx-match.txt], [0], [dnl
964 NXM_OF_IN_PORT(0001), NXM_OF_ETH_TYPE(0800)
968 AT_SETUP([ovs-ofctl parse-oxm])
970 AT_DATA([oxm.txt], [dnl
974 OXM_OF_IN_PORT(00000000)
975 OXM_OF_IN_PORT(fffffffe)
978 OXM_OF_ETH_DST(0002e30f80a4)
979 OXM_OF_ETH_DST_W(010000000000/010000000000)
980 OXM_OF_ETH_DST_W(000000000000/010000000000)
981 OXM_OF_ETH_DST_W(ffffffffffff/010000000000)
982 OXM_OF_ETH_DST_W(0002e30f80a4/ffffffffffff)
983 OXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
986 OXM_OF_ETH_SRC(020898456ddb)
989 OXM_OF_ETH_TYPE(0800)
990 OXM_OF_ETH_TYPE(0800) OXM_OF_IN_PORT(00000012)
993 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_ECN(03)
994 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_ECN(06)
998 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01)
999 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(05)
1003 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC(ac100014)
1004 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC_W(C0a80000/FFFF0000)
1005 OXM_OF_ETH_TYPE(0806) OXM_OF_IPV4_SRC(ac100014)
1006 OXM_OF_IPV4_SRC_W(C0D80000/FFFF0000)
1009 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST(ac100014)
1010 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST_W(C0a88012/FFFF0000)
1011 OXM_OF_IPV4_DST(ac100014)
1012 OXM_OF_ETH_TYPE(0806) OXM_OF_IPV4_DST_W(C0D80000/FFFF0000)
1015 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC(4231)
1016 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC_W(5050/F0F0)
1017 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(07) OXM_OF_TCP_SRC(4231)
1019 # TCP destination port
1020 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST(4231)
1021 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST_W(FDE0/FFF0)
1022 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(07) OXM_OF_TCP_DST(4231)
1025 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC(8732)
1026 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC_W(0132/01FF)
1027 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_UDP_SRC(7823)
1029 # UDP destination port
1030 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST(1782)
1031 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST_W(5005/F00F)
1032 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(02) OXM_OF_UDP_DST(1293)
1035 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01) OXM_OF_ICMPV4_TYPE(12)
1036 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(00) OXM_OF_ICMPV4_TYPE(10)
1039 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01) OXM_OF_ICMPV4_CODE(12)
1040 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(00) OXM_OF_ICMPV4_CODE(10)
1041 OXM_OF_ETH_TYPE(0800) OXM_OF_ICMPV4_CODE(10)
1042 OXM_OF_ICMPV4_CODE(00)
1045 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(0001)
1046 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(1111)
1047 OXM_OF_ETH_TYPE(0000) OXM_OF_ARP_OP(0001)
1049 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(0001) OXM_OF_ARP_OP(0001)
1051 # ARP source protocol address
1052 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA(ac100014)
1053 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA_W(C0a81234/FFFFFF00)
1054 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_SPA(ac100014)
1055 OXM_OF_ARP_SPA_W(C0D8fedc/FFFF0000)
1057 # ARP destination protocol address
1058 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA(ac100014)
1059 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA_W(C0a812fe/FFFFFF00)
1060 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_TPA(ac100014)
1061 OXM_OF_ARP_TPA_W(C0D80000/FFFF0000)
1063 # ARP source hardware address
1064 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA(0002e30f80a4)
1065 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_SHA(0002e30f80a4)
1066 OXM_OF_ARP_SHA(0002e30f80a4)
1068 # ARP destination hardware address
1069 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA(0002e30f80a4)
1070 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_THA(0002e30f80a4)
1071 OXM_OF_ARP_THA(0002e30f80a4)
1074 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
1075 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
1076 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1077 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1080 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
1081 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
1082 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1083 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1085 # ND source hardware address
1086 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)
1087 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)
1088 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)
1089 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)
1091 # ND destination hardware address
1092 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)
1093 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)
1094 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)
1095 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)
1097 # Invalid field number.
1100 AT_CHECK([ovs-ofctl --strict parse-oxm < oxm.txt], [0], [dnl
1104 OXM_OF_IN_PORT(00000000)
1105 OXM_OF_IN_PORT(fffffffe)
1108 OXM_OF_ETH_DST(0002e30f80a4)
1109 OXM_OF_ETH_DST_W(010000000000/010000000000)
1110 OXM_OF_ETH_DST_W(000000000000/010000000000)
1111 OXM_OF_ETH_DST_W(010000000000/010000000000)
1112 OXM_OF_ETH_DST(0002e30f80a4)
1113 OXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
1116 OXM_OF_ETH_SRC(020898456ddb)
1119 OXM_OF_ETH_TYPE(0800)
1120 OXM_OF_IN_PORT(00000012), OXM_OF_ETH_TYPE(0800)
1123 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_ECN(03)
1124 nx_pull_match() returned error OFPBMC_BAD_VALUE
1125 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1128 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01)
1129 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(05)
1130 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1133 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_SRC(ac100014)
1134 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_SRC_W(c0a80000/ffff0000)
1135 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1136 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1139 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_DST(ac100014)
1140 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_DST_W(c0a80000/ffff0000)
1141 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1142 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1145 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_SRC(4231)
1146 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_SRC_W(5050/f0f0)
1147 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1149 # TCP destination port
1150 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_DST(4231)
1151 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_DST_W(fde0/fff0)
1152 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1155 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_SRC(8732)
1156 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_SRC_W(0132/01ff)
1157 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1159 # UDP destination port
1160 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_DST(1782)
1161 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_DST_W(5005/f00f)
1162 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1165 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01), OXM_OF_ICMPV4_TYPE(12)
1166 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1169 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01), OXM_OF_ICMPV4_CODE(12)
1170 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1171 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1172 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1175 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_OP(0001)
1176 nx_pull_match() returned error OFPBMC_BAD_VALUE
1177 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1178 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1179 nx_pull_match() returned error OFPBMC_DUP_FIELD
1181 # ARP source protocol address
1182 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SPA(ac100014)
1183 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SPA_W(c0a81200/ffffff00)
1184 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1185 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1187 # ARP destination protocol address
1188 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_TPA(ac100014)
1189 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_TPA_W(c0a81200/ffffff00)
1190 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1191 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1193 # ARP source hardware address
1194 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SHA(0002e30f80a4)
1195 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1196 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1198 # ARP destination hardware address
1199 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_THA(0002e30f80a4)
1200 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1201 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1204 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
1205 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1206 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1207 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1210 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
1211 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1212 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1213 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1215 # ND source hardware address
1216 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)
1217 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1218 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1219 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1221 # ND destination hardware address
1222 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)
1223 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1224 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1225 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1227 # Invalid field number.
1228 nx_pull_match() returned error OFPBMC_BAD_FIELD
1232 AT_SETUP([ovs-ofctl parse-oxm loose])
1234 AT_DATA([oxm.txt], [dnl
1235 OXM_OF_IN_PORT(00000001), 01020304(1111/2222), OXM_OF_ETH_TYPE(0800)
1238 AT_CHECK([ovs-ofctl --strict parse-oxm < oxm.txt], [0], [dnl
1239 nx_pull_match() returned error OFPBMC_BAD_FIELD
1242 AT_CHECK([ovs-ofctl parse-oxm < oxm.txt], [0], [dnl
1243 OXM_OF_IN_PORT(00000001), OXM_OF_ETH_TYPE(0800)
1247 dnl Check that "-F openflow10" rejects a flow_mod with a tun_id, since
1248 dnl OpenFlow 1.0 doesn't support tunnels.
1249 AT_SETUP([ovs-ofctl -F option and tun_id])
1250 AT_CHECK([ovs-ofctl -F openflow10 add-flow dummy tun_id=123,actions=drop],
1251 [1], [], [ovs-ofctl: none of the usable flow formats (NXM) is among the allowed flow formats (OpenFlow10)
1255 dnl Check that "-F nxm" really forces add-flow to use the NXM flow format.
1256 dnl (If it doesn't, then either the tun_id won't show up at all, or it will
1257 dnl additionally show up as the top 32 bits of the cookie.) This checks
1258 dnl for regression against bug #4566.
1259 AT_SETUP([ovs-ofctl -F option with flow_mods])
1261 AT_CHECK([ovs-ofctl -F nxm add-flow br0 tun_id=0x12345678,actions=drop])
1262 AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip], [0], [dnl
1264 tun_id=0x12345678 actions=drop
1269 dnl Check that "-F openflow10" is really honored on dump-flows.
1270 dnl (If it isn't, then dump-flows will show the register match.)
1271 AT_SETUP([ovs-ofctl dump-flows honors -F option])
1273 AT_CHECK([ovs-ofctl add-flow br0 reg0=0x12345,actions=drop])
1274 AT_CHECK([ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip], [0], [dnl
1281 dnl Check that "-F openflow10" fails on dump-flows if the requested match
1282 dnl can't be represented in OpenFlow 1.0.
1283 AT_SETUP([ovs-ofctl dump-flows rejects bad -F option])
1285 AT_CHECK([ovs-ofctl -F openflow10 dump-flows unix:br0.mgmt reg0=0xabcdef], [1], [],
1286 [ovs-ofctl: none of the usable flow formats (NXM) is among the allowed flow formats (OpenFlow10)
1291 dnl Check that add-flow reports non-normalized flows (feature #5029).
1292 AT_SETUP([ovs-ofctl add-flow reports non-normalized flows])
1294 AT_CHECK([ovs-ofctl TESTABLE_LOG add-flow br0 nw_src=1.2.3.4,actions=5],
1296 ofp_util|INFO|normalization changed ofp_match, details:
1297 ofp_util|INFO| pre: nw_src=1.2.3.4
1298 ofp_util|INFO|post: @&t@