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 (NXM)])
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 tcp,tp_src=0x1230/0xfff0,tun_id=0x1234,cookie=0x5678,actions=flood
45 actions=set_tunnel:0x1234,set_tunnel64:0x9876,set_tunnel:0x123456789
46 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])
48 tun_id=0x1234000056780000/0xffff0000ffff0000,actions=drop
49 metadata=0x1234ffff5678ffff/0xffff0000ffff0000,actions=drop
50 actions=bundle(eth_src,50,active_backup,ofport,slaves:1)
51 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:2,3)
52 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:)
53 actions=output:1,bundle(eth_src,0,hrw,ofport,slaves:1),output:2
54 actions=bundle_load(eth_src,50,active_backup,ofport,NXM_NX_REG0[],slaves:1)
55 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:2,3)
56 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:[2,3])
57 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..30],slaves:)
58 actions=output:1,bundle_load(eth_src,0,hrw,ofport,NXM_NX_REG0[16..31],slaves:1),output:2
59 actions=resubmit:1,resubmit(2),resubmit(,3),resubmit(2,3)
60 send_flow_rem,actions=output:1,output:NXM_NX_REG0[],output:2,output:NXM_NX_REG1[16..31],output:3
61 check_overlap,actions=output:1,exit,output:2
62 actions=fin_timeout(idle_timeout=5,hard_timeout=15)
63 actions=controller(max_len=123,reason=invalid_ttl,id=555)
66 AT_CHECK([ovs-ofctl parse-flows flows.txt
68 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
69 [[usable protocols: NXM+table_id,OXM
70 chosen protocol: NXM+table_id
71 NXT_FLOW_MOD: ADD table:255 tcp,tp_src=123 actions=FLOOD
72 NXT_FLOW_MOD: ADD table:255 in_port=65534,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
73 NXT_FLOW_MOD: ADD table:255 udp,dl_vlan_pcp=7 idle:5 actions=strip_vlan,output:0
74 NXT_FLOW_MOD: ADD table:255 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
75 NXT_FLOW_MOD: ADD table:255 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
76 NXT_FLOW_MOD: ADD table:255 priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
77 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
78 NXT_FLOW_MOD: ADD table:255 tcp,tun_id=0x1234,tp_src=0x1230/0xfff0 cookie:0x5678 actions=FLOOD
79 NXT_FLOW_MOD: ADD table:255 actions=set_tunnel:0x1234,set_tunnel64:0x9876,set_tunnel64:0x123456789
80 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])
81 NXT_FLOW_MOD: ADD table:1 actions=drop
82 NXT_FLOW_MOD: ADD table:255 tun_id=0x1234000056780000/0xffff0000ffff0000 actions=drop
83 NXT_FLOW_MOD: ADD table:255 metadata=0x1234000056780000/0xffff0000ffff0000 actions=drop
84 NXT_FLOW_MOD: ADD table:255 actions=bundle(eth_src,50,active_backup,ofport,slaves:1)
85 NXT_FLOW_MOD: ADD table:255 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:2,3)
86 NXT_FLOW_MOD: ADD table:255 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:)
87 NXT_FLOW_MOD: ADD table:255 actions=output:1,bundle(eth_src,0,hrw,ofport,slaves:1),output:2
88 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(eth_src,50,active_backup,ofport,NXM_NX_REG0[],slaves:1)
89 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:2,3)
90 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:2,3)
91 NXT_FLOW_MOD: ADD table:255 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..30],slaves:)
92 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
93 NXT_FLOW_MOD: ADD table:255 actions=resubmit:1,resubmit:2,resubmit(,3),resubmit(2,3)
94 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
95 NXT_FLOW_MOD: ADD table:255 check_overlap actions=output:1,exit,output:2
96 NXT_FLOW_MOD: ADD table:255 actions=fin_timeout(idle_timeout=5,hard_timeout=15)
97 NXT_FLOW_MOD: ADD table:255 actions=controller(reason=invalid_ttl,max_len=123,id=555)
101 AT_SETUP([ovs-ofctl -F nxm parse-flows])
102 AT_DATA([flows.txt], [
104 tcp,tp_src=123,actions=flood
105 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
106 arp,dl_src=00:0A:E4:25:6B:B0,arp_sha=00:0A:E4:25:6B:B0 actions=drop
107 ipv6,ipv6_label=0x12345 actions=2
108 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=3
109 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5/64 actions=4
110 ipv6,ipv6_dst=2001:db8:3c4d:1:2:3:4:5/127 actions=5
111 tcp6,ipv6_src=2001:db8:3c4d:1::1,tp_dst=80 actions=drop
112 udp6,ipv6_src=2001:db8:3c4d:1::3,tp_dst=53 actions=drop
113 in_port=3 icmp6,ipv6_src=2001:db8:3c4d:1::1,icmp_type=134 actions=drop
114 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
115 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
116 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
117 icmp6,icmp_type=135,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571 actions=drop
118 icmp6,icmp_type=135,nd_target=FEC0::1234:F045:8FFF:1111:FE4F:0571/112 actions=drop
119 icmp6,icmp_type=135,nd_sll=00:0A:E4:25:6B:B0 actions=drop
120 icmp6,icmp_type=136,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571,nd_tll=00:0A:E4:25:6B:B1 actions=drop
121 icmp6,icmp_type=136,nd_target=FEC0::1234:F045:8FFF:1111:FE00:0000/96,nd_tll=00:0A:E4:25:6B:B1 actions=drop
122 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
123 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
124 tun_id=0x1234,cookie=0x5678,actions=flood
126 tun_id=0x1234000056780000/0xffff0000ffff0000,actions=drop
127 dl_dst=01:00:00:00:00:00/01:00:00:00:00:00,actions=drop
128 dl_dst=00:00:00:00:00:00/01:00:00:00:00:00,actions=drop
129 dl_dst=aa:bb:cc:dd:ee:ff/fe:ff:ff:ff:ff:ff,actions=drop
130 dl_dst=aa:bb:cc:dd:ee:ff/00:00:00:00:00:00,actions=drop
132 AT_CHECK([ovs-ofctl -F nxm parse-flows flows.txt], [0], [stdout])
133 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0], [dnl
134 usable protocols: NXM,OXM
135 chosen protocol: NXM-table_id
136 NXT_FLOW_MOD: ADD tcp,tp_src=123 actions=FLOOD
137 NXT_FLOW_MOD: ADD in_port=65534,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
138 NXT_FLOW_MOD: ADD arp,dl_src=00:0a:e4:25:6b:b0,arp_sha=00:0a:e4:25:6b:b0 actions=drop
139 NXT_FLOW_MOD: ADD ipv6,ipv6_label=0x12345 actions=output:2
140 NXT_FLOW_MOD: ADD ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=output:3
141 NXT_FLOW_MOD: ADD ipv6,ipv6_src=2001:db8:3c4d:1::/64 actions=output:4
142 NXT_FLOW_MOD: ADD ipv6,ipv6_dst=2001:db8:3c4d:1:2:3:4:4/127 actions=output:5
143 NXT_FLOW_MOD: ADD tcp6,ipv6_src=2001:db8:3c4d:1::1,tp_dst=80 actions=drop
144 NXT_FLOW_MOD: ADD udp6,ipv6_src=2001:db8:3c4d:1::3,tp_dst=53 actions=drop
145 NXT_FLOW_MOD: ADD icmp6,in_port=3,ipv6_src=2001:db8:3c4d:1::1,icmp_type=134 actions=drop
146 NXT_FLOW_MOD: ADD udp,dl_vlan_pcp=7 idle:5 actions=strip_vlan,output:0
147 NXT_FLOW_MOD: ADD tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
148 NXT_FLOW_MOD: ADD udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
149 NXT_FLOW_MOD: ADD icmp6,icmp_type=135,nd_target=fec0:0:1234:f045:8fff:1111:fe4e:571 actions=drop
150 NXT_FLOW_MOD: ADD icmp6,icmp_type=135,nd_target=fec0:0:1234:f045:8fff:1111:fe4f:0/112 actions=drop
151 NXT_FLOW_MOD: ADD icmp6,icmp_type=135,nd_sll=00:0a:e4:25:6b:b0 actions=drop
152 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
153 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
154 NXT_FLOW_MOD: ADD priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
155 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
156 NXT_FLOW_MOD: ADD tun_id=0x1234 cookie:0x5678 actions=FLOOD
157 NXT_FLOW_MOD: ADD actions=drop
158 NXT_FLOW_MOD: ADD tun_id=0x1234000056780000/0xffff0000ffff0000 actions=drop
159 NXT_FLOW_MOD: ADD dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=drop
160 NXT_FLOW_MOD: ADD dl_dst=00:00:00:00:00:00/01:00:00:00:00:00 actions=drop
161 NXT_FLOW_MOD: ADD dl_dst=aa:bb:cc:dd:ee:ff/fe:ff:ff:ff:ff:ff actions=drop
162 NXT_FLOW_MOD: ADD actions=drop
166 AT_SETUP([ovs-ofctl -F nxm -mmm parse-flows])
167 AT_DATA([flows.txt], [[
169 tcp,tp_src=123,actions=flood
170 in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
171 arp,dl_src=00:0A:E4:25:6B:B0,arp_sha=00:0A:E4:25:6B:B0 actions=drop
172 ipv6,ipv6_label=0x12345 actions=2
173 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=3
174 ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5/64 actions=4
175 ipv6,ipv6_dst=2001:db8:3c4d:1:2:3:4:5/127 actions=5
176 tcp6,ipv6_src=2001:db8:3c4d:1::1,tp_dst=80 actions=drop
177 udp6,ipv6_src=2001:db8:3c4d:1::3,tp_dst=53 actions=drop
178 in_port=3 icmp6,ipv6_src=2001:db8:3c4d:1::1,icmp_type=134 actions=drop
179 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
180 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
181 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
182 icmp6,icmp_type=135,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571 actions=drop
183 icmp6,icmp_type=135,nd_sll=00:0A:E4:25:6B:B0 actions=drop
184 icmp6,icmp_type=136,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571,nd_tll=00:0A:E4:25:6B:B1 actions=drop
185 cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
186 actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
187 tun_id=0x1234,cookie=0x5678,actions=flood
189 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[]
190 actions=move:OXM_OF_ETH_DST[]->OXM_OF_ETH_SRC[]
191 actions=autopath(5,NXM_NX_REG0[])
192 vlan_tci=0x1123/0x1fff,actions=drop
194 AT_CHECK([ovs-ofctl -F nxm -mmm parse-flows flows.txt], [0], [stdout], [stderr])
195 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
196 [[usable protocols: NXM,OXM
197 chosen protocol: NXM-table_id
198 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC(007b) actions=FLOOD
199 NXT_FLOW_MOD: ADD NXM_OF_IN_PORT(fffe), NXM_OF_ETH_SRC(000ae4256bb0), NXM_OF_VLAN_TCI_W(1009/1fff) actions=drop
200 NXT_FLOW_MOD: ADD NXM_OF_ETH_SRC(000ae4256bb0), NXM_OF_ETH_TYPE(0806), NXM_NX_ARP_SHA(000ae4256bb0) actions=drop
201 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_LABEL(00012345) actions=output:2
202 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005) actions=output:3
203 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000) actions=output:4
204 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST_W(20010db83c4d00010002000300040004/fffffffffffffffffffffffffffffffe) actions=output:5
205 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
206 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
207 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
208 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
209 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
210 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
211 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
212 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
213 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
214 NXT_FLOW_MOD: ADD <any> cookie:0x123456789abcdef hard:10 pri:60000 actions=CONTROLLER:65535
215 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
216 NXT_FLOW_MOD: ADD NXM_NX_TUN_ID(0000000000001234) cookie:0x5678 actions=FLOOD
217 NXT_FLOW_MOD: ADD <any> actions=drop
218 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[]
219 NXT_FLOW_MOD: ADD <any> actions=move:NXM_OF_ETH_DST[]->NXM_OF_ETH_SRC[]
220 NXT_FLOW_MOD: ADD <any> actions=autopath(5,NXM_NX_REG0[])
221 NXT_FLOW_MOD: ADD NXM_OF_VLAN_TCI_W(1123/1fff) actions=drop
223 AT_CHECK([[sed 's/^[^|]*|[^|]*|//' stderr]], [0], [dnl
224 autopath|WARN|The autopath action is deprecated and may be removed in February 2013. Please email dev@openvswitch.org with concerns.
228 AT_SETUP([ovs-ofctl parse-nx-match])
229 AT_KEYWORDS([nx-match])
230 AT_DATA([nx-match.txt], [dnl
238 NXM_OF_ETH_DST(0002e30f80a4)
239 NXM_OF_ETH_DST_W(010000000000/010000000000)
240 NXM_OF_ETH_DST_W(000000000000/010000000000)
241 NXM_OF_ETH_DST_W(ffffffffffff/010000000000)
242 NXM_OF_ETH_DST_W(0002e30f80a4/ffffffffffff)
243 NXM_OF_ETH_DST_W(60175619848f/000000000000)
244 NXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
245 NXM_OF_ETH_DST_W(60175619848f/5a5a5a5a5a5a)
248 NXM_OF_ETH_SRC(020898456ddb)
249 NXM_OF_ETH_SRC_W(012345abcdef/ffffff555555)
250 NXM_OF_ETH_SRC_W(020898456ddb/ffffffffffff)
251 NXM_OF_ETH_SRC_W(020898456ddb/000000000000)
254 NXM_OF_ETH_TYPE(0800)
255 NXM_OF_ETH_TYPE(0800) NXM_OF_IN_PORT(0012)
258 NXM_OF_VLAN_TCI(f009)
259 NXM_OF_VLAN_TCI(f009) NXM_OF_VLAN_TCI(f009)
260 NXM_OF_VLAN_TCI(0000) # Packets without 802.1Q header.
261 NXM_OF_VLAN_TCI(3123) # Packets with VID=123, PCP=1.
262 NXM_OF_VLAN_TCI(0123) # Does not make sense (but supported anyway)
263 NXM_OF_VLAN_TCI_W(1123/1fff) # Packets with VID=123, any PCP.
264 NXM_OF_VLAN_TCI_W(1123/ffff) # Packets with VID=123, PCP=0
265 NXM_OF_VLAN_TCI_W(1123/0000) # Packets with or without 802.1Q header
266 NXM_OF_VLAN_TCI_W(f000/f000) # Packets with any VID, PCP=7.
267 NXM_OF_VLAN_TCI_W(0000/e000) # No 802.1Q or with VID=0
270 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_TOS(f0)
271 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_TOS(41)
275 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_ECN(03)
276 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_ECN(06)
280 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(01)
281 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(05)
285 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_TTL(80)
286 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_TTL(ff)
290 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC(ac100014)
291 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC_W(C0a80000/FFFF0000)
292 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC_W(C0a80000/5a5a5a5a)
293 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC_W(C0a80000/ffffffff)
294 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC_W(C0a80000/00000000)
295 NXM_OF_ETH_TYPE(0806) NXM_OF_IP_SRC(ac100014)
296 NXM_OF_IP_SRC_W(C0D80000/FFFF0000)
299 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST(ac100014)
300 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST_W(C0a88012/FFFF0000)
301 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST_W(C0a80000/5a5a5a5a)
302 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST_W(C0a80000/ffffffff)
303 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST_W(C0a80000/00000000)
304 NXM_OF_IP_DST(ac100014)
305 NXM_OF_ETH_TYPE(0806) NXM_OF_IP_DST_W(C0D80000/FFFF0000)
308 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_SRC(4231)
309 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_SRC_W(5050/F0F0)
310 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_SRC_W(5050/ffff)
311 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_SRC_W(5050/0000)
312 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(07) NXM_OF_TCP_SRC(4231)
314 # TCP destination port
315 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_DST(4231)
316 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_DST_W(FDE0/FFF0)
317 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_DST_W(FDE0/ffff)
318 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_DST_W(FDE0/0000)
319 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(07) NXM_OF_TCP_DST(4231)
322 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_SRC(8732)
323 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_SRC_W(0132/01FF)
324 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_SRC_W(0132/ffff)
325 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_SRC_W(0132/0000)
326 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_UDP_SRC(7823)
328 # UDP destination port
329 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_DST(1782)
330 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_DST_W(5005/F00F)
331 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_DST_W(5005/FFFF)
332 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_DST_W(5005/0000)
333 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(02) NXM_OF_UDP_DST(1293)
336 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(01) NXM_OF_ICMP_TYPE(12)
337 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(00) NXM_OF_ICMP_TYPE(10)
340 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(01) NXM_OF_ICMP_CODE(12)
341 NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(00) NXM_OF_ICMP_CODE(10)
342 NXM_OF_ETH_TYPE(0800) NXM_OF_ICMP_CODE(10)
346 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_OP(0001)
347 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_OP(1111)
348 NXM_OF_ETH_TYPE(0000) NXM_OF_ARP_OP(0001)
350 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_OP(0001) NXM_OF_ARP_OP(0001)
352 # ARP source protocol address
353 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA(ac100014)
354 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA_W(C0a81234/FFFFFF00)
355 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA_W(C0a81234/aaaaaa00)
356 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA_W(C0a81234/ffffffff)
357 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA_W(C0a81234/00000000)
358 NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_SPA(ac100014)
359 NXM_OF_ARP_SPA_W(C0D8fedc/FFFF0000)
361 # ARP destination protocol address
362 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA(ac100014)
363 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA_W(C0a812fe/FFFFFF00)
364 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA_W(C0a81234/77777777)
365 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA_W(C0a81234/ffffffff)
366 NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA_W(C0a81234/00000000)
367 NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_TPA(ac100014)
368 NXM_OF_ARP_TPA_W(C0D80000/FFFF0000)
370 # ARP source hardware address
371 NXM_OF_ETH_TYPE(0806) NXM_NX_ARP_SHA(0002e30f80a4)
372 NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_SHA(0002e30f80a4)
373 NXM_NX_ARP_SHA(0002e30f80a4)
375 # ARP destination hardware address
376 NXM_OF_ETH_TYPE(0806) NXM_NX_ARP_THA(0002e30f80a4)
377 NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_THA(0002e30f80a4)
378 NXM_NX_ARP_THA(0002e30f80a4)
381 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_OP(0003)
382 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_OP(1111)
383 NXM_OF_ETH_TYPE(0000) NXM_OF_ARP_OP(0003)
385 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_OP(0003) NXM_OF_ARP_OP(0003)
387 # RARP source protocol address
388 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA(ac100014)
389 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA_W(C0a81234/FFFFFF00)
390 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA_W(C0a81234/aaaaaa00)
391 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA_W(C0a81234/ffffffff)
392 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA_W(C0a81234/00000000)
393 NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_SPA(ac100014)
394 NXM_OF_ARP_SPA_W(C0D8fedc/FFFF0000)
396 # RARP destination protocol address
397 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA(ac100014)
398 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA_W(C0a812fe/FFFFFF00)
399 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA_W(C0a81234/77777777)
400 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA_W(C0a81234/ffffffff)
401 NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA_W(C0a81234/00000000)
402 NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_TPA(ac100014)
403 NXM_OF_ARP_TPA_W(C0D80000/FFFF0000)
405 # RARP source hardware address
406 NXM_OF_ETH_TYPE(8035) NXM_NX_ARP_SHA(0002e30f80a4)
407 NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_SHA(0002e30f80a4)
408 NXM_NX_ARP_SHA(0002e30f80a4)
410 # RARP destination hardware address
411 NXM_OF_ETH_TYPE(8035) NXM_NX_ARP_THA(0002e30f80a4)
412 NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_THA(0002e30f80a4)
413 NXM_NX_ARP_THA(0002e30f80a4)
416 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005)
417 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005)
418 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
419 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/5a5a5a5a5a5a5a5a0000000000000000)
420 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
421 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/00000000000000000000000000000000)
422 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
425 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST(20010db83c4d00010002000300040005)
426 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_DST(20010db83c4d00010002000300040005)
427 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/77777777777777777777777777777777)
428 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
429 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/00000000000000000000000000000000)
430 NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
433 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_LABEL(1000000f)
434 NXM_NX_IPV6_LABEL(0000000f)
435 NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_LABEL(0000000f)
438 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
439 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(88) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
440 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET_W(20010db83c4d00010002000300040005/0123456789abcdeffedcba9876543210)
441 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET_W(20010db83c4d00010002000300040005/ffffffffffffffffffffffffffffffff)
442 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET_W(20010db83c4d00010002000300040005/00000000000000000000000000000000)
443 NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(88) NXM_NX_ND_TARGET_W(20010db83c4d00010002000300040005/fedcba98765432100123456789abcdef)
445 # ND source hardware address
446 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)
447 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)
448 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)
449 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)
451 # ND destination hardware address
452 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)
453 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)
454 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)
455 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)
458 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(00)
459 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(01)
460 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(02)
461 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(03)
462 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(00/03)
463 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(00/fd)
464 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(00/02)
465 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(01/01)
466 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(02/02)
467 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(03/03)
468 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(03/ff)
469 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(03/00)
470 NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(f3)
473 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(00)
474 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(01)
475 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(02)
476 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(03)
477 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(00/03)
478 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(00/01)
479 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(00/02)
480 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(01/01)
481 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(02/02)
482 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(03/03)
483 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(03/00)
484 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(03/ff)
485 NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(f3)
488 NXM_NX_COOKIE(00000000abcdef01)
489 NXM_NX_COOKIE_W(84200000abcdef01/84200000FFFFFFFF)
490 NXM_NX_COOKIE_W(84200000abcdef01/ffffffffffffffff)
491 NXM_NX_COOKIE_W(84200000abcdef01/0000000000000000)
494 NXM_NX_TUN_ID(00000000abcdef01)
495 NXM_NX_TUN_ID_W(84200000abcdef01/84200000FFFFFFFF)
496 NXM_NX_TUN_ID_W(84200000abcdef01/FFFFFFFFFFFFFFFF)
497 NXM_NX_TUN_ID_W(84200000abcdef01/0000000000000000)
500 NXM_NX_REG0(acebdf56)
501 NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
502 NXM_NX_REG0_W(a0e0d050/ffffffff)
503 NXM_NX_REG0_W(a0e0d050/00000000)
505 # Invalid field number.
508 # Unimplemented registers.
510 # This test assumes that at least two registers, but fewer than 16,
511 # registers are implemented.
513 00010108(12345678/12345678)
515 00011f08(12345678/12345678)
517 AT_CHECK([ovs-ofctl --strict parse-nx-match < nx-match.txt], [0], [dnl
525 NXM_OF_ETH_DST(0002e30f80a4)
526 NXM_OF_ETH_DST_W(010000000000/010000000000)
527 NXM_OF_ETH_DST_W(000000000000/010000000000)
528 NXM_OF_ETH_DST_W(010000000000/010000000000)
529 NXM_OF_ETH_DST(0002e30f80a4)
531 NXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
532 NXM_OF_ETH_DST_W(40125218000a/5a5a5a5a5a5a)
535 NXM_OF_ETH_SRC(020898456ddb)
536 NXM_OF_ETH_SRC_W(012345014545/ffffff555555)
537 NXM_OF_ETH_SRC(020898456ddb)
541 NXM_OF_ETH_TYPE(0800)
542 NXM_OF_IN_PORT(0012), NXM_OF_ETH_TYPE(0800)
545 NXM_OF_VLAN_TCI(f009)
546 nx_pull_match() returned error OFPBMC_DUP_FIELD
547 NXM_OF_VLAN_TCI(0000)
548 NXM_OF_VLAN_TCI(3123)
549 NXM_OF_VLAN_TCI(0123)
550 NXM_OF_VLAN_TCI_W(1123/1fff)
551 NXM_OF_VLAN_TCI(1123)
553 NXM_OF_VLAN_TCI_W(f000/f000)
554 NXM_OF_VLAN_TCI_W(0000/e000)
557 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_TOS(f0)
558 nx_pull_match() returned error OFPBMC_BAD_VALUE
559 nx_pull_match() returned error OFPBMC_BAD_PREREQ
562 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_ECN(03)
563 nx_pull_match() returned error OFPBMC_BAD_VALUE
564 nx_pull_match() returned error OFPBMC_BAD_PREREQ
567 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(01)
568 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(05)
569 nx_pull_match() returned error OFPBMC_BAD_PREREQ
572 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_TTL(80)
573 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_TTL(ff)
574 nx_pull_match() returned error OFPBMC_BAD_PREREQ
577 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC(ac100014)
578 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC_W(c0a80000/ffff0000)
579 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC_W(40080000/5a5a5a5a)
580 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC(c0a80000)
581 NXM_OF_ETH_TYPE(0800)
582 nx_pull_match() returned error OFPBMC_BAD_PREREQ
583 nx_pull_match() returned error OFPBMC_BAD_PREREQ
586 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_DST(ac100014)
587 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_DST_W(c0a80000/ffff0000)
588 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_DST_W(40080000/5a5a5a5a)
589 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_DST(c0a80000)
590 NXM_OF_ETH_TYPE(0800)
591 nx_pull_match() returned error OFPBMC_BAD_PREREQ
592 nx_pull_match() returned error OFPBMC_BAD_PREREQ
595 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC(4231)
596 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC_W(5050/f0f0)
597 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC(5050)
598 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06)
599 nx_pull_match() returned error OFPBMC_BAD_PREREQ
601 # TCP destination port
602 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST(4231)
603 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST_W(fde0/fff0)
604 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST(fde0)
605 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06)
606 nx_pull_match() returned error OFPBMC_BAD_PREREQ
609 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_SRC(8732)
610 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_SRC_W(0132/01ff)
611 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_SRC(0132)
612 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11)
613 nx_pull_match() returned error OFPBMC_BAD_PREREQ
615 # UDP destination port
616 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST(1782)
617 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST_W(5005/f00f)
618 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST(5005)
619 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11)
620 nx_pull_match() returned error OFPBMC_BAD_PREREQ
623 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(01), NXM_OF_ICMP_TYPE(12)
624 nx_pull_match() returned error OFPBMC_BAD_PREREQ
627 NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(01), NXM_OF_ICMP_CODE(12)
628 nx_pull_match() returned error OFPBMC_BAD_PREREQ
629 nx_pull_match() returned error OFPBMC_BAD_PREREQ
630 nx_pull_match() returned error OFPBMC_BAD_PREREQ
633 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_OP(0001)
634 nx_pull_match() returned error OFPBMC_BAD_VALUE
635 nx_pull_match() returned error OFPBMC_BAD_PREREQ
636 nx_pull_match() returned error OFPBMC_BAD_PREREQ
637 nx_pull_match() returned error OFPBMC_DUP_FIELD
639 # ARP source protocol address
640 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_SPA(ac100014)
641 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_SPA_W(c0a81200/ffffff00)
642 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_SPA_W(80a80200/aaaaaa00)
643 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_SPA(c0a81234)
644 NXM_OF_ETH_TYPE(0806)
645 nx_pull_match() returned error OFPBMC_BAD_PREREQ
646 nx_pull_match() returned error OFPBMC_BAD_PREREQ
648 # ARP destination protocol address
649 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_TPA(ac100014)
650 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_TPA_W(c0a81200/ffffff00)
651 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_TPA_W(40201234/77777777)
652 NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_TPA(c0a81234)
653 NXM_OF_ETH_TYPE(0806)
654 nx_pull_match() returned error OFPBMC_BAD_PREREQ
655 nx_pull_match() returned error OFPBMC_BAD_PREREQ
657 # ARP source hardware address
658 NXM_OF_ETH_TYPE(0806), NXM_NX_ARP_SHA(0002e30f80a4)
659 nx_pull_match() returned error OFPBMC_BAD_PREREQ
660 nx_pull_match() returned error OFPBMC_BAD_PREREQ
662 # ARP destination hardware address
663 NXM_OF_ETH_TYPE(0806), NXM_NX_ARP_THA(0002e30f80a4)
664 nx_pull_match() returned error OFPBMC_BAD_PREREQ
665 nx_pull_match() returned error OFPBMC_BAD_PREREQ
668 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_OP(0003)
669 nx_pull_match() returned error OFPBMC_BAD_VALUE
670 nx_pull_match() returned error OFPBMC_BAD_PREREQ
671 nx_pull_match() returned error OFPBMC_BAD_PREREQ
672 nx_pull_match() returned error OFPBMC_DUP_FIELD
674 # RARP source protocol address
675 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_SPA(ac100014)
676 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_SPA_W(c0a81200/ffffff00)
677 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_SPA_W(80a80200/aaaaaa00)
678 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_SPA(c0a81234)
679 NXM_OF_ETH_TYPE(8035)
680 nx_pull_match() returned error OFPBMC_BAD_PREREQ
681 nx_pull_match() returned error OFPBMC_BAD_PREREQ
683 # RARP destination protocol address
684 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_TPA(ac100014)
685 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_TPA_W(c0a81200/ffffff00)
686 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_TPA_W(40201234/77777777)
687 NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_TPA(c0a81234)
688 NXM_OF_ETH_TYPE(8035)
689 nx_pull_match() returned error OFPBMC_BAD_PREREQ
690 nx_pull_match() returned error OFPBMC_BAD_PREREQ
692 # RARP source hardware address
693 NXM_OF_ETH_TYPE(8035), NXM_NX_ARP_SHA(0002e30f80a4)
694 nx_pull_match() returned error OFPBMC_BAD_PREREQ
695 nx_pull_match() returned error OFPBMC_BAD_PREREQ
697 # RARP destination hardware address
698 NXM_OF_ETH_TYPE(8035), NXM_NX_ARP_THA(0002e30f80a4)
699 nx_pull_match() returned error OFPBMC_BAD_PREREQ
700 nx_pull_match() returned error OFPBMC_BAD_PREREQ
703 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005)
704 nx_pull_match() returned error OFPBMC_BAD_PREREQ
705 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
706 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC_W(00000818184800000000000000000000/5a5a5a5a5a5a5a5a0000000000000000)
707 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010000000000000000)
708 NXM_OF_ETH_TYPE(86dd)
709 nx_pull_match() returned error OFPBMC_BAD_PREREQ
712 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST(20010db83c4d00010002000300040005)
713 nx_pull_match() returned error OFPBMC_BAD_PREREQ
714 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST_W(20010530344500010000000000000000/77777777777777777777777777777777)
715 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST(20010db83c4d00010000000000000000)
716 NXM_OF_ETH_TYPE(86dd)
717 nx_pull_match() returned error OFPBMC_BAD_PREREQ
720 nx_pull_match() returned error OFPBMC_BAD_VALUE
721 nx_pull_match() returned error OFPBMC_BAD_PREREQ
722 NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_LABEL(0000000f)
725 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87), NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
726 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(88), NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
727 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87), NXM_NX_ND_TARGET_W(00010520080900010000000000040000/0123456789abcdeffedcba9876543210)
728 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87), NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
729 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87)
730 NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(88), NXM_NX_ND_TARGET_W(20000898344400000002000300000005/fedcba98765432100123456789abcdef)
732 # ND source hardware address
733 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)
734 nx_pull_match() returned error OFPBMC_BAD_PREREQ
735 nx_pull_match() returned error OFPBMC_BAD_PREREQ
736 nx_pull_match() returned error OFPBMC_BAD_PREREQ
738 # ND destination hardware address
739 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)
740 nx_pull_match() returned error OFPBMC_BAD_PREREQ
741 nx_pull_match() returned error OFPBMC_BAD_PREREQ
742 nx_pull_match() returned error OFPBMC_BAD_PREREQ
745 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(00)
746 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(01)
747 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(02)
748 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(03)
749 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(00)
750 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(00/01)
751 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(00/02)
752 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(01/01)
753 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(02/02)
754 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(03)
755 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(03)
756 NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(00)
757 nx_pull_match() returned error OFPBMC_BAD_VALUE
760 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(00)
761 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(01)
762 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(02)
763 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(03)
764 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(00)
765 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(00/01)
766 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(00/02)
767 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(01/01)
768 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(02/02)
769 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(03)
770 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(00)
771 NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(03)
772 nx_pull_match() returned error OFPBMC_BAD_VALUE
775 NXM_NX_COOKIE(00000000abcdef01)
776 NXM_NX_COOKIE_W(84200000abcdef01/84200000ffffffff)
777 NXM_NX_COOKIE(84200000abcdef01)
781 NXM_NX_TUN_ID(00000000abcdef01)
782 NXM_NX_TUN_ID_W(84200000abcdef01/84200000ffffffff)
783 NXM_NX_TUN_ID(84200000abcdef01)
787 NXM_NX_REG0(acebdf56)
788 NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
789 NXM_NX_REG0(a0e0d050)
792 # Invalid field number.
793 nx_pull_match() returned error OFPBMC_BAD_FIELD
795 # Unimplemented registers.
797 # This test assumes that at least two registers, but fewer than 16,
798 # registers are implemented.
799 NXM_NX_REG0(12345678)
800 NXM_NX_REG0_W(12345678/12345678)
801 nx_pull_match() returned error OFPBMC_BAD_FIELD
802 nx_pull_match() returned error OFPBMC_BAD_FIELD
806 AT_SETUP([ovs-ofctl parse-ofp10-match])
808 AT_DATA([test-data], [dnl
810 003820fe fffe xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx xxxx xx xx xxxx dnl
811 xxxxxxxx xxxxxxxx xxxx xxxx
813 # dl_src=00:01:02:03:04:05
814 003820fb xxxx 000102030405 xxxxxxxxxxxx xxxx xx xx xxxx xx xx xxxx dnl
815 xxxxxxxx xxxxxxxx xxxx xxxx
817 # dl_dst=10:20:30:40:50:60
818 003820f7 xxxx xxxxxxxxxxxx 102030405060 xxxx xx xx xxxx xx xx xxxx dnl
819 xxxxxxxx xxxxxxxx xxxx xxxx
822 003820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx 0123 xx xx xxxx xx xx xxxx dnl
823 xxxxxxxx xxxxxxxx xxxx xxxx
826 002820ff xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx 05 xx xxxx xx xx xxxx dnl
827 xxxxxxxx xxxxxxxx xxxx xxxx
829 # dl_vlan=291,dl_vlan_pcp=4
830 002820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx 0123 04 xx xxxx xx xx xxxx dnl
831 xxxxxxxx xxxxxxxx xxxx xxxx
834 003820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx ffff xx xx xxxx xx xx xxxx dnl
835 xxxxxxxx xxxxxxxx xxxx xxxx
837 dnl dl_vlan_pcp doesn't make sense when dl_vlan is "none", so
838 dnl OVS ignores it and drops it on output.
842 002820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx ffff 05 xx xxxx xx xx xxxx dnl
843 xxxxxxxx xxxxxxxx xxxx xxxx
845 dnl Invalid VID and PCP discards out-of-range bits:
846 # dl_vlan=256,dl_vlan_pcp=7
849 002820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx f100 ff xx xxxx xx xx xxxx dnl
850 xxxxxxxx xxxxxxxx xxxx xxxx
853 003820ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 1234 xx xx xxxx dnl
854 xxxxxxxx xxxxxxxx xxxx xxxx
857 003820cf xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 05 xxxx dnl
858 xxxxxxxx xxxxxxxx xxxx xxxx
860 dnl Ignore nw_proto if not IP or ARP:
861 # dl_type=0x1234,nw_proto=5
862 # normal: 3: cf -> ef
863 # normal: 25: 05 -> 00
864 & ofp_util|INFO|normalization changed ofp_match, details:
865 & ofp_util|INFO| pre: dl_type=0x1234,nw_proto=5
866 & ofp_util|INFO|post: dl_type=0x1234
867 003820cf xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 1234 xx 05 xxxx dnl
868 xxxxxxxx xxxxxxxx xxxx xxxx
871 001820ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 fc xx xxxx dnl
872 xxxxxxxx xxxxxxxx xxxx xxxx
874 dnl Ignore nw_tos if not IP:
877 # normal: 1: 18 -> 38
878 # normal: 24: 04 -> 00
879 & ofp_util|INFO|normalization changed ofp_match, details:
880 & ofp_util|INFO| pre: arp,nw_tos=4
881 & ofp_util|INFO|post: arp
882 001820ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 05 xx xxxx dnl
883 xxxxxxxx xxxxxxxx xxxx xxxx
885 dnl Low 2 bits of invalid TOS are forced to 0:
888 001820ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 31 xx xxxx dnl
889 xxxxxxxx xxxxxxxx xxxx xxxx
892 003820cf xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx 02 xxxx dnl
893 xxxxxxxx xxxxxxxx xxxx xxxx
895 # ip,nw_src=192.168.128.85
896 003800ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx xx xxxx dnl
897 c0a88055 xxxxxxxx xxxx xxxx
899 # ip,nw_src=192.168.128.0/24
901 003808ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx xx xxxx dnl
902 c0a88055 xxxxxxxx xxxx xxxx
904 # ip,nw_dst=192.168.128.85
905 003020ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx xx xxxx dnl
906 xxxxxxxx c0a88055 xxxx xxxx
908 # ip,nw_dst=192.168.128.0/24
910 003220ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx xx xxxx dnl
911 xxxxxxxx c0a88055 xxxx xxxx
913 # arp,arp_spa=192.168.128.85
914 003800ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx xx xxxx dnl
915 c0a88055 xxxxxxxx xxxx xxxx
917 # arp,arp_spa=192.168.128.0/24
919 003808ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx xx xxxx dnl
920 c0a88055 xxxxxxxx xxxx xxxx
922 # arp,arp_tpa=192.168.128.85
923 003020ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx xx xxxx dnl
924 xxxxxxxx c0a88055 xxxx xxxx
926 # arp,arp_tpa=192.168.128.0/24
928 003220ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx xx xxxx dnl
929 xxxxxxxx c0a88055 xxxx xxxx
931 dnl Ignore nw_src if not IP or ARP:
932 # dl_type=0x1234,nw_src=192.168.128.0/24
934 # normal: 2: 08 -> 20
935 # normal: 28: c0 -> 00
936 # normal: 29: a8 -> 00
937 # normal: 30: 80 -> 00
938 & ofp_util|INFO|normalization changed ofp_match, details:
939 & ofp_util|INFO| pre: dl_type=0x1234,nw_src=192.168.128.0/24
940 & ofp_util|INFO|post: dl_type=0x1234
941 003808ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 1234 xx xx xxxx dnl
942 c0a88055 xxxxxxxx xxxx xxxx
944 dnl Ignore nw_dst if not IP or ARP:
945 # dl_type=0x1234,nw_dst=192.168.128.0/24
947 # normal: 1: 32 -> 38
948 # normal: 32: c0 -> 00
949 # normal: 33: a8 -> 00
950 # normal: 34: 80 -> 00
951 & ofp_util|INFO|normalization changed ofp_match, details:
952 & ofp_util|INFO| pre: dl_type=0x1234,nw_dst=192.168.128.0/24
953 & ofp_util|INFO|post: dl_type=0x1234
954 003220ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 1234 xx xx xxxx dnl
955 xxxxxxxx c0a88055 xxxx xxxx
958 0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 06 xxxx dnl
959 xxxxxxxx xxxxxxxx 01bb xxxx
962 0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 06 xxxx dnl
963 xxxxxxxx xxxxxxxx xxxx 01bb
966 0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 11 xxxx dnl
967 xxxxxxxx xxxxxxxx 01bb xxxx
970 0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 11 xxxx dnl
971 xxxxxxxx xxxxxxxx xxxx 01bb
974 0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 01 xxxx dnl
975 xxxxxxxx xxxxxxxx 0005 xxxx
978 0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 01 xxxx dnl
979 xxxxxxxx xxxxxxxx xxxx 0008
981 dnl Ignore tp_src if not TCP or UDP:
982 # ip,nw_proto=21,tp_src=443
983 # normal: 3: 8f -> cf
984 # normal: 36: 01 -> 00
985 # normal: 37: bb -> 00
986 & ofp_util|INFO|normalization changed ofp_match, details:
987 & ofp_util|INFO| pre: ip,nw_proto=21,tp_src=443
988 & ofp_util|INFO|post: ip,nw_proto=21
989 0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 15 xxxx dnl
990 xxxxxxxx xxxxxxxx 01bb xxxx
992 dnl Ignore tp_dst if not TCP or UDP:
993 # ip,nw_proto=21,tp_dst=443
994 # normal: 3: 4f -> cf
995 # normal: 38: 01 -> 00
996 # normal: 39: bb -> 00
997 dnl The normalization details are suppressed here due to rate-limiting.
998 0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 15 xxxx dnl
999 xxxxxxxx xxxxxxxx xxxx 01bb
1002 sed '/^[[#&]]/d' < test-data > input.txt
1003 sed -n 's/^# //p; /^$/p' < test-data > expout
1004 sed -n 's/^& //p' < test-data > experr
1005 AT_CAPTURE_FILE([input.txt])
1006 AT_CAPTURE_FILE([expout])
1007 AT_CAPTURE_FILE([experr])
1009 [ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-ofp10-match < input.txt],
1010 [0], [expout], [experr])
1013 AT_SETUP([ovs-ofctl parse-ofp11-match])
1014 AT_KEYWORDS([OF1.1])
1015 AT_DATA([test-data], [dnl
1017 0000 0058 fffffffe 000003fe dnl
1018 000000000000ffffffffffff 000000000000ffffffffffff dnl
1019 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1020 00000000 00 000000 0000000000000000ffffffffffffffff
1022 # bad ofp11_match: OFPBMC_BAD_VALUE
1023 & ofp_util|WARN|port 305419896 is outside the supported range 0 through 65279 or 0xffffff00 through 0xffffffff
1024 0000 0058 12345678 000003fe dnl
1025 000000000000ffffffffffff 000000000000ffffffffffff dnl
1026 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1027 00000000 00 000000 0000000000000000ffffffffffffffff
1029 # dl_src=00:01:02:03:04:05
1030 0000 0058 00000000 000003ff dnl
1031 000102030405000000000000 000000000000ffffffffffff dnl
1032 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1033 00000000 00 000000 0000000000000000ffffffffffffffff
1035 # dl_src=55:55:55:55:55:55/55:55:55:55:55:55
1036 0000 0058 00000000 000003ff dnl
1037 555555555555aaaaaaaaaaaa 000000000000ffffffffffff dnl
1038 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1039 00000000 00 000000 0000000000000000ffffffffffffffff
1041 # dl_dst=00:01:02:03:04:05
1042 0000 0058 00000000 000003ff dnl
1043 000000000000ffffffffffff 000102030405000000000000 dnl
1044 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1045 00000000 00 000000 0000000000000000ffffffffffffffff
1047 # dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
1048 0000 0058 00000000 000003ff dnl
1049 000000000000ffffffffffff 010000000000feffffffffff dnl
1050 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1051 00000000 00 000000 0000000000000000ffffffffffffffff
1053 # dl_dst=00:01:02:03:04:05/fe:ff:ff:ff:ff:ff
1054 0000 0058 00000000 000003ff dnl
1055 000000000000ffffffffffff 000102030405010000000000 dnl
1056 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1057 00000000 00 000000 0000000000000000ffffffffffffffff
1059 # dl_dst=55:55:55:55:55:55/55:55:55:55:55:55
1060 0000 0058 00000000 000003ff dnl
1061 000000000000ffffffffffff 555555555555aaaaaaaaaaaa dnl
1062 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1063 00000000 00 000000 0000000000000000ffffffffffffffff
1065 dnl dl_vlan_pcp is ignored if dl_vlan is wildcarded, which causes the
1066 dnl the wildcard bit and the dl_vlan_pcp to be dropped for output:
1070 0000 0058 00000001 000003fa dnl
1071 000000000000ffffffffffff 000000000000ffffffffffff dnl
1072 0000 03 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1073 00000000 00 000000 0000000000000000ffffffffffffffff
1076 0000 0058 00000000 000003fd dnl
1077 000000000000ffffffffffff 000000000000ffffffffffff dnl
1078 0123 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1079 00000000 00 000000 0000000000000000ffffffffffffffff
1083 0000 0058 00000000 000003fd dnl
1084 000000000000ffffffffffff 000000000000ffffffffffff dnl
1085 ffff 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1086 00000000 00 000000 0000000000000000ffffffffffffffff
1088 dnl OFPVID_NONE ignores dl_vlan_pcp even if not wildcarded, which causes
1089 dnl the wildcard bit and the dl_vlan_pcp to be dropped for output:
1093 0000 0058 00000000 000003f9 dnl
1094 000000000000ffffffffffff 000000000000ffffffffffff dnl
1095 ffff 05 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1096 00000000 00 000000 0000000000000000ffffffffffffffff
1098 # vlan_tci=0x1000/0x1000
1099 0000 0058 00000000 000003fd dnl
1100 000000000000ffffffffffff 000000000000ffffffffffff dnl
1101 fffe 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1102 00000000 00 000000 0000000000000000ffffffffffffffff
1104 dnl Try invalid VID:
1105 # bad ofp11_match: OFPBMC_BAD_VALUE
1106 0000 0058 00000000 000003fd dnl
1107 000000000000ffffffffffff 000000000000ffffffffffff dnl
1108 1234 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1109 00000000 00 000000 0000000000000000ffffffffffffffff
1112 0000 0058 00000000 000003f9 dnl
1113 000000000000ffffffffffff 000000000000ffffffffffff dnl
1114 fffe 04 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1115 00000000 00 000000 0000000000000000ffffffffffffffff
1117 # dl_vlan=10,dl_vlan_pcp=6
1118 0000 0058 00000000 000003f9 dnl
1119 000000000000ffffffffffff 000000000000ffffffffffff dnl
1120 000a 06 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1121 00000000 00 000000 0000000000000000ffffffffffffffff
1124 0000 0058 00000000 000003f7 dnl
1125 000000000000ffffffffffff 000000000000ffffffffffff dnl
1126 0000 00 00 1234 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1127 00000000 00 000000 0000000000000000ffffffffffffffff
1130 0000 0058 00000000 000003e7 dnl
1131 000000000000ffffffffffff 000000000000ffffffffffff dnl
1132 0000 00 00 0800 fc 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1133 00000000 00 000000 0000000000000000ffffffffffffffff
1135 dnl Try invalid TOS:
1136 # bad ofp11_match: OFPBMC_BAD_VALUE
1137 0000 0058 00000000 000003e7 dnl
1138 000000000000ffffffffffff 000000000000ffffffffffff dnl
1139 0000 00 00 0800 01 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1140 00000000 00 000000 0000000000000000ffffffffffffffff
1143 0000 0058 00000000 000003d7 dnl
1144 000000000000ffffffffffff 000000000000ffffffffffff dnl
1145 0000 00 00 0800 00 05 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1146 00000000 00 000000 0000000000000000ffffffffffffffff
1149 0000 0058 00000000 000003d7 dnl
1150 000000000000ffffffffffff 000000000000ffffffffffff dnl
1151 0000 00 00 0806 00 02 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1152 00000000 00 000000 0000000000000000ffffffffffffffff
1154 # ip,nw_src=192.168.128.0/24
1155 0000 0058 00000000 000003f7 dnl
1156 000000000000ffffffffffff 000000000000ffffffffffff dnl
1157 0000 00 00 0800 00 00 c0a88000000000ff 00000000ffffffff 0000 0000 dnl
1158 00000000 00 000000 0000000000000000ffffffffffffffff
1160 # ip,nw_src=128.160.128.0/165.165.165.165
1163 0000 0058 00000000 000003f7 dnl
1164 000000000000ffffffffffff 000000000000ffffffffffff dnl
1165 0000 00 00 0800 00 00 c0a880005a5a5a5a 00000000ffffffff 0000 0000 dnl
1166 00000000 00 000000 0000000000000000ffffffffffffffff
1168 # ip,nw_dst=192.168.128.0/24
1169 0000 0058 00000000 000003f7 dnl
1170 000000000000ffffffffffff 000000000000ffffffffffff dnl
1171 0000 00 00 0800 00 00 00000000ffffffff c0a88000000000ff 0000 0000 dnl
1172 00000000 00 000000 0000000000000000ffffffffffffffff
1174 # ip,nw_dst=128.160.128.0/165.165.165.165
1177 0000 0058 00000000 000003f7 dnl
1178 000000000000ffffffffffff 000000000000ffffffffffff dnl
1179 0000 00 00 0800 00 00 00000000ffffffff c0a880005a5a5a5a 0000 0000 dnl
1180 00000000 00 000000 0000000000000000ffffffffffffffff
1182 # arp,arp_spa=192.168.128.0/24
1183 0000 0058 00000000 000003f7 dnl
1184 000000000000ffffffffffff 000000000000ffffffffffff dnl
1185 0000 00 00 0806 00 00 c0a88000000000ff 00000000ffffffff 0000 0000 dnl
1186 00000000 00 000000 0000000000000000ffffffffffffffff
1188 # arp,arp_tpa=192.168.128.0/24
1189 0000 0058 00000000 000003f7 dnl
1190 000000000000ffffffffffff 000000000000ffffffffffff dnl
1191 0000 00 00 0806 00 00 00000000ffffffff c0a88000000000ff 0000 0000 dnl
1192 00000000 00 000000 0000000000000000ffffffffffffffff
1195 0000 0058 00000000 00000397 dnl
1196 000000000000ffffffffffff 000000000000ffffffffffff dnl
1197 0000 00 00 0800 00 06 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
1198 00000000 00 000000 0000000000000000ffffffffffffffff
1201 0000 0058 00000000 00000357 dnl
1202 000000000000ffffffffffff 000000000000ffffffffffff dnl
1203 0000 00 00 0800 00 06 00000000ffffffff 00000000ffffffff 0000 01bb dnl
1204 00000000 00 000000 0000000000000000ffffffffffffffff
1207 0000 0058 00000000 00000397 dnl
1208 000000000000ffffffffffff 000000000000ffffffffffff dnl
1209 0000 00 00 0800 00 11 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
1210 00000000 00 000000 0000000000000000ffffffffffffffff
1213 0000 0058 00000000 00000397 dnl
1214 000000000000ffffffffffff 000000000000ffffffffffff dnl
1215 0000 00 00 0800 00 01 00000000ffffffff 00000000ffffffff 0005 0000 dnl
1216 00000000 00 000000 0000000000000000ffffffffffffffff
1219 0000 0058 00000000 00000357 dnl
1220 000000000000ffffffffffff 000000000000ffffffffffff dnl
1221 0000 00 00 0800 00 01 00000000ffffffff 00000000ffffffff 0000 0008 dnl
1222 00000000 00 000000 0000000000000000ffffffffffffffff
1225 0000 0058 00000000 00000397 dnl
1226 000000000000ffffffffffff 000000000000ffffffffffff dnl
1227 0000 00 00 0800 00 11 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
1228 00000000 00 000000 0000000000000000ffffffffffffffff
1231 0000 0058 00000000 00000357 dnl
1232 000000000000ffffffffffff 000000000000ffffffffffff dnl
1233 0000 00 00 0800 00 11 00000000ffffffff 00000000ffffffff 0000 01bb dnl
1234 00000000 00 000000 0000000000000000ffffffffffffffff
1238 0000 0058 00000000 000003d7 dnl
1239 000000000000ffffffffffff 000000000000ffffffffffff dnl
1240 0000 00 00 0800 00 84 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1241 00000000 00 000000 0000000000000000ffffffffffffffff
1243 dnl SCTP tp_src matching not supported:
1244 # bad ofp11_match: OFPBMC_BAD_FIELD
1245 0000 0058 00000000 00000397 dnl
1246 000000000000ffffffffffff 000000000000ffffffffffff dnl
1247 0000 00 00 0800 00 84 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
1248 00000000 00 000000 0000000000000000ffffffffffffffff
1250 dnl SCTP tp_dst matching not supported:
1251 # bad ofp11_match: OFPBMC_BAD_FIELD
1252 0000 0058 00000000 00000357 dnl
1253 000000000000ffffffffffff 000000000000ffffffffffff dnl
1254 0000 00 00 0800 00 84 00000000ffffffff 00000000ffffffff 0000 01bb dnl
1255 00000000 00 000000 0000000000000000ffffffffffffffff
1257 dnl Ignore tp_src if not TCP or UDP or SCTP:
1262 0000 0058 00000000 00000397 dnl
1263 000000000000ffffffffffff 000000000000ffffffffffff dnl
1264 0000 00 00 0800 00 15 00000000ffffffff 00000000ffffffff 01bb 0000 dnl
1265 00000000 00 000000 0000000000000000ffffffffffffffff
1267 dnl Ignore tp_dst if not TCP or UDP or SCTP:
1272 0000 0058 00000000 00000357 dnl
1273 000000000000ffffffffffff 000000000000ffffffffffff dnl
1274 0000 00 00 0800 00 16 00000000ffffffff 00000000ffffffff 0000 01bb dnl
1275 00000000 00 000000 0000000000000000ffffffffffffffff
1277 dnl mpls_label not yet supported:
1278 # bad ofp11_match: OFPBMC_BAD_TAG
1279 0000 0058 00000000 000002f7 dnl
1280 000000000000ffffffffffff 000000000000ffffffffffff dnl
1281 0000 00 00 8847 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1282 12345678 00 000000 0000000000000000ffffffffffffffff
1284 dnl mpls_tc not yet supported:
1285 # bad ofp11_match: OFPBMC_BAD_TAG
1286 0000 0058 00000000 000001f7 dnl
1287 000000000000ffffffffffff 000000000000ffffffffffff dnl
1288 0000 00 00 8848 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1289 00000000 5a 000000 0000000000000000ffffffffffffffff
1291 dnl mpls_label and mpls_tc must be ignored if dl_type is not MPLS:
1299 0000 0058 00000000 000000f7 dnl
1300 000000000000ffffffffffff 000000000000ffffffffffff dnl
1301 0000 00 00 1234 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1302 12345678 5a 000000 0000000000000000ffffffffffffffff
1305 # metadata=0x1234567890abcdef
1306 0000 0058 00000000 000003ff dnl
1307 000000000000ffffffffffff 000000000000ffffffffffff dnl
1308 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1309 00000000 00 000000 1234567890abcdef0000000000000000
1312 # metadata=0x5555555555555555/0x5555555555555555
1313 0000 0058 00000000 000003ff dnl
1314 000000000000ffffffffffff 000000000000ffffffffffff dnl
1315 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1316 00000000 00 000000 5555555555555555aaaaaaaaaaaaaaaa
1319 # metadata=0x1234000090ab0000/0xffff0000ffff0000
1324 0000 0058 00000000 000003ff dnl
1325 000000000000ffffffffffff 000000000000ffffffffffff dnl
1326 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
1327 00000000 00 000000 1234567890abcdef0000ffff0000ffff
1330 sed '/^[[#&]]/d' < test-data > input.txt
1331 sed -n 's/^# //p; /^$/p' < test-data > expout
1332 sed -n 's/^& //p' < test-data > experr
1333 AT_CAPTURE_FILE([input.txt])
1334 AT_CAPTURE_FILE([expout])
1335 AT_CAPTURE_FILE([experr])
1337 [ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-ofp11-match < input.txt],
1338 [0], [expout], [experr])
1341 AT_SETUP([ovs-ofctl parse-nx-match loose])
1342 AT_KEYWORDS([nx-match])
1343 AT_DATA([nx-match.txt], [dnl
1344 NXM_OF_IN_PORT(0001), 01020304(1111/2222), NXM_OF_ETH_TYPE(0800)
1347 AT_CHECK([ovs-ofctl --strict parse-nx-match < nx-match.txt], [0], [dnl
1348 nx_pull_match() returned error OFPBMC_BAD_FIELD
1351 AT_CHECK([ovs-ofctl parse-nx-match < nx-match.txt], [0], [dnl
1352 NXM_OF_IN_PORT(0001), NXM_OF_ETH_TYPE(0800)
1356 AT_SETUP([ovs-ofctl parse-oxm])
1358 AT_DATA([oxm.txt], [dnl
1362 OXM_OF_IN_PORT(00000000)
1363 OXM_OF_IN_PORT(fffffffe)
1366 OXM_OF_METADATA(5a5a5a5a5a5a5a5a)
1367 OXM_OF_METADATA_W(0000000000000000/00000000ffffffff)
1368 OXM_OF_METADATA_W(1234567890abcdef/ffff0000ffff0000)
1369 OXM_OF_METADATA_W(1234567890abcdef/ffffffffffffffff)
1370 OXM_OF_METADATA_W(1234567890abcdef/0000000000000000)
1373 OXM_OF_ETH_DST(0002e30f80a4)
1374 OXM_OF_ETH_DST_W(010000000000/010000000000)
1375 OXM_OF_ETH_DST_W(000000000000/010000000000)
1376 OXM_OF_ETH_DST_W(ffffffffffff/010000000000)
1377 OXM_OF_ETH_DST_W(0002e30f80a4/ffffffffffff)
1378 OXM_OF_ETH_DST_W(0002e30f80a4/000000000000)
1379 OXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
1382 OXM_OF_ETH_SRC(020898456ddb)
1385 OXM_OF_ETH_TYPE(0800)
1386 OXM_OF_ETH_TYPE(0800) OXM_OF_IN_PORT(00000012)
1389 OXM_OF_VLAN_VID(1009) OXM_OF_VLAN_VID(1009) # Duplicate Field
1390 OXM_OF_VLAN_VID(f009) # Bad Value
1391 OXM_OF_VLAN_PCP(00) # Bad Pre-Requisite
1392 OXM_OF_VLAN_VID(0000) # Packets without 802.1Q header or with VID=0
1393 OXM_OF_VLAN_VID(1123) # Packets with VID=123, any PCP
1394 OXM_OF_VLAN_VID(1123) OXM_OF_VLAN_PCP(01) # Packets with VID=123, PCP=1.
1395 OXM_OF_VLAN_VID(0123) # Does not make sense (but supported anyway)
1396 OXM_OF_VLAN_VID_W(0123/0123) # Does not make sense (but supported anyway)
1397 OXM_OF_VLAN_VID_W(1123/0123) # Does not make sense (but supported anyway)
1398 OXM_OF_VLAN_VID_W(0123/1123) # Does not make sense (but supported anyway)
1399 OXM_OF_VLAN_VID(0123) OXM_OF_VLAN_PCP(01) #Bad Pre-Requisite
1400 OXM_OF_VLAN_VID_W(1123/1fff) # Packets with VID=123, any PCP.
1401 OXM_OF_VLAN_VID_W(1123/ffff) # Packets with VID=123, any PCP.
1402 OXM_OF_VLAN_VID_W(1123/0000) # Packets with or without 802.1Q header
1403 OXM_OF_VLAN_VID_W(1123/1f0f), # Packets with # VID=123 (masked)
1404 OXM_OF_VLAN_VID_W(1123/1f0f), OXM_OF_VLAN_PCP(01) # Packets with VID=123 (masked), any PCP.
1405 OXM_OF_VLAN_VID_W(1000/1000) # Packets with any VID, any PCP
1406 OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(01) # Packets with any VID, PCP=1.
1409 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_ECN(03)
1410 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_ECN(06)
1414 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01)
1415 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(05)
1419 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC(ac100014)
1420 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC_W(C0a80000/FFFF0000)
1421 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC_W(C0a80000/FFFFFFFF)
1422 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC_W(C0a80000/00000000)
1423 OXM_OF_ETH_TYPE(0806) OXM_OF_IPV4_SRC(ac100014)
1424 OXM_OF_IPV4_SRC_W(C0D80000/FFFF0000)
1427 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST(ac100014)
1428 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST_W(C0a88012/FFFF0000)
1429 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST_W(C0a88012/FFFFFFFF)
1430 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST_W(C0a88012/00000000)
1431 OXM_OF_IPV4_DST(ac100014)
1432 OXM_OF_ETH_TYPE(0806) OXM_OF_IPV4_DST_W(C0D80000/FFFF0000)
1435 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC(4231)
1436 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC_W(5050/F0F0)
1437 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC_W(5050/FFFF)
1438 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC_W(5050/0000)
1439 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(07) OXM_OF_TCP_SRC(4231)
1441 # TCP destination port
1442 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST(4231)
1443 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST_W(FDE0/FFF0)
1444 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST_W(FDE0/FFFF)
1445 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST_W(FDE0/0000)
1446 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(07) OXM_OF_TCP_DST(4231)
1449 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC(8732)
1450 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC_W(0132/01FF)
1451 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC_W(0132/FFFF)
1452 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC_W(0132/0000)
1453 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_UDP_SRC(7823)
1455 # UDP destination port
1456 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST(1782)
1457 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST_W(5005/F00F)
1458 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST_W(5005/FFFF)
1459 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST_W(5005/0000)
1460 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(02) OXM_OF_UDP_DST(1293)
1463 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01) OXM_OF_ICMPV4_TYPE(12)
1464 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(00) OXM_OF_ICMPV4_TYPE(10)
1467 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01) OXM_OF_ICMPV4_CODE(12)
1468 OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(00) OXM_OF_ICMPV4_CODE(10)
1469 OXM_OF_ETH_TYPE(0800) OXM_OF_ICMPV4_CODE(10)
1470 OXM_OF_ICMPV4_CODE(00)
1473 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(0001)
1474 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(1111)
1475 OXM_OF_ETH_TYPE(0000) OXM_OF_ARP_OP(0001)
1477 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(0001) OXM_OF_ARP_OP(0001)
1479 # ARP source protocol address
1480 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA(ac100014)
1481 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA_W(C0a81234/FFFFFF00)
1482 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA_W(C0a81234/FFFFFFFF)
1483 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA_W(C0a81234/00000000)
1484 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_SPA(ac100014)
1485 OXM_OF_ARP_SPA_W(C0D8fedc/FFFF0000)
1487 # ARP destination protocol address
1488 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA(ac100014)
1489 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA_W(C0a812fe/FFFFFF00)
1490 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA_W(C0a812fe/FFFFFFFF)
1491 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA_W(C0a812fe/00000000)
1492 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_TPA(ac100014)
1493 OXM_OF_ARP_TPA_W(C0D80000/FFFF0000)
1495 # ARP source hardware address
1496 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA(0002e30f80a4)
1497 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_SHA(0002e30f80a4)
1498 OXM_OF_ARP_SHA(0002e30f80a4)
1499 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA_W(0002e30f80a4/ffffffffffff)
1500 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA_W(0002e30f80a4/000000000000)
1501 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA_W(0002e30f80a4/00000000000f)
1503 # ARP destination hardware address
1504 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA(0002e30f80a4)
1505 OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_THA(0002e30f80a4)
1506 OXM_OF_ARP_THA(0002e30f80a4)
1507 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA_W(0002e30f80a4/ffffffffffff)
1508 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA_W(0002e30f80a4/000000000000)
1509 OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA_W(0002e30f80a4/00000000000f)
1512 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
1513 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
1514 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1515 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
1516 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/00000000000000000000000000000000)
1517 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1520 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
1521 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
1522 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1523 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
1524 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/00000000000000000000000000000000)
1525 OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1528 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL(1000000f)
1529 OXM_OF_IPV6_FLABEL(0000000f)
1530 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL(0000000f)
1531 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/0000000f)
1532 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/000fffff)
1533 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/000ffff0)
1534 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/100fffff)
1535 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/ffffffff)
1536 OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/00000000)
1538 # ND source hardware address
1539 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)
1540 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)
1541 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)
1542 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)
1544 # ND destination hardware address
1545 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)
1546 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)
1547 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)
1548 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)
1550 # Invalid field number.
1553 AT_CHECK([ovs-ofctl --strict parse-oxm < oxm.txt], [0], [dnl
1557 OXM_OF_IN_PORT(00000000)
1558 OXM_OF_IN_PORT(fffffffe)
1561 OXM_OF_METADATA(5a5a5a5a5a5a5a5a)
1562 OXM_OF_METADATA_W(0000000000000000/00000000ffffffff)
1563 OXM_OF_METADATA_W(1234000090ab0000/ffff0000ffff0000)
1564 OXM_OF_METADATA(1234567890abcdef)
1568 OXM_OF_ETH_DST(0002e30f80a4)
1569 OXM_OF_ETH_DST_W(010000000000/010000000000)
1570 OXM_OF_ETH_DST_W(000000000000/010000000000)
1571 OXM_OF_ETH_DST_W(010000000000/010000000000)
1572 OXM_OF_ETH_DST(0002e30f80a4)
1574 OXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
1577 OXM_OF_ETH_SRC(020898456ddb)
1580 OXM_OF_ETH_TYPE(0800)
1581 OXM_OF_IN_PORT(00000012), OXM_OF_ETH_TYPE(0800)
1584 nx_pull_match() returned error OFPBMC_DUP_FIELD
1585 nx_pull_match() returned error OFPBMC_BAD_VALUE
1586 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1587 OXM_OF_VLAN_VID(0000)
1588 OXM_OF_VLAN_VID(1123)
1589 OXM_OF_VLAN_VID(1123), OXM_OF_VLAN_PCP(01)
1590 OXM_OF_VLAN_VID(0123)
1591 OXM_OF_VLAN_VID_W(0123/0123)
1592 OXM_OF_VLAN_VID_W(0123/0123)
1593 OXM_OF_VLAN_VID_W(0123/1123)
1594 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1595 OXM_OF_VLAN_VID(1123)
1596 OXM_OF_VLAN_VID(1123)
1598 OXM_OF_VLAN_VID_W(1103/1f0f)
1599 OXM_OF_VLAN_VID_W(1103/1f0f), OXM_OF_VLAN_PCP(01)
1600 OXM_OF_VLAN_VID_W(1000/1000)
1601 OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(01)
1604 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_ECN(03)
1605 nx_pull_match() returned error OFPBMC_BAD_VALUE
1606 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1609 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01)
1610 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(05)
1611 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1614 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_SRC(ac100014)
1615 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_SRC_W(c0a80000/ffff0000)
1616 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_SRC(c0a80000)
1617 OXM_OF_ETH_TYPE(0800)
1618 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1619 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1622 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_DST(ac100014)
1623 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_DST_W(c0a80000/ffff0000)
1624 OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_DST(c0a88012)
1625 OXM_OF_ETH_TYPE(0800)
1626 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1627 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1630 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_SRC(4231)
1631 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_SRC_W(5050/f0f0)
1632 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_SRC(5050)
1633 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06)
1634 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1636 # TCP destination port
1637 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_DST(4231)
1638 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_DST_W(fde0/fff0)
1639 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_DST(fde0)
1640 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06)
1641 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1644 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_SRC(8732)
1645 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_SRC_W(0132/01ff)
1646 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_SRC(0132)
1647 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11)
1648 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1650 # UDP destination port
1651 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_DST(1782)
1652 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_DST_W(5005/f00f)
1653 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_DST(5005)
1654 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11)
1655 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1658 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01), OXM_OF_ICMPV4_TYPE(12)
1659 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1662 OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01), OXM_OF_ICMPV4_CODE(12)
1663 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1664 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1665 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1668 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_OP(0001)
1669 nx_pull_match() returned error OFPBMC_BAD_VALUE
1670 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1671 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1672 nx_pull_match() returned error OFPBMC_DUP_FIELD
1674 # ARP source protocol address
1675 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SPA(ac100014)
1676 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SPA_W(c0a81200/ffffff00)
1677 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SPA(c0a81234)
1678 OXM_OF_ETH_TYPE(0806)
1679 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1680 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1682 # ARP destination protocol address
1683 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_TPA(ac100014)
1684 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_TPA_W(c0a81200/ffffff00)
1685 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_TPA(c0a812fe)
1686 OXM_OF_ETH_TYPE(0806)
1687 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1688 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1690 # ARP source hardware address
1691 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SHA(0002e30f80a4)
1692 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1693 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1694 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SHA(0002e30f80a4)
1695 OXM_OF_ETH_TYPE(0806)
1696 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SHA_W(000000000004/00000000000f)
1698 # ARP destination hardware address
1699 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_THA(0002e30f80a4)
1700 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1701 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1702 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_THA(0002e30f80a4)
1703 OXM_OF_ETH_TYPE(0806)
1704 OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_THA_W(000000000004/00000000000f)
1707 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
1708 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1709 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1710 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_SRC(20010db83c4d00010000000000000000)
1711 OXM_OF_ETH_TYPE(86dd)
1712 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1715 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
1716 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1717 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
1718 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_DST(20010db83c4d00010000000000000000)
1719 OXM_OF_ETH_TYPE(86dd)
1720 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1723 nx_pull_match() returned error OFPBMC_BAD_VALUE
1724 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1725 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
1726 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL_W(0000000f/0000000f)
1727 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
1728 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL_W(00000000/000ffff0)
1729 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
1730 OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
1731 OXM_OF_ETH_TYPE(86dd)
1733 # ND source hardware address
1734 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)
1735 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1736 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1737 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1739 # ND destination hardware address
1740 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)
1741 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1742 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1743 nx_pull_match() returned error OFPBMC_BAD_PREREQ
1745 # Invalid field number.
1746 nx_pull_match() returned error OFPBMC_BAD_FIELD
1750 AT_SETUP([ovs-ofctl parse-oxm loose])
1752 AT_DATA([oxm.txt], [dnl
1753 OXM_OF_IN_PORT(00000001), 01020304(1111/2222), OXM_OF_ETH_TYPE(0800)
1756 AT_CHECK([ovs-ofctl --strict parse-oxm < oxm.txt], [0], [dnl
1757 nx_pull_match() returned error OFPBMC_BAD_FIELD
1760 AT_CHECK([ovs-ofctl parse-oxm < oxm.txt], [0], [dnl
1761 OXM_OF_IN_PORT(00000001), OXM_OF_ETH_TYPE(0800)
1765 dnl Check all of the patterns mentioned in the "VLAN Matching" section
1766 dnl in the DESIGN file at top level.
1767 AT_SETUP([ovs-ofctl check-vlan])
1771 AT_CHECK([ovs-ofctl check-vlan 0000 0000], [0], [dnl
1773 NXM: <any> -> 0000/0000
1774 OXM: <any> -> 0000/0000,--
1775 OF1.0: 0000/1,00/1 -> 0000/0000
1776 OF1.1: 0000/1,00/1 -> 0000/0000
1780 AT_CHECK([ovs-ofctl check-vlan 0000 ffff], [0], [dnl
1781 vlan_tci=0x0000 -> 0000/ffff
1782 NXM: NXM_OF_VLAN_TCI(0000) -> 0000/ffff
1783 OXM: OXM_OF_VLAN_VID(0000) -> 0000/1fff,--
1784 OF1.0: ffff/0,00/1 -> 0000/ffff
1785 OF1.1: ffff/0,00/1 -> 0000/ffff
1789 AT_CHECK([ovs-ofctl check-vlan 1abc 1fff], [0], [dnl
1790 dl_vlan=2748 -> 1abc/1fff
1791 NXM: NXM_OF_VLAN_TCI_W(1abc/1fff) -> 1abc/1fff
1792 OXM: OXM_OF_VLAN_VID(1abc) -> 1abc/1fff,--
1793 OF1.0: 0abc/0,00/1 -> 1abc/1fff
1794 OF1.1: 0abc/0,00/1 -> 1abc/1fff
1798 AT_CHECK([ovs-ofctl check-vlan b000 f000], [0], [dnl
1799 dl_vlan_pcp=5 -> b000/f000
1800 NXM: NXM_OF_VLAN_TCI_W(b000/f000) -> b000/f000
1801 OXM: OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(05) -> 1000/1000,05
1802 OF1.0: 0000/1,05/0 -> b000/f000
1803 OF1.1: fffe/0,05/0 -> b000/f000
1807 AT_CHECK([ovs-ofctl check-vlan babc ffff], [0], [dnl
1808 dl_vlan=2748,dl_vlan_pcp=5 -> babc/ffff
1809 NXM: NXM_OF_VLAN_TCI(babc) -> babc/ffff
1810 OXM: OXM_OF_VLAN_VID(1abc), OXM_OF_VLAN_PCP(05) -> 1abc/1fff,05
1811 OF1.0: 0abc/0,05/0 -> babc/ffff
1812 OF1.1: 0abc/0,05/0 -> babc/ffff
1816 AT_CHECK([ovs-ofctl check-vlan 0000 0fff], [0], [dnl
1817 vlan_tci=0x0000/0x0fff -> 0000/0fff
1818 NXM: NXM_OF_VLAN_TCI_W(0000/0fff) -> 0000/0fff
1819 OXM: OXM_OF_VLAN_VID_W(0000/0fff) -> 0000/0fff,--
1820 OF1.0: 0000/0,00/1 -> 1000/1fff
1821 OF1.1: 0000/0,00/1 -> 1000/1fff
1825 AT_CHECK([ovs-ofctl check-vlan 0000 f000], [0], [dnl
1826 vlan_tci=0x0000/0xf000 -> 0000/f000
1827 NXM: NXM_OF_VLAN_TCI_W(0000/f000) -> 0000/f000
1828 OXM: OXM_OF_VLAN_VID_W(0000/1000) -> 0000/1000,--
1829 OF1.0: ffff/0,00/1 -> 0000/ffff
1830 OF1.1: ffff/0,00/1 -> 0000/ffff
1834 AT_CHECK([ovs-ofctl check-vlan 0000 efff], [0], [dnl
1835 vlan_tci=0x0000/0xefff -> 0000/efff
1836 NXM: NXM_OF_VLAN_TCI_W(0000/efff) -> 0000/efff
1837 OXM: OXM_OF_VLAN_VID_W(0000/0fff) -> 0000/0fff,--
1838 OF1.0: 0000/0,00/0 -> 1000/ffff
1839 OF1.1: 0000/0,00/0 -> 1000/ffff
1843 AT_CHECK([ovs-ofctl check-vlan 1001 1001], [0], [dnl
1844 vlan_tci=0x1001/0x1001 -> 1001/1001
1845 NXM: NXM_OF_VLAN_TCI_W(1001/1001) -> 1001/1001
1846 OXM: OXM_OF_VLAN_VID_W(1001/1001) -> 1001/1001,--
1847 OF1.0: 0001/0,00/1 -> 1001/1fff
1848 OF1.1: 0001/0,00/1 -> 1001/1fff
1852 AT_CHECK([ovs-ofctl check-vlan 3000 3000], [0], [dnl
1853 vlan_tci=0x3000/0x3000 -> 3000/3000
1854 NXM: NXM_OF_VLAN_TCI_W(3000/3000) -> 3000/3000
1855 OXM: OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(01) -> 1000/1000,01
1856 OF1.0: 0000/1,01/0 -> 3000/f000
1857 OF1.1: fffe/0,01/0 -> 3000/f000
1862 dnl Check that "-F openflow10" rejects a flow_mod with unsupported features,
1863 dnl such as tunnels and metadata.
1864 AT_SETUP([ovs-ofctl -F option and NXM features])
1865 AT_CHECK([ovs-ofctl -F openflow10 add-flow dummy tun_id=123,actions=drop],
1866 [1], [], [ovs-ofctl: none of the usable flow formats (NXM,OXM) is among the allowed flow formats (OpenFlow10)
1868 AT_CHECK([ovs-ofctl -F openflow10 add-flow dummy metadata=123,actions=drop],
1869 [1], [], [ovs-ofctl: none of the usable flow formats (NXM,OXM) is among the allowed flow formats (OpenFlow10)
1873 dnl Check that "-F nxm" really forces add-flow to use the NXM flow format.
1874 dnl (If it doesn't, then either the tun_id won't show up at all, or it will
1875 dnl additionally show up as the top 32 bits of the cookie.) This checks
1876 dnl for regression against bug #4566.
1877 AT_SETUP([ovs-ofctl -F option with flow_mods])
1879 AT_CHECK([ovs-ofctl -F nxm add-flow br0 tun_id=0x12345678,actions=drop])
1880 AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip], [0], [dnl
1882 tun_id=0x12345678 actions=drop
1887 dnl Check that "-F openflow10" is really honored on dump-flows.
1888 dnl (If it isn't, then dump-flows will show the register match.)
1889 AT_SETUP([ovs-ofctl dump-flows honors -F option])
1891 AT_CHECK([ovs-ofctl add-flow br0 reg0=0x12345,actions=drop])
1892 AT_CHECK([ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip], [0], [dnl
1899 dnl Check that "-F openflow10" fails on dump-flows if the requested match
1900 dnl can't be represented in OpenFlow 1.0.
1901 AT_SETUP([ovs-ofctl dump-flows rejects bad -F option])
1903 AT_CHECK([ovs-ofctl -F openflow10 dump-flows unix:br0.mgmt reg0=0xabcdef], [1], [],
1904 [ovs-ofctl: none of the usable flow formats (NXM,OXM) is among the allowed flow formats (OpenFlow10)
1909 dnl Check that add-flow reports non-normalized flows (feature #5029).
1910 AT_SETUP([ovs-ofctl add-flow reports non-normalized flows])
1912 AT_CHECK([ovs-ofctl TESTABLE_LOG add-flow br0 nw_src=1.2.3.4,actions=5],
1914 ofp_util|INFO|normalization changed ofp_match, details:
1915 ofp_util|INFO| pre: nw_src=1.2.3.4
1916 ofp_util|INFO|post: @&t@
1921 dnl Check that --sort and --rsort works with dump-flows
1922 dnl Default field is 'priority'. Flow entries are displayed based
1923 dnl on field to sort.
1924 AT_SETUP([ovs-ofctl dump-flows with sorting])
1927 AT_DATA([allflows.txt], [[
1928 priority=4,in_port=23213 actions=output:42
1929 priority=5,in_port=1029 actions=output:43
1930 priority=7,in_port=1029 actions=output:43
1931 priority=3,in_port=1028 actions=output:44
1932 priority=1,in_port=1026 actions=output:45
1933 priority=6,in_port=1027 actions=output:64
1934 priority=2,in_port=1025 actions=output:47
1935 priority=8,tcp,tp_src=5 actions=drop
1936 priority=9,tcp,tp_src=6 actions=drop
1939 AT_CHECK([ovs-ofctl add-flows br0 allflows.txt
1941 AT_CHECK([ovs-ofctl --sort dump-flows br0 | ofctl_strip], [0], [dnl
1942 priority=1,in_port=1026 actions=output:45
1943 priority=2,in_port=1025 actions=output:47
1944 priority=3,in_port=1028 actions=output:44
1945 priority=4,in_port=23213 actions=output:42
1946 priority=5,in_port=1029 actions=output:43
1947 priority=6,in_port=1027 actions=output:64
1948 priority=7,in_port=1029 actions=output:43
1949 priority=8,tcp,tp_src=5 actions=drop
1950 priority=9,tcp,tp_src=6 actions=drop
1952 AT_CHECK([ovs-ofctl --rsort dump-flows br0 | ofctl_strip], [0], [dnl
1953 priority=9,tcp,tp_src=6 actions=drop
1954 priority=8,tcp,tp_src=5 actions=drop
1955 priority=7,in_port=1029 actions=output:43
1956 priority=6,in_port=1027 actions=output:64
1957 priority=5,in_port=1029 actions=output:43
1958 priority=4,in_port=23213 actions=output:42
1959 priority=3,in_port=1028 actions=output:44
1960 priority=2,in_port=1025 actions=output:47
1961 priority=1,in_port=1026 actions=output:45
1963 AT_CHECK([ovs-ofctl --sort=in_port dump-flows br0 | ofctl_strip], [0], [dnl
1964 priority=2,in_port=1025 actions=output:47
1965 priority=1,in_port=1026 actions=output:45
1966 priority=6,in_port=1027 actions=output:64
1967 priority=3,in_port=1028 actions=output:44
1968 priority=7,in_port=1029 actions=output:43
1969 priority=5,in_port=1029 actions=output:43
1970 priority=4,in_port=23213 actions=output:42
1971 priority=9,tcp,tp_src=6 actions=drop
1972 priority=8,tcp,tp_src=5 actions=drop
1974 AT_CHECK([ovs-ofctl --rsort=in_port dump-flows br0 | ofctl_strip], [0], [dnl
1975 priority=4,in_port=23213 actions=output:42
1976 priority=7,in_port=1029 actions=output:43
1977 priority=5,in_port=1029 actions=output:43
1978 priority=3,in_port=1028 actions=output:44
1979 priority=6,in_port=1027 actions=output:64
1980 priority=1,in_port=1026 actions=output:45
1981 priority=2,in_port=1025 actions=output:47
1982 priority=9,tcp,tp_src=6 actions=drop
1983 priority=8,tcp,tp_src=5 actions=drop
1985 AT_CHECK([ovs-ofctl --sort=tcp_src dump-flows br0 | ofctl_strip], [0], [dnl
1986 priority=8,tcp,tp_src=5 actions=drop
1987 priority=9,tcp,tp_src=6 actions=drop
1988 priority=7,in_port=1029 actions=output:43
1989 priority=6,in_port=1027 actions=output:64
1990 priority=5,in_port=1029 actions=output:43
1991 priority=4,in_port=23213 actions=output:42
1992 priority=3,in_port=1028 actions=output:44
1993 priority=2,in_port=1025 actions=output:47
1994 priority=1,in_port=1026 actions=output:45
1997 [ovs-ofctl --sort=in_port --sort=tcp_src dump-flows br0 | ofctl_strip], [0],
1998 [ priority=2,in_port=1025 actions=output:47
1999 priority=1,in_port=1026 actions=output:45
2000 priority=6,in_port=1027 actions=output:64
2001 priority=3,in_port=1028 actions=output:44
2002 priority=7,in_port=1029 actions=output:43
2003 priority=5,in_port=1029 actions=output:43
2004 priority=4,in_port=23213 actions=output:42
2005 priority=8,tcp,tp_src=5 actions=drop
2006 priority=9,tcp,tp_src=6 actions=drop
2011 AT_SETUP([ovs-ofctl diff-flows])
2014 # Add tons of flows to br0.
2015 for i in `seq 0 1023`; do echo "dl_vlan=$i,actions=drop"; done > add-flows.txt
2016 AT_CHECK([ovs-ofctl add-flows br0 add-flows.txt])
2018 # Dump them and compare against what we expect by hand, then with diff-flows.
2019 for i in `seq 0 1023`; do echo " dl_vlan=$i actions=drop"; done | sort > expout
2020 AT_CHECK([ovs-ofctl dump-flows br0 | ofctl_strip | sed '/NXST_FLOW/d' | sort],
2022 AT_CHECK([ovs-ofctl diff-flows br0 add-flows.txt])
2024 # Remove even-numbered flows, compare again.
2025 for i in `seq 0 1023 2`; do echo "dl_vlan=$i"; done > del-flows.txt
2026 AT_CHECK([ovs-ofctl del-flows br0 - < del-flows.txt])
2027 for i in `seq 0 1023 2`; do echo "+dl_vlan=$i actions=drop"; done | sort > expout
2028 AT_CHECK([ovs-ofctl diff-flows br0 add-flows.txt | sort], [0], [expout])
2029 for i in `seq 0 1023 2`; do echo "-dl_vlan=$i actions=drop"; done | sort > expout
2030 AT_CHECK([ovs-ofctl diff-flows add-flows.txt br0 | sort], [0], [expout])
2035 dnl ofpacts that differ bytewise don't necessarily differ when
2036 dnl converted to another representation, such as OpenFlow 1.0
2037 dnl or to a string. "resubmit(,1)" is an example of an action
2038 dnl of this type: "ofpact_resubmit"s can differ in their "compat"
2039 dnl values even though this doesn't affect the string format.
2041 dnl This test checks that "ovs-ofctl diff-flows" doesn't report
2042 dnl false ofpacts differences.
2043 AT_SETUP([ovs-ofctl diff-flows - suppress false differences])
2045 AT_DATA([flows.txt], [actions=resubmit(,1)
2047 AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
2048 AT_CHECK([ovs-ofctl diff-flows br0 flows.txt])
2049 AT_CHECK([ovs-ofctl add-flow br0 idle_timeout=60,dl_vlan=9,actions=output:1])
2050 AT_CHECK([ovs-ofctl diff-flows br0 flows.txt], [2], [dnl
2051 -dl_vlan=9 idle_timeout=60 actions=output:1
2053 AT_CHECK([ovs-ofctl add-flow br0 hard_timeout=120,cookie=1234,dl_vlan=9,actions=output:1])
2054 AT_CHECK([ovs-ofctl diff-flows flows.txt br0], [2], [dnl
2055 +dl_vlan=9 cookie=0x4d2 hard_timeout=120 actions=output:1