Max level shown:
1 
2 CLOT Allocation (ingress):
3 +------+-------------------------------------------------+---------------+----------+
4 | CLOT | Fields | Bits | Property |
5 +------+-------------------------------------------------+---------------+----------+
6 | 0 | state ingress::parse_arp | 28 bytes | |
7 | | | | |
8 | | ingress::hdr.arp.hw_type | 16 [0..15] | |
9 | | ingress::hdr.arp.proto_type | 16 [16..31] | |
10 | | ingress::hdr.arp.hw_addr_len | 8 [32..39] | |
11 | | ingress::hdr.arp.proto_addr_len | 8 [40..47] | |
12 | | ingress::hdr.arp.opcode | 16 [48..63] | |
13 | | ingress::hdr.arp.sender_mac | 48 [64..111] | |
14 | | ingress::hdr.arp.sender_ip | 32 [112..143] | |
15 | | ingress::hdr.arp.target_mac | 48 [144..191] | |
16 | | ingress::hdr.arp.target_ip | 32 [192..223] | |
17 +------+-------------------------------------------------+---------------+----------+
18 | 1 | state ingress::parse_geneve_mss_tag | 8 bytes | |
19 | | | | |
20 | | ingress::hdr.geneve_opts.oxg_mss_tag.class | 16 [0..15] | |
21 | | ingress::hdr.geneve_opts.oxg_mss_tag.crit | 1 [16..16] | |
22 | | ingress::hdr.geneve_opts.oxg_mss_tag.type | 7 [17..23] | |
23 | | ingress::hdr.geneve_opts.oxg_mss_tag.reserved | 3 [24..26] | |
24 | | ingress::hdr.geneve_opts.oxg_mss_tag.opt_len | 5 [27..31] | |
25 | | ingress::hdr.geneve_opts.oxg_mss.mss | 32 [32..63] | |
26 +------+-------------------------------------------------+---------------+----------+
27 | 2 | state ingress::parse_geneve_mcast_tag | 8 bytes | |
28 | | | | |
29 | | ingress::hdr.geneve_opts.oxg_mcast_tag.class | 16 [0..15] | |
30 | | ingress::hdr.geneve_opts.oxg_mcast_tag.crit | 1 [16..16] | |
31 | | ingress::hdr.geneve_opts.oxg_mcast_tag.type | 7 [17..23] | |
32 | | ingress::hdr.geneve_opts.oxg_mcast_tag.reserved | 3 [24..26] | |
33 | | ingress::hdr.geneve_opts.oxg_mcast_tag.opt_len | 5 [27..31] | |
34 | | ingress::hdr.geneve_opts.oxg_mcast.mcast_tag | 2 [32..33] | |
35 | | ingress::hdr.geneve_opts.oxg_mcast.reserved | 30 [34..63] | |
36 +------+-------------------------------------------------+---------------+----------+
37 | | Total Bits | 352 | |
38 +------+-------------------------------------------------+---------------+----------+
39 
40 Packets will use up to 1 CLOTs.
41 The parser path(s) that will use the most CLOTs contain the following states:
42 ingress::parse_inner_tcp (0 CLOTs)
43 ingress::parse_inner_udp (0 CLOTs)
44 ingress::parse_inner_icmp (0 CLOTs)
45 ingress::parse_inner_ipv4 (0 CLOTs)
46 ingress::parse_inner_ipv6 (0 CLOTs)
47 ingress::parse_inner_eth (0 CLOTs)
48 ingress::geneve_parsed (0 CLOTs)
49 ingress::geneve_bad_size (0 CLOTs)
50 ingress::geneve_opt_parsed (0 CLOTs)
51 ingress::geneve_malformed (0 CLOTs)
52 ingress::parse_geneve_mcast_tag (1 CLOTs)
53 ingress::parse_geneve_mss_tag (1 CLOTs)
54 ingress::parse_geneve_ox_opt (0 CLOTs)
55 ingress::parse_geneve_opt (0 CLOTs)
56 ingress::parse_geneve (0 CLOTs)
57 ingress::parse_udp (0 CLOTs)
58 ingress::goto_proto_ipv4 (0 CLOTs)
59 ingress::set_mcast_ipv4 (0 CLOTs)
60 ingress::validate_ipv4_mcast_3 (0 CLOTs)
61 ingress::validate_ipv4_mcast1_2 (0 CLOTs)
62 ingress::validate_ttl (0 CLOTs)
63 ingress::parse_ipv4 (0 CLOTs)
64 ingress::goto_proto_ipv6 (0 CLOTs)
65 ingress::set_link_local_mcast (0 CLOTs)
66 ingress::set_mcast_ipv6 (0 CLOTs)
67 ingress::validate_hop_limit (0 CLOTs)
68 ingress::check_ipv6_mcast (0 CLOTs)
69 ingress::parse_ipv6 (0 CLOTs)
70 ingress::parse_arp (1 CLOTs)
71 ingress::parse_vlan (0 CLOTs)
72 ingress::parse_sidecar (0 CLOTs)
73 $entry_point.start (0 CLOTs)
74 
75 CLOT Allocation (egress):
76 +------+------------------------------------------------+----------------+----------+
77 | CLOT | Fields | Bits | Property |
78 +------+------------------------------------------------+----------------+----------+
79 | 0 | state egress::parse_inner_ipv6 | 40 bytes | |
80 | | | | |
81 | | egress::hdr.inner_ipv6.version | 4 [0..3] | |
82 | | egress::hdr.inner_ipv6.traffic_class | 8 [4..11] | |
83 | | egress::hdr.inner_ipv6.flow_label | 20 [12..31] | |
84 | | egress::hdr.inner_ipv6.payload_len | 16 [32..47] | |
85 | | egress::hdr.inner_ipv6.next_hdr | 8 [48..55] | |
86 | | egress::hdr.inner_ipv6.hop_limit | 8 [56..63] | |
87 | | egress::hdr.inner_ipv6.src_addr | 128 [64..191] | |
88 | | egress::hdr.inner_ipv6.dst_addr | 128 [192..319] | |
89 +------+------------------------------------------------+----------------+----------+
90 | 1 | state egress::parse_ipv6 | 40 bytes | |
91 | | | | |
92 | | egress::hdr.ipv6.version | 4 [0..3] | |
93 | | egress::hdr.ipv6.traffic_class | 8 [4..11] | |
94 | | egress::hdr.ipv6.flow_label | 20 [12..31] | |
95 | | egress::hdr.ipv6.payload_len | 16 [32..47] | |
96 | | egress::hdr.ipv6.next_hdr | 8 [48..55] | |
97 | | egress::hdr.ipv6.hop_limit | 8 [56..63] | |
98 | | egress::hdr.ipv6.src_addr | 128 [64..191] | |
99 | | egress::hdr.ipv6.dst_addr | 128 [192..319] | |
100 +------+------------------------------------------------+----------------+----------+
101 | 2 | state egress::parse_inner_tcp | 20 bytes | |
102 | | | | |
103 | | egress::hdr.inner_tcp.src_port | 16 [0..15] | |
104 | | egress::hdr.inner_tcp.dst_port | 16 [16..31] | |
105 | | egress::hdr.inner_tcp.seq_no | 32 [32..63] | |
106 | | egress::hdr.inner_tcp.ack_no | 32 [64..95] | |
107 | | egress::hdr.inner_tcp.data_offset | 4 [96..99] | |
108 | | egress::hdr.inner_tcp.res | 4 [100..103] | |
109 | | egress::hdr.inner_tcp.flags | 8 [104..111] | |
110 | | egress::hdr.inner_tcp.window | 16 [112..127] | |
111 | | egress::hdr.inner_tcp.checksum | 16 [128..143] | |
112 | | egress::hdr.inner_tcp.urgent_ptr | 16 [144..159] | |
113 +------+------------------------------------------------+----------------+----------+
114 | 3 | state egress::parse_inner_ipv4 | 20 bytes | |
115 | | | | |
116 | | egress::hdr.inner_ipv4.version | 4 [0..3] | |
117 | | egress::hdr.inner_ipv4.ihl | 4 [4..7] | |
118 | | egress::hdr.inner_ipv4.diffserv | 8 [8..15] | |
119 | | egress::hdr.inner_ipv4.total_len | 16 [16..31] | |
120 | | egress::hdr.inner_ipv4.identification | 16 [32..47] | |
121 | | egress::hdr.inner_ipv4.flags | 3 [48..50] | |
122 | | egress::hdr.inner_ipv4.frag_offset | 13 [51..63] | |
123 | | egress::hdr.inner_ipv4.ttl | 8 [64..71] | |
124 | | egress::hdr.inner_ipv4.protocol | 8 [72..79] | |
125 | | egress::hdr.inner_ipv4.hdr_checksum | 16 [80..95] | |
126 | | egress::hdr.inner_ipv4.src_addr | 32 [96..127] | |
127 | | egress::hdr.inner_ipv4.dst_addr | 32 [128..159] | |
128 +------+------------------------------------------------+----------------+----------+
129 | 4 | state egress::parse_ipv4 | 20 bytes | |
130 | | | | |
131 | | egress::hdr.ipv4.version | 4 [0..3] | |
132 | | egress::hdr.ipv4.ihl | 4 [4..7] | |
133 | | egress::hdr.ipv4.diffserv | 8 [8..15] | |
134 | | egress::hdr.ipv4.total_len | 16 [16..31] | |
135 | | egress::hdr.ipv4.identification | 16 [32..47] | |
136 | | egress::hdr.ipv4.flags | 3 [48..50] | |
137 | | egress::hdr.ipv4.frag_offset | 13 [51..63] | |
138 | | egress::hdr.ipv4.ttl | 8 [64..71] | |
139 | | egress::hdr.ipv4.protocol | 8 [72..79] | |
140 | | egress::hdr.ipv4.hdr_checksum | 16 [80..95] | |
141 | | egress::hdr.ipv4.src_addr | 32 [96..127] | |
142 | | egress::hdr.ipv4.dst_addr | 32 [128..159] | |
143 +------+------------------------------------------------+----------------+----------+
144 | 5 | state egress::parse_inner_eth | 14 bytes | |
145 | | | | |
146 | | egress::hdr.inner_eth.dst_mac | 48 [0..47] | |
147 | | egress::hdr.inner_eth.src_mac | 48 [48..95] | |
148 | | egress::hdr.inner_eth.ether_type | 16 [96..111] | |
149 +------+------------------------------------------------+----------------+----------+
150 | 6 | state egress::$entry_point.start | 14 bytes | |
151 | | | | |
152 | | egress::hdr.ethernet.dst_mac | 48 [0..47] | |
153 | | egress::hdr.ethernet.src_mac | 48 [48..95] | |
154 | | egress::hdr.ethernet.ether_type | 16 [96..111] | |
155 +------+------------------------------------------------+----------------+----------+
156 | 7 | state egress::parse_geneve_mss_tag | 8 bytes | |
157 | | | | |
158 | | egress::hdr.geneve_opts.oxg_mss_tag.class | 16 [0..15] | |
159 | | egress::hdr.geneve_opts.oxg_mss_tag.crit | 1 [16..16] | |
160 | | egress::hdr.geneve_opts.oxg_mss_tag.type | 7 [17..23] | |
161 | | egress::hdr.geneve_opts.oxg_mss_tag.reserved | 3 [24..26] | |
162 | | egress::hdr.geneve_opts.oxg_mss_tag.opt_len | 5 [27..31] | |
163 | | egress::hdr.geneve_opts.oxg_mss.mss | 32 [32..63] | |
164 +------+------------------------------------------------+----------------+----------+
165 | 8 | state egress::parse_geneve_mcast_tag | 8 bytes | |
166 | | | | |
167 | | egress::hdr.geneve_opts.oxg_mcast_tag.class | 16 [0..15] | |
168 | | egress::hdr.geneve_opts.oxg_mcast_tag.crit | 1 [16..16] | |
169 | | egress::hdr.geneve_opts.oxg_mcast_tag.type | 7 [17..23] | |
170 | | egress::hdr.geneve_opts.oxg_mcast_tag.reserved | 3 [24..26] | |
171 | | egress::hdr.geneve_opts.oxg_mcast_tag.opt_len | 5 [27..31] | |
172 | | egress::hdr.geneve_opts.oxg_mcast.mcast_tag | 2 [32..33] | |
173 | | egress::hdr.geneve_opts.oxg_mcast.reserved | 30 [34..63] | |
174 +------+------------------------------------------------+----------------+----------+
175 | 9 | state egress::parse_inner_udp | 8 bytes | |
176 | | | | |
177 | | egress::hdr.inner_udp.src_port | 16 [0..15] | |
178 | | egress::hdr.inner_udp.dst_port | 16 [16..31] | |
179 | | egress::hdr.inner_udp.hdr_length | 16 [32..47] | |
180 | | egress::hdr.inner_udp.checksum | 16 [48..63] | |
181 +------+------------------------------------------------+----------------+----------+
182 | 10 | state egress::parse_geneve | 8 bytes | |
183 | | | | |
184 | | egress::hdr.geneve.version | 2 [0..1] | |
185 | | egress::hdr.geneve.opt_len | 6 [2..7] | |
186 | | egress::hdr.geneve.ctrl | 1 [8..8] | |
187 | | egress::hdr.geneve.crit | 1 [9..9] | |
188 | | egress::hdr.geneve.reserved | 6 [10..15] | |
189 | | egress::hdr.geneve.protocol | 16 [16..31] | |
190 | | egress::hdr.geneve.vni | 24 [32..55] | |
191 | | egress::hdr.geneve.reserved2 | 8 [56..63] | |
192 +------+------------------------------------------------+----------------+----------+
193 | 11 | state egress::parse_udp | 8 bytes | |
194 | | | | |
195 | | egress::hdr.udp.src_port | 16 [0..15] | |
196 | | egress::hdr.udp.dst_port | 16 [16..31] | |
197 | | egress::hdr.udp.hdr_length | 16 [32..47] | |
198 | | egress::hdr.udp.checksum | 16 [48..63] | |
199 +------+------------------------------------------------+----------------+----------+
200 | 12 | state egress::parse_icmp | 8 bytes | |
201 | | | | |
202 | | egress::hdr.icmp.type | 8 [0..7] | |
203 | | egress::hdr.icmp.code | 8 [8..15] | |
204 | | egress::hdr.icmp.hdr_checksum | 16 [16..31] | |
205 | | egress::hdr.icmp.data | 32 [32..63] | |
206 +------+------------------------------------------------+----------------+----------+
207 | 13 | state egress::parse_geneve_ext_tag | 4 bytes | |
208 | | | | |
209 | | egress::hdr.geneve_opts.oxg_ext_tag.class | 16 [0..15] | |
210 | | egress::hdr.geneve_opts.oxg_ext_tag.crit | 1 [16..16] | |
211 | | egress::hdr.geneve_opts.oxg_ext_tag.type | 7 [17..23] | |
212 | | egress::hdr.geneve_opts.oxg_ext_tag.reserved | 3 [24..26] | |
213 | | egress::hdr.geneve_opts.oxg_ext_tag.opt_len | 5 [27..31] | |
214 +------+------------------------------------------------+----------------+----------+
215 | 14 | state egress::parse_vlan | 4 bytes | |
216 | | | | |
217 | | egress::hdr.vlan.pcp | 3 [0..2] | |
218 | | egress::hdr.vlan.dei | 1 [3..3] | |
219 | | egress::hdr.vlan.vlan_id | 12 [4..15] | |
220 | | egress::hdr.vlan.ether_type | 16 [16..31] | |
221 +------+------------------------------------------------+----------------+----------+
222 | | Total Bits | 1792 | |
223 +------+------------------------------------------------+----------------+----------+
224 
225 Packets will use up to 9 CLOTs.
226 The parser path(s) that will use the most CLOTs contain the following states:
227 egress::parse_inner_tcp (1 CLOTs)
228 egress::parse_inner_udp (1 CLOTs)
229 egress::parse_inner_ipv4 (1 CLOTs)
230 egress::parse_inner_ipv6 (1 CLOTs)
231 egress::parse_inner_eth (1 CLOTs)
232 egress::geneve_parsed (0 CLOTs)
233 egress::geneve_opt_parsed (0 CLOTs)
234 egress::parse_geneve_ext_tag (1 CLOTs)
235 egress::parse_geneve_mcast_tag (1 CLOTs)
236 egress::parse_geneve_mss_tag (1 CLOTs)
237 egress::parse_geneve_ox_opt (0 CLOTs)
238 egress::parse_geneve_opt (0 CLOTs)
239 egress::parse_geneve (1 CLOTs)
240 egress::parse_udp (1 CLOTs)
241 egress::parse_ipv4 (1 CLOTs)
242 egress::parse_ipv6 (1 CLOTs)
243 egress::parse_vlan (1 CLOTs)
244 $entry_point.start (1 CLOTs)
245 
246 All fields:
247 +-------------------------------------------------+------+-------+-----------+
248 | Field | Bits | CLOTs | Property |
249 +-------------------------------------------------+------+-------+-----------+
250 | ingress::ig_intr_md.ingress_port | 9 | | read-only |
251 | ingress::meta.bridge_hdr.ingress_port | 9 | | unused |
252 | ingress::hdr.ethernet.dst_mac | 48 | | modified |
253 | ingress::hdr.ethernet.src_mac | 48 | | modified |
254 | ingress::hdr.ethernet.ether_type | 16 | | modified |
255 | ingress::meta.orig_src_mac | 48 | | read-only |
256 | ingress::hdr.sidecar.sc_code | 8 | | modified |
257 | ingress::hdr.sidecar.sc_pad | 8 | | unused |
258 | ingress::hdr.sidecar.sc_ingress | 16 | | modified |
259 | ingress::hdr.sidecar.sc_egress | 16 | | modified |
260 | ingress::hdr.sidecar.sc_ether_type | 16 | | modified |
261 | ingress::hdr.sidecar.sc_payload | 128 | | modified |
262 | ingress::hdr.vlan.pcp | 3 | | modified |
263 | ingress::hdr.vlan.dei | 1 | | modified |
264 | ingress::hdr.vlan.vlan_id | 12 | | modified |
265 | ingress::hdr.vlan.ether_type | 16 | | modified |
266 | ingress::hdr.ipv4.version | 4 | | modified |
267 | ingress::hdr.ipv4.ihl | 4 | | modified |
268 | ingress::hdr.ipv4.diffserv | 8 | | modified |
269 | ingress::hdr.ipv4.total_len | 16 | | modified |
270 | ingress::hdr.ipv4.identification | 16 | | modified |
271 | ingress::hdr.ipv4.flags | 3 | | modified |
272 | ingress::hdr.ipv4.frag_offset | 13 | | modified |
273 | ingress::hdr.ipv4.ttl | 8 | | modified |
274 | ingress::hdr.ipv4.protocol | 8 | | modified |
275 | ingress::hdr.ipv4.hdr_checksum | 16 | | checksum |
276 | ingress::hdr.ipv4.src_addr | 32 | | modified |
277 | ingress::hdr.ipv4.dst_addr | 32 | | modified |
278 | ingress::meta.orig_src_ipv4 | 32 | | read-only |
279 | ingress::meta.orig_dst_ipv4 | 32 | | read-only |
280 | ingress::hdr.icmp.type | 8 | | modified |
281 | ingress::hdr.icmp.code | 8 | | modified |
282 | ingress::hdr.icmp.hdr_checksum | 16 | | checksum |
283 | ingress::hdr.icmp.data | 32 | | modified |
284 | ingress::hdr.tcp.src_port | 16 | | modified |
285 | ingress::hdr.tcp.dst_port | 16 | | modified |
286 | ingress::hdr.tcp.seq_no | 32 | | modified |
287 | ingress::hdr.tcp.ack_no | 32 | | modified |
288 | ingress::hdr.tcp.data_offset | 4 | | modified |
289 | ingress::hdr.tcp.res | 4 | | modified |
290 | ingress::hdr.tcp.flags | 8 | | modified |
291 | ingress::hdr.tcp.window | 16 | | modified |
292 | ingress::hdr.tcp.checksum | 16 | | modified |
293 | ingress::hdr.tcp.urgent_ptr | 16 | | modified |
294 | ingress::meta.l4_src_port | 16 | | read-only |
295 | ingress::meta.l4_dst_port | 16 | | modified |
296 | ingress::hdr.udp.src_port | 16 | | modified |
297 | ingress::hdr.udp.dst_port | 16 | | modified |
298 | ingress::hdr.udp.hdr_length | 16 | | modified |
299 | ingress::hdr.udp.checksum | 16 | | checksum |
300 | ingress::hdr.geneve.version | 2 | | modified |
301 | ingress::hdr.geneve.opt_len | 6 | | modified |
302 | ingress::hdr.geneve.ctrl | 1 | | modified |
303 | ingress::hdr.geneve.crit | 1 | | modified |
304 | ingress::hdr.geneve.reserved | 6 | | modified |
305 | ingress::hdr.geneve.protocol | 16 | | modified |
306 | ingress::hdr.geneve.vni | 24 | | modified |
307 | ingress::hdr.geneve.reserved2 | 8 | | modified |
308 | ingress::hdr.inner_eth.dst_mac | 48 | | modified |
309 | ingress::hdr.inner_eth.src_mac | 48 | | modified |
310 | ingress::hdr.inner_eth.ether_type | 16 | | modified |
311 | ingress::hdr.inner_ipv4.version | 4 | | modified |
312 | ingress::hdr.inner_ipv4.ihl | 4 | | modified |
313 | ingress::hdr.inner_ipv4.diffserv | 8 | | modified |
314 | ingress::hdr.inner_ipv4.total_len | 16 | | modified |
315 | ingress::hdr.inner_ipv4.identification | 16 | | modified |
316 | ingress::hdr.inner_ipv4.flags | 3 | | modified |
317 | ingress::hdr.inner_ipv4.frag_offset | 13 | | modified |
318 | ingress::hdr.inner_ipv4.ttl | 8 | | modified |
319 | ingress::hdr.inner_ipv4.protocol | 8 | | modified |
320 | ingress::hdr.inner_ipv4.hdr_checksum | 16 | | modified |
321 | ingress::hdr.inner_ipv4.src_addr | 32 | | modified |
322 | ingress::hdr.inner_ipv4.dst_addr | 32 | | modified |
323 | ingress::hdr.inner_tcp.src_port | 16 | | modified |
324 | ingress::hdr.inner_tcp.dst_port | 16 | | modified |
325 | ingress::hdr.inner_tcp.seq_no | 32 | | modified |
326 | ingress::hdr.inner_tcp.ack_no | 32 | | modified |
327 | ingress::hdr.inner_tcp.data_offset | 4 | | modified |
328 | ingress::hdr.inner_tcp.res | 4 | | modified |
329 | ingress::hdr.inner_tcp.flags | 8 | | modified |
330 | ingress::hdr.inner_tcp.window | 16 | | modified |
331 | ingress::hdr.inner_tcp.checksum | 16 | | modified |
332 | ingress::hdr.inner_tcp.urgent_ptr | 16 | | modified |
333 | ingress::hdr.inner_udp.src_port | 16 | | modified |
334 | ingress::hdr.inner_udp.dst_port | 16 | | modified |
335 | ingress::hdr.inner_udp.hdr_length | 16 | | modified |
336 | ingress::hdr.inner_udp.checksum | 16 | | modified |
337 | ingress::hdr.inner_icmp.type | 8 | | modified |
338 | ingress::hdr.inner_icmp.code | 8 | | modified |
339 | ingress::hdr.inner_icmp.hdr_checksum | 16 | | modified |
340 | ingress::hdr.inner_icmp.data | 32 | | modified |
341 | ingress::hdr.inner_ipv6.version | 4 | | modified |
342 | ingress::hdr.inner_ipv6.traffic_class | 8 | | modified |
343 | ingress::hdr.inner_ipv6.flow_label | 20 | | modified |
344 | ingress::hdr.inner_ipv6.payload_len | 16 | | modified |
345 | ingress::hdr.inner_ipv6.next_hdr | 8 | | modified |
346 | ingress::hdr.inner_ipv6.hop_limit | 8 | | modified |
347 | ingress::hdr.inner_ipv6.src_addr | 128 | | modified |
348 | ingress::hdr.inner_ipv6.dst_addr | 128 | | modified |
349 | ingress::hdr.geneve_opts.oxg_ext_tag.class | 16 | | modified |
350 | ingress::hdr.geneve_opts.oxg_ext_tag.crit | 1 | | modified |
351 | ingress::hdr.geneve_opts.oxg_ext_tag.type | 7 | | modified |
352 | ingress::hdr.geneve_opts.oxg_ext_tag.reserved | 3 | | modified |
353 | ingress::hdr.geneve_opts.oxg_ext_tag.opt_len | 5 | | modified |
354 | ingress::hdr.geneve_opts.oxg_mcast_tag.class | 16 | 2 | unused |
355 | ingress::hdr.geneve_opts.oxg_mcast_tag.crit | 1 | 2 | unused |
356 | ingress::hdr.geneve_opts.oxg_mcast_tag.type | 7 | 2 | unused |
357 | ingress::hdr.geneve_opts.oxg_mcast_tag.reserved | 3 | 2 | unused |
358 | ingress::hdr.geneve_opts.oxg_mcast_tag.opt_len | 5 | 2 | unused |
359 | ingress::hdr.geneve_opts.oxg_mcast.mcast_tag | 2 | 2 | unused |
360 | ingress::hdr.geneve_opts.oxg_mcast.reserved | 30 | 2 | unused |
361 | ingress::hdr.geneve_opts.oxg_mss_tag.class | 16 | 1 | unused |
362 | ingress::hdr.geneve_opts.oxg_mss_tag.crit | 1 | 1 | unused |
363 | ingress::hdr.geneve_opts.oxg_mss_tag.type | 7 | 1 | unused |
364 | ingress::hdr.geneve_opts.oxg_mss_tag.reserved | 3 | 1 | unused |
365 | ingress::hdr.geneve_opts.oxg_mss_tag.opt_len | 5 | 1 | unused |
366 | ingress::hdr.geneve_opts.oxg_mss.mss | 32 | 1 | unused |
367 | ingress::hdr.ipv6.version | 4 | | modified |
368 | ingress::hdr.ipv6.traffic_class | 8 | | modified |
369 | ingress::hdr.ipv6.flow_label | 20 | | modified |
370 | ingress::hdr.ipv6.payload_len | 16 | | modified |
371 | ingress::hdr.ipv6.next_hdr | 8 | | modified |
372 | ingress::hdr.ipv6.hop_limit | 8 | | modified |
373 | ingress::hdr.ipv6.src_addr | 128 | | modified |
374 | ingress::hdr.ipv6.dst_addr | 128 | | modified |
375 | ingress::hdr.arp.hw_type | 16 | 0 | unused |
376 | ingress::hdr.arp.proto_type | 16 | 0 | unused |
377 | ingress::hdr.arp.hw_addr_len | 8 | 0 | unused |
378 | ingress::hdr.arp.proto_addr_len | 8 | 0 | unused |
379 | ingress::hdr.arp.opcode | 16 | 0 | unused |
380 | ingress::hdr.arp.sender_mac | 48 | 0 | unused |
381 | ingress::hdr.arp.sender_ip | 32 | 0 | unused |
382 | ingress::hdr.arp.target_mac | 48 | 0 | unused |
383 | ingress::hdr.arp.target_ip | 32 | 0 | unused |
384 | egress::eg_intr_md.egress_port | 9 | | read-only |
385 | egress::hdr.ethernet.dst_mac | 48 | 6 | unused |
386 | egress::hdr.ethernet.src_mac | 48 | 6 | unused |
387 | egress::hdr.ethernet.ether_type | 16 | 6 | unused |
388 | egress::hdr.vlan.pcp | 3 | 14 | unused |
389 | egress::hdr.vlan.dei | 1 | 14 | unused |
390 | egress::hdr.vlan.vlan_id | 12 | 14 | unused |
391 | egress::hdr.vlan.ether_type | 16 | 14 | unused |
392 | egress::hdr.ipv4.version | 4 | 4 | unused |
393 | egress::hdr.ipv4.ihl | 4 | 4 | unused |
394 | egress::hdr.ipv4.diffserv | 8 | 4 | unused |
395 | egress::hdr.ipv4.total_len | 16 | 4 | unused |
396 | egress::hdr.ipv4.identification | 16 | 4 | unused |
397 | egress::hdr.ipv4.flags | 3 | 4 | unused |
398 | egress::hdr.ipv4.frag_offset | 13 | 4 | unused |
399 | egress::hdr.ipv4.ttl | 8 | 4 | unused |
400 | egress::hdr.ipv4.protocol | 8 | 4 | unused |
401 | egress::hdr.ipv4.hdr_checksum | 16 | 4 | unused |
402 | egress::hdr.ipv4.src_addr | 32 | 4 | unused |
403 | egress::hdr.ipv4.dst_addr | 32 | 4 | unused |
404 | egress::hdr.icmp.type | 8 | 12 | unused |
405 | egress::hdr.icmp.code | 8 | 12 | unused |
406 | egress::hdr.icmp.hdr_checksum | 16 | 12 | unused |
407 | egress::hdr.icmp.data | 32 | 12 | unused |
408 | egress::hdr.udp.src_port | 16 | 11 | unused |
409 | egress::hdr.udp.dst_port | 16 | 11 | unused |
410 | egress::hdr.udp.hdr_length | 16 | 11 | unused |
411 | egress::hdr.udp.checksum | 16 | 11 | unused |
412 | egress::hdr.geneve.version | 2 | 10 | unused |
413 | egress::hdr.geneve.opt_len | 6 | 10 | unused |
414 | egress::hdr.geneve.ctrl | 1 | 10 | unused |
415 | egress::hdr.geneve.crit | 1 | 10 | unused |
416 | egress::hdr.geneve.reserved | 6 | 10 | unused |
417 | egress::hdr.geneve.protocol | 16 | 10 | unused |
418 | egress::hdr.geneve.vni | 24 | 10 | unused |
419 | egress::hdr.geneve.reserved2 | 8 | 10 | unused |
420 | egress::hdr.inner_eth.dst_mac | 48 | 5 | unused |
421 | egress::hdr.inner_eth.src_mac | 48 | 5 | unused |
422 | egress::hdr.inner_eth.ether_type | 16 | 5 | unused |
423 | egress::hdr.inner_ipv4.version | 4 | 3 | unused |
424 | egress::hdr.inner_ipv4.ihl | 4 | 3 | unused |
425 | egress::hdr.inner_ipv4.diffserv | 8 | 3 | unused |
426 | egress::hdr.inner_ipv4.total_len | 16 | 3 | unused |
427 | egress::hdr.inner_ipv4.identification | 16 | 3 | unused |
428 | egress::hdr.inner_ipv4.flags | 3 | 3 | unused |
429 | egress::hdr.inner_ipv4.frag_offset | 13 | 3 | unused |
430 | egress::hdr.inner_ipv4.ttl | 8 | 3 | unused |
431 | egress::hdr.inner_ipv4.protocol | 8 | 3 | unused |
432 | egress::hdr.inner_ipv4.hdr_checksum | 16 | 3 | unused |
433 | egress::hdr.inner_ipv4.src_addr | 32 | 3 | unused |
434 | egress::hdr.inner_ipv4.dst_addr | 32 | 3 | unused |
435 | egress::hdr.inner_tcp.src_port | 16 | 2 | unused |
436 | egress::hdr.inner_tcp.dst_port | 16 | 2 | unused |
437 | egress::hdr.inner_tcp.seq_no | 32 | 2 | unused |
438 | egress::hdr.inner_tcp.ack_no | 32 | 2 | unused |
439 | egress::hdr.inner_tcp.data_offset | 4 | 2 | unused |
440 | egress::hdr.inner_tcp.res | 4 | 2 | unused |
441 | egress::hdr.inner_tcp.flags | 8 | 2 | unused |
442 | egress::hdr.inner_tcp.window | 16 | 2 | unused |
443 | egress::hdr.inner_tcp.checksum | 16 | 2 | unused |
444 | egress::hdr.inner_tcp.urgent_ptr | 16 | 2 | unused |
445 | egress::hdr.inner_udp.src_port | 16 | 9 | unused |
446 | egress::hdr.inner_udp.dst_port | 16 | 9 | unused |
447 | egress::hdr.inner_udp.hdr_length | 16 | 9 | unused |
448 | egress::hdr.inner_udp.checksum | 16 | 9 | unused |
449 | egress::hdr.inner_ipv6.version | 4 | 0 | unused |
450 | egress::hdr.inner_ipv6.traffic_class | 8 | 0 | unused |
451 | egress::hdr.inner_ipv6.flow_label | 20 | 0 | unused |
452 | egress::hdr.inner_ipv6.payload_len | 16 | 0 | unused |
453 | egress::hdr.inner_ipv6.next_hdr | 8 | 0 | unused |
454 | egress::hdr.inner_ipv6.hop_limit | 8 | 0 | unused |
455 | egress::hdr.inner_ipv6.src_addr | 128 | 0 | unused |
456 | egress::hdr.inner_ipv6.dst_addr | 128 | 0 | unused |
457 | egress::hdr.geneve_opts.oxg_ext_tag.class | 16 | 13 | unused |
458 | egress::hdr.geneve_opts.oxg_ext_tag.crit | 1 | 13 | unused |
459 | egress::hdr.geneve_opts.oxg_ext_tag.type | 7 | 13 | unused |
460 | egress::hdr.geneve_opts.oxg_ext_tag.reserved | 3 | 13 | unused |
461 | egress::hdr.geneve_opts.oxg_ext_tag.opt_len | 5 | 13 | unused |
462 | egress::hdr.geneve_opts.oxg_mcast_tag.class | 16 | 8 | unused |
463 | egress::hdr.geneve_opts.oxg_mcast_tag.crit | 1 | 8 | unused |
464 | egress::hdr.geneve_opts.oxg_mcast_tag.type | 7 | 8 | unused |
465 | egress::hdr.geneve_opts.oxg_mcast_tag.reserved | 3 | 8 | unused |
466 | egress::hdr.geneve_opts.oxg_mcast_tag.opt_len | 5 | 8 | unused |
467 | egress::hdr.geneve_opts.oxg_mcast.mcast_tag | 2 | 8 | unused |
468 | egress::hdr.geneve_opts.oxg_mcast.reserved | 30 | 8 | unused |
469 | egress::hdr.geneve_opts.oxg_mss_tag.class | 16 | 7 | unused |
470 | egress::hdr.geneve_opts.oxg_mss_tag.crit | 1 | 7 | unused |
471 | egress::hdr.geneve_opts.oxg_mss_tag.type | 7 | 7 | unused |
472 | egress::hdr.geneve_opts.oxg_mss_tag.reserved | 3 | 7 | unused |
473 | egress::hdr.geneve_opts.oxg_mss_tag.opt_len | 5 | 7 | unused |
474 | egress::hdr.geneve_opts.oxg_mss.mss | 32 | 7 | unused |
475 | egress::hdr.ipv6.version | 4 | 1 | unused |
476 | egress::hdr.ipv6.traffic_class | 8 | 1 | unused |
477 | egress::hdr.ipv6.flow_label | 20 | 1 | unused |
478 | egress::hdr.ipv6.payload_len | 16 | 1 | unused |
479 | egress::hdr.ipv6.next_hdr | 8 | 1 | unused |
480 | egress::hdr.ipv6.hop_limit | 8 | 1 | unused |
481 | egress::hdr.ipv6.src_addr | 128 | 1 | unused |
482 | egress::hdr.ipv6.dst_addr | 128 | 1 | unused |
483 +-------------------------------------------------+------+-------+-----------+
484 | Unused fields | 122 | | |
485 | Unused bits | 2161 | | |
486 | Unused CLOT-allocated fields | 120 | | |
487 | Unused CLOT-allocated bits | 2144 | | |
488 +-------------------------------------------------+------+-------+-----------+
489 
490 
491 CLOT Allocation (ingress):
492 +------+-------------------------------------------------+---------------+----------+
493 | CLOT | Fields | Bits | Property |
494 +------+-------------------------------------------------+---------------+----------+
495 | 0 | state ingress::parse_arp | 28 bytes | |
496 | | | | |
497 | | ingress::hdr.arp.hw_type | 16 [0..15] | |
498 | | ingress::hdr.arp.proto_type | 16 [16..31] | |
499 | | ingress::hdr.arp.hw_addr_len | 8 [32..39] | |
500 | | ingress::hdr.arp.proto_addr_len | 8 [40..47] | |
501 | | ingress::hdr.arp.opcode | 16 [48..63] | |
502 | | ingress::hdr.arp.sender_mac | 48 [64..111] | |
503 | | ingress::hdr.arp.sender_ip | 32 [112..143] | |
504 | | ingress::hdr.arp.target_mac | 48 [144..191] | |
505 | | ingress::hdr.arp.target_ip | 32 [192..223] | |
506 +------+-------------------------------------------------+---------------+----------+
507 | 1 | state ingress::parse_geneve_mss_tag | 8 bytes | |
508 | | | | |
509 | | ingress::hdr.geneve_opts.oxg_mss_tag.class | 16 [0..15] | |
510 | | ingress::hdr.geneve_opts.oxg_mss_tag.crit | 1 [16..16] | |
511 | | ingress::hdr.geneve_opts.oxg_mss_tag.type | 7 [17..23] | |
512 | | ingress::hdr.geneve_opts.oxg_mss_tag.reserved | 3 [24..26] | |
513 | | ingress::hdr.geneve_opts.oxg_mss_tag.opt_len | 5 [27..31] | |
514 | | ingress::hdr.geneve_opts.oxg_mss.mss | 32 [32..63] | |
515 +------+-------------------------------------------------+---------------+----------+
516 | 2 | state ingress::parse_geneve_mcast_tag | 8 bytes | |
517 | | | | |
518 | | ingress::hdr.geneve_opts.oxg_mcast_tag.class | 16 [0..15] | |
519 | | ingress::hdr.geneve_opts.oxg_mcast_tag.crit | 1 [16..16] | |
520 | | ingress::hdr.geneve_opts.oxg_mcast_tag.type | 7 [17..23] | |
521 | | ingress::hdr.geneve_opts.oxg_mcast_tag.reserved | 3 [24..26] | |
522 | | ingress::hdr.geneve_opts.oxg_mcast_tag.opt_len | 5 [27..31] | |
523 | | ingress::hdr.geneve_opts.oxg_mcast.mcast_tag | 2 [32..33] | |
524 | | ingress::hdr.geneve_opts.oxg_mcast.reserved | 30 [34..63] | |
525 +------+-------------------------------------------------+---------------+----------+
526 | | Total Bits | 352 | |
527 +------+-------------------------------------------------+---------------+----------+
528 
529 Packets will use up to 1 CLOTs.
530 The parser path(s) that will use the most CLOTs contain the following states:
531 ingress::parse_inner_tcp (0 CLOTs)
532 ingress::parse_inner_udp (0 CLOTs)
533 ingress::parse_inner_icmp (0 CLOTs)
534 ingress::parse_inner_ipv4 (0 CLOTs)
535 ingress::parse_inner_ipv6 (0 CLOTs)
536 ingress::parse_inner_eth (0 CLOTs)
537 ingress::geneve_parsed (0 CLOTs)
538 ingress::geneve_bad_size (0 CLOTs)
539 ingress::geneve_opt_parsed (0 CLOTs)
540 ingress::geneve_malformed (0 CLOTs)
541 ingress::parse_geneve_mcast_tag (1 CLOTs)
542 ingress::parse_geneve_mss_tag (1 CLOTs)
543 ingress::parse_geneve_ox_opt (0 CLOTs)
544 ingress::parse_geneve_opt (0 CLOTs)
545 ingress::parse_geneve (0 CLOTs)
546 ingress::parse_udp (0 CLOTs)
547 ingress::goto_proto_ipv4 (0 CLOTs)
548 ingress::set_mcast_ipv4 (0 CLOTs)
549 ingress::validate_ipv4_mcast_3 (0 CLOTs)
550 ingress::validate_ipv4_mcast1_2 (0 CLOTs)
551 ingress::validate_ttl (0 CLOTs)
552 ingress::parse_ipv4 (0 CLOTs)
553 ingress::goto_proto_ipv6 (0 CLOTs)
554 ingress::set_link_local_mcast (0 CLOTs)
555 ingress::set_mcast_ipv6 (0 CLOTs)
556 ingress::validate_hop_limit (0 CLOTs)
557 ingress::check_ipv6_mcast (0 CLOTs)
558 ingress::parse_ipv6 (0 CLOTs)
559 ingress::parse_arp (1 CLOTs)
560 ingress::parse_vlan (0 CLOTs)
561 ingress::parse_sidecar (0 CLOTs)
562 $entry_point.start (0 CLOTs)
563 
564 CLOT Allocation (egress):
565 +------+------------------------------------------------+----------------+----------+
566 | CLOT | Fields | Bits | Property |
567 +------+------------------------------------------------+----------------+----------+
568 | 0 | state egress::parse_inner_ipv6 | 40 bytes | |
569 | | | | |
570 | | egress::hdr.inner_ipv6.version | 4 [0..3] | |
571 | | egress::hdr.inner_ipv6.traffic_class | 8 [4..11] | |
572 | | egress::hdr.inner_ipv6.flow_label | 20 [12..31] | |
573 | | egress::hdr.inner_ipv6.payload_len | 16 [32..47] | |
574 | | egress::hdr.inner_ipv6.next_hdr | 8 [48..55] | |
575 | | egress::hdr.inner_ipv6.hop_limit | 8 [56..63] | |
576 | | egress::hdr.inner_ipv6.src_addr | 128 [64..191] | |
577 | | egress::hdr.inner_ipv6.dst_addr | 128 [192..319] | |
578 +------+------------------------------------------------+----------------+----------+
579 | 1 | state egress::parse_ipv6 | 40 bytes | |
580 | | | | |
581 | | egress::hdr.ipv6.version | 4 [0..3] | |
582 | | egress::hdr.ipv6.traffic_class | 8 [4..11] | |
583 | | egress::hdr.ipv6.flow_label | 20 [12..31] | |
584 | | egress::hdr.ipv6.payload_len | 16 [32..47] | |
585 | | egress::hdr.ipv6.next_hdr | 8 [48..55] | |
586 | | egress::hdr.ipv6.hop_limit | 8 [56..63] | |
587 | | egress::hdr.ipv6.src_addr | 128 [64..191] | |
588 | | egress::hdr.ipv6.dst_addr | 128 [192..319] | |
589 +------+------------------------------------------------+----------------+----------+
590 | 2 | state egress::parse_inner_tcp | 20 bytes | |
591 | | | | |
592 | | egress::hdr.inner_tcp.src_port | 16 [0..15] | |
593 | | egress::hdr.inner_tcp.dst_port | 16 [16..31] | |
594 | | egress::hdr.inner_tcp.seq_no | 32 [32..63] | |
595 | | egress::hdr.inner_tcp.ack_no | 32 [64..95] | |
596 | | egress::hdr.inner_tcp.data_offset | 4 [96..99] | |
597 | | egress::hdr.inner_tcp.res | 4 [100..103] | |
598 | | egress::hdr.inner_tcp.flags | 8 [104..111] | |
599 | | egress::hdr.inner_tcp.window | 16 [112..127] | |
600 | | egress::hdr.inner_tcp.checksum | 16 [128..143] | |
601 | | egress::hdr.inner_tcp.urgent_ptr | 16 [144..159] | |
602 +------+------------------------------------------------+----------------+----------+
603 | 3 | state egress::parse_inner_ipv4 | 20 bytes | |
604 | | | | |
605 | | egress::hdr.inner_ipv4.version | 4 [0..3] | |
606 | | egress::hdr.inner_ipv4.ihl | 4 [4..7] | |
607 | | egress::hdr.inner_ipv4.diffserv | 8 [8..15] | |
608 | | egress::hdr.inner_ipv4.total_len | 16 [16..31] | |
609 | | egress::hdr.inner_ipv4.identification | 16 [32..47] | |
610 | | egress::hdr.inner_ipv4.flags | 3 [48..50] | |
611 | | egress::hdr.inner_ipv4.frag_offset | 13 [51..63] | |
612 | | egress::hdr.inner_ipv4.ttl | 8 [64..71] | |
613 | | egress::hdr.inner_ipv4.protocol | 8 [72..79] | |
614 | | egress::hdr.inner_ipv4.hdr_checksum | 16 [80..95] | |
615 | | egress::hdr.inner_ipv4.src_addr | 32 [96..127] | |
616 | | egress::hdr.inner_ipv4.dst_addr | 32 [128..159] | |
617 +------+------------------------------------------------+----------------+----------+
618 | 4 | state egress::parse_ipv4 | 20 bytes | |
619 | | | | |
620 | | egress::hdr.ipv4.version | 4 [0..3] | |
621 | | egress::hdr.ipv4.ihl | 4 [4..7] | |
622 | | egress::hdr.ipv4.diffserv | 8 [8..15] | |
623 | | egress::hdr.ipv4.total_len | 16 [16..31] | |
624 | | egress::hdr.ipv4.identification | 16 [32..47] | |
625 | | egress::hdr.ipv4.flags | 3 [48..50] | |
626 | | egress::hdr.ipv4.frag_offset | 13 [51..63] | |
627 | | egress::hdr.ipv4.ttl | 8 [64..71] | |
628 | | egress::hdr.ipv4.protocol | 8 [72..79] | |
629 | | egress::hdr.ipv4.hdr_checksum | 16 [80..95] | |
630 | | egress::hdr.ipv4.src_addr | 32 [96..127] | |
631 | | egress::hdr.ipv4.dst_addr | 32 [128..159] | |
632 +------+------------------------------------------------+----------------+----------+
633 | 5 | state egress::parse_inner_eth | 14 bytes | |
634 | | | | |
635 | | egress::hdr.inner_eth.dst_mac | 48 [0..47] | |
636 | | egress::hdr.inner_eth.src_mac | 48 [48..95] | |
637 | | egress::hdr.inner_eth.ether_type | 16 [96..111] | |
638 +------+------------------------------------------------+----------------+----------+
639 | 6 | state egress::$entry_point.start | 14 bytes | |
640 | | | | |
641 | | egress::hdr.ethernet.dst_mac | 48 [0..47] | |
642 | | egress::hdr.ethernet.src_mac | 48 [48..95] | |
643 | | egress::hdr.ethernet.ether_type | 16 [96..111] | |
644 +------+------------------------------------------------+----------------+----------+
645 | 7 | state egress::parse_geneve_mss_tag | 8 bytes | |
646 | | | | |
647 | | egress::hdr.geneve_opts.oxg_mss_tag.class | 16 [0..15] | |
648 | | egress::hdr.geneve_opts.oxg_mss_tag.crit | 1 [16..16] | |
649 | | egress::hdr.geneve_opts.oxg_mss_tag.type | 7 [17..23] | |
650 | | egress::hdr.geneve_opts.oxg_mss_tag.reserved | 3 [24..26] | |
651 | | egress::hdr.geneve_opts.oxg_mss_tag.opt_len | 5 [27..31] | |
652 | | egress::hdr.geneve_opts.oxg_mss.mss | 32 [32..63] | |
653 +------+------------------------------------------------+----------------+----------+
654 | 8 | state egress::parse_geneve_mcast_tag | 8 bytes | |
655 | | | | |
656 | | egress::hdr.geneve_opts.oxg_mcast_tag.class | 16 [0..15] | |
657 | | egress::hdr.geneve_opts.oxg_mcast_tag.crit | 1 [16..16] | |
658 | | egress::hdr.geneve_opts.oxg_mcast_tag.type | 7 [17..23] | |
659 | | egress::hdr.geneve_opts.oxg_mcast_tag.reserved | 3 [24..26] | |
660 | | egress::hdr.geneve_opts.oxg_mcast_tag.opt_len | 5 [27..31] | |
661 | | egress::hdr.geneve_opts.oxg_mcast.mcast_tag | 2 [32..33] | |
662 | | egress::hdr.geneve_opts.oxg_mcast.reserved | 30 [34..63] | |
663 +------+------------------------------------------------+----------------+----------+
664 | 9 | state egress::parse_inner_udp | 8 bytes | |
665 | | | | |
666 | | egress::hdr.inner_udp.src_port | 16 [0..15] | |
667 | | egress::hdr.inner_udp.dst_port | 16 [16..31] | |
668 | | egress::hdr.inner_udp.hdr_length | 16 [32..47] | |
669 | | egress::hdr.inner_udp.checksum | 16 [48..63] | |
670 +------+------------------------------------------------+----------------+----------+
671 | 10 | state egress::parse_geneve | 8 bytes | |
672 | | | | |
673 | | egress::hdr.geneve.version | 2 [0..1] | |
674 | | egress::hdr.geneve.opt_len | 6 [2..7] | |
675 | | egress::hdr.geneve.ctrl | 1 [8..8] | |
676 | | egress::hdr.geneve.crit | 1 [9..9] | |
677 | | egress::hdr.geneve.reserved | 6 [10..15] | |
678 | | egress::hdr.geneve.protocol | 16 [16..31] | |
679 | | egress::hdr.geneve.vni | 24 [32..55] | |
680 | | egress::hdr.geneve.reserved2 | 8 [56..63] | |
681 +------+------------------------------------------------+----------------+----------+
682 | 11 | state egress::parse_udp | 8 bytes | |
683 | | | | |
684 | | egress::hdr.udp.src_port | 16 [0..15] | |
685 | | egress::hdr.udp.dst_port | 16 [16..31] | |
686 | | egress::hdr.udp.hdr_length | 16 [32..47] | |
687 | | egress::hdr.udp.checksum | 16 [48..63] | |
688 +------+------------------------------------------------+----------------+----------+
689 | 12 | state egress::parse_icmp | 8 bytes | |
690 | | | | |
691 | | egress::hdr.icmp.type | 8 [0..7] | |
692 | | egress::hdr.icmp.code | 8 [8..15] | |
693 | | egress::hdr.icmp.hdr_checksum | 16 [16..31] | |
694 | | egress::hdr.icmp.data | 32 [32..63] | |
695 +------+------------------------------------------------+----------------+----------+
696 | 13 | state egress::parse_geneve_ext_tag | 4 bytes | |
697 | | | | |
698 | | egress::hdr.geneve_opts.oxg_ext_tag.class | 16 [0..15] | |
699 | | egress::hdr.geneve_opts.oxg_ext_tag.crit | 1 [16..16] | |
700 | | egress::hdr.geneve_opts.oxg_ext_tag.type | 7 [17..23] | |
701 | | egress::hdr.geneve_opts.oxg_ext_tag.reserved | 3 [24..26] | |
702 | | egress::hdr.geneve_opts.oxg_ext_tag.opt_len | 5 [27..31] | |
703 +------+------------------------------------------------+----------------+----------+
704 | 14 | state egress::parse_vlan | 4 bytes | |
705 | | | | |
706 | | egress::hdr.vlan.pcp | 3 [0..2] | |
707 | | egress::hdr.vlan.dei | 1 [3..3] | |
708 | | egress::hdr.vlan.vlan_id | 12 [4..15] | |
709 | | egress::hdr.vlan.ether_type | 16 [16..31] | |
710 +------+------------------------------------------------+----------------+----------+
711 | | Total Bits | 1792 | |
712 +------+------------------------------------------------+----------------+----------+
713 
714 Packets will use up to 9 CLOTs.
715 The parser path(s) that will use the most CLOTs contain the following states:
716 egress::parse_inner_tcp (1 CLOTs)
717 egress::parse_inner_udp (1 CLOTs)
718 egress::parse_inner_ipv4 (1 CLOTs)
719 egress::parse_inner_ipv6 (1 CLOTs)
720 egress::parse_inner_eth (1 CLOTs)
721 egress::geneve_parsed (0 CLOTs)
722 egress::geneve_opt_parsed (0 CLOTs)
723 egress::parse_geneve_ext_tag (1 CLOTs)
724 egress::parse_geneve_mcast_tag (1 CLOTs)
725 egress::parse_geneve_mss_tag (1 CLOTs)
726 egress::parse_geneve_ox_opt (0 CLOTs)
727 egress::parse_geneve_opt (0 CLOTs)
728 egress::parse_geneve (1 CLOTs)
729 egress::parse_udp (1 CLOTs)
730 egress::parse_ipv4 (1 CLOTs)
731 egress::parse_ipv6 (1 CLOTs)
732 egress::parse_vlan (1 CLOTs)
733 $entry_point.start (1 CLOTs)
734 
735 All fields:
736 +-------------------------------------------------+------+-------+-----------+
737 | Field | Bits | CLOTs | Property |
738 +-------------------------------------------------+------+-------+-----------+
739 | ingress::ig_intr_md.ingress_port | 9 | | read-only |
740 | ingress::meta.bridge_hdr.ingress_port | 9 | | unused |
741 | ingress::hdr.ethernet.dst_mac | 48 | | modified |
742 | ingress::hdr.ethernet.src_mac | 48 | | modified |
743 | ingress::hdr.ethernet.ether_type | 16 | | modified |
744 | ingress::meta.orig_src_mac | 48 | | read-only |
745 | ingress::hdr.sidecar.sc_code | 8 | | modified |
746 | ingress::hdr.sidecar.sc_pad | 8 | | unused |
747 | ingress::hdr.sidecar.sc_ingress | 16 | | modified |
748 | ingress::hdr.sidecar.sc_egress | 16 | | modified |
749 | ingress::hdr.sidecar.sc_ether_type | 16 | | modified |
750 | ingress::hdr.sidecar.sc_payload | 128 | | modified |
751 | ingress::hdr.vlan.pcp | 3 | | modified |
752 | ingress::hdr.vlan.dei | 1 | | modified |
753 | ingress::hdr.vlan.vlan_id | 12 | | modified |
754 | ingress::hdr.vlan.ether_type | 16 | | modified |
755 | ingress::hdr.ipv4.version | 4 | | modified |
756 | ingress::hdr.ipv4.ihl | 4 | | modified |
757 | ingress::hdr.ipv4.diffserv | 8 | | modified |
758 | ingress::hdr.ipv4.total_len | 16 | | modified |
759 | ingress::hdr.ipv4.identification | 16 | | modified |
760 | ingress::hdr.ipv4.flags | 3 | | modified |
761 | ingress::hdr.ipv4.frag_offset | 13 | | modified |
762 | ingress::hdr.ipv4.ttl | 8 | | modified |
763 | ingress::hdr.ipv4.protocol | 8 | | modified |
764 | ingress::hdr.ipv4.hdr_checksum | 16 | | checksum |
765 | ingress::hdr.ipv4.src_addr | 32 | | modified |
766 | ingress::hdr.ipv4.dst_addr | 32 | | modified |
767 | ingress::meta.orig_src_ipv4 | 32 | | read-only |
768 | ingress::meta.orig_dst_ipv4 | 32 | | read-only |
769 | ingress::hdr.icmp.type | 8 | | modified |
770 | ingress::hdr.icmp.code | 8 | | modified |
771 | ingress::hdr.icmp.hdr_checksum | 16 | | checksum |
772 | ingress::hdr.icmp.data | 32 | | modified |
773 | ingress::hdr.tcp.src_port | 16 | | modified |
774 | ingress::hdr.tcp.dst_port | 16 | | modified |
775 | ingress::hdr.tcp.seq_no | 32 | | modified |
776 | ingress::hdr.tcp.ack_no | 32 | | modified |
777 | ingress::hdr.tcp.data_offset | 4 | | modified |
778 | ingress::hdr.tcp.res | 4 | | modified |
779 | ingress::hdr.tcp.flags | 8 | | modified |
780 | ingress::hdr.tcp.window | 16 | | modified |
781 | ingress::hdr.tcp.checksum | 16 | | modified |
782 | ingress::hdr.tcp.urgent_ptr | 16 | | modified |
783 | ingress::meta.l4_src_port | 16 | | read-only |
784 | ingress::meta.l4_dst_port | 16 | | modified |
785 | ingress::hdr.udp.src_port | 16 | | modified |
786 | ingress::hdr.udp.dst_port | 16 | | modified |
787 | ingress::hdr.udp.hdr_length | 16 | | modified |
788 | ingress::hdr.udp.checksum | 16 | | checksum |
789 | ingress::hdr.geneve.version | 2 | | modified |
790 | ingress::hdr.geneve.opt_len | 6 | | modified |
791 | ingress::hdr.geneve.ctrl | 1 | | modified |
792 | ingress::hdr.geneve.crit | 1 | | modified |
793 | ingress::hdr.geneve.reserved | 6 | | modified |
794 | ingress::hdr.geneve.protocol | 16 | | modified |
795 | ingress::hdr.geneve.vni | 24 | | modified |
796 | ingress::hdr.geneve.reserved2 | 8 | | modified |
797 | ingress::hdr.inner_eth.dst_mac | 48 | | modified |
798 | ingress::hdr.inner_eth.src_mac | 48 | | modified |
799 | ingress::hdr.inner_eth.ether_type | 16 | | modified |
800 | ingress::hdr.inner_ipv4.version | 4 | | modified |
801 | ingress::hdr.inner_ipv4.ihl | 4 | | modified |
802 | ingress::hdr.inner_ipv4.diffserv | 8 | | modified |
803 | ingress::hdr.inner_ipv4.total_len | 16 | | modified |
804 | ingress::hdr.inner_ipv4.identification | 16 | | modified |
805 | ingress::hdr.inner_ipv4.flags | 3 | | modified |
806 | ingress::hdr.inner_ipv4.frag_offset | 13 | | modified |
807 | ingress::hdr.inner_ipv4.ttl | 8 | | modified |
808 | ingress::hdr.inner_ipv4.protocol | 8 | | modified |
809 | ingress::hdr.inner_ipv4.hdr_checksum | 16 | | modified |
810 | ingress::hdr.inner_ipv4.src_addr | 32 | | modified |
811 | ingress::hdr.inner_ipv4.dst_addr | 32 | | modified |
812 | ingress::hdr.inner_tcp.src_port | 16 | | modified |
813 | ingress::hdr.inner_tcp.dst_port | 16 | | modified |
814 | ingress::hdr.inner_tcp.seq_no | 32 | | modified |
815 | ingress::hdr.inner_tcp.ack_no | 32 | | modified |
816 | ingress::hdr.inner_tcp.data_offset | 4 | | modified |
817 | ingress::hdr.inner_tcp.res | 4 | | modified |
818 | ingress::hdr.inner_tcp.flags | 8 | | modified |
819 | ingress::hdr.inner_tcp.window | 16 | | modified |
820 | ingress::hdr.inner_tcp.checksum | 16 | | modified |
821 | ingress::hdr.inner_tcp.urgent_ptr | 16 | | modified |
822 | ingress::hdr.inner_udp.src_port | 16 | | modified |
823 | ingress::hdr.inner_udp.dst_port | 16 | | modified |
824 | ingress::hdr.inner_udp.hdr_length | 16 | | modified |
825 | ingress::hdr.inner_udp.checksum | 16 | | modified |
826 | ingress::hdr.inner_icmp.type | 8 | | modified |
827 | ingress::hdr.inner_icmp.code | 8 | | modified |
828 | ingress::hdr.inner_icmp.hdr_checksum | 16 | | modified |
829 | ingress::hdr.inner_icmp.data | 32 | | modified |
830 | ingress::hdr.inner_ipv6.version | 4 | | modified |
831 | ingress::hdr.inner_ipv6.traffic_class | 8 | | modified |
832 | ingress::hdr.inner_ipv6.flow_label | 20 | | modified |
833 | ingress::hdr.inner_ipv6.payload_len | 16 | | modified |
834 | ingress::hdr.inner_ipv6.next_hdr | 8 | | modified |
835 | ingress::hdr.inner_ipv6.hop_limit | 8 | | modified |
836 | ingress::hdr.inner_ipv6.src_addr | 128 | | modified |
837 | ingress::hdr.inner_ipv6.dst_addr | 128 | | modified |
838 | ingress::hdr.geneve_opts.oxg_ext_tag.class | 16 | | modified |
839 | ingress::hdr.geneve_opts.oxg_ext_tag.crit | 1 | | modified |
840 | ingress::hdr.geneve_opts.oxg_ext_tag.type | 7 | | modified |
841 | ingress::hdr.geneve_opts.oxg_ext_tag.reserved | 3 | | modified |
842 | ingress::hdr.geneve_opts.oxg_ext_tag.opt_len | 5 | | modified |
843 | ingress::hdr.geneve_opts.oxg_mcast_tag.class | 16 | 2 | unused |
844 | ingress::hdr.geneve_opts.oxg_mcast_tag.crit | 1 | 2 | unused |
845 | ingress::hdr.geneve_opts.oxg_mcast_tag.type | 7 | 2 | unused |
846 | ingress::hdr.geneve_opts.oxg_mcast_tag.reserved | 3 | 2 | unused |
847 | ingress::hdr.geneve_opts.oxg_mcast_tag.opt_len | 5 | 2 | unused |
848 | ingress::hdr.geneve_opts.oxg_mcast.mcast_tag | 2 | 2 | unused |
849 | ingress::hdr.geneve_opts.oxg_mcast.reserved | 30 | 2 | unused |
850 | ingress::hdr.geneve_opts.oxg_mss_tag.class | 16 | 1 | unused |
851 | ingress::hdr.geneve_opts.oxg_mss_tag.crit | 1 | 1 | unused |
852 | ingress::hdr.geneve_opts.oxg_mss_tag.type | 7 | 1 | unused |
853 | ingress::hdr.geneve_opts.oxg_mss_tag.reserved | 3 | 1 | unused |
854 | ingress::hdr.geneve_opts.oxg_mss_tag.opt_len | 5 | 1 | unused |
855 | ingress::hdr.geneve_opts.oxg_mss.mss | 32 | 1 | unused |
856 | ingress::hdr.ipv6.version | 4 | | modified |
857 | ingress::hdr.ipv6.traffic_class | 8 | | modified |
858 | ingress::hdr.ipv6.flow_label | 20 | | modified |
859 | ingress::hdr.ipv6.payload_len | 16 | | modified |
860 | ingress::hdr.ipv6.next_hdr | 8 | | modified |
861 | ingress::hdr.ipv6.hop_limit | 8 | | modified |
862 | ingress::hdr.ipv6.src_addr | 128 | | modified |
863 | ingress::hdr.ipv6.dst_addr | 128 | | modified |
864 | ingress::hdr.arp.hw_type | 16 | 0 | unused |
865 | ingress::hdr.arp.proto_type | 16 | 0 | unused |
866 | ingress::hdr.arp.hw_addr_len | 8 | 0 | unused |
867 | ingress::hdr.arp.proto_addr_len | 8 | 0 | unused |
868 | ingress::hdr.arp.opcode | 16 | 0 | unused |
869 | ingress::hdr.arp.sender_mac | 48 | 0 | unused |
870 | ingress::hdr.arp.sender_ip | 32 | 0 | unused |
871 | ingress::hdr.arp.target_mac | 48 | 0 | unused |
872 | ingress::hdr.arp.target_ip | 32 | 0 | unused |
873 | egress::eg_intr_md.egress_port | 9 | | read-only |
874 | egress::hdr.ethernet.dst_mac | 48 | 6 | unused |
875 | egress::hdr.ethernet.src_mac | 48 | 6 | unused |
876 | egress::hdr.ethernet.ether_type | 16 | 6 | unused |
877 | egress::hdr.vlan.pcp | 3 | 14 | unused |
878 | egress::hdr.vlan.dei | 1 | 14 | unused |
879 | egress::hdr.vlan.vlan_id | 12 | 14 | unused |
880 | egress::hdr.vlan.ether_type | 16 | 14 | unused |
881 | egress::hdr.ipv4.version | 4 | 4 | unused |
882 | egress::hdr.ipv4.ihl | 4 | 4 | unused |
883 | egress::hdr.ipv4.diffserv | 8 | 4 | unused |
884 | egress::hdr.ipv4.total_len | 16 | 4 | unused |
885 | egress::hdr.ipv4.identification | 16 | 4 | unused |
886 | egress::hdr.ipv4.flags | 3 | 4 | unused |
887 | egress::hdr.ipv4.frag_offset | 13 | 4 | unused |
888 | egress::hdr.ipv4.ttl | 8 | 4 | unused |
889 | egress::hdr.ipv4.protocol | 8 | 4 | unused |
890 | egress::hdr.ipv4.hdr_checksum | 16 | 4 | unused |
891 | egress::hdr.ipv4.src_addr | 32 | 4 | unused |
892 | egress::hdr.ipv4.dst_addr | 32 | 4 | unused |
893 | egress::hdr.icmp.type | 8 | 12 | unused |
894 | egress::hdr.icmp.code | 8 | 12 | unused |
895 | egress::hdr.icmp.hdr_checksum | 16 | 12 | unused |
896 | egress::hdr.icmp.data | 32 | 12 | unused |
897 | egress::hdr.udp.src_port | 16 | 11 | unused |
898 | egress::hdr.udp.dst_port | 16 | 11 | unused |
899 | egress::hdr.udp.hdr_length | 16 | 11 | unused |
900 | egress::hdr.udp.checksum | 16 | 11 | unused |
901 | egress::hdr.geneve.version | 2 | 10 | unused |
902 | egress::hdr.geneve.opt_len | 6 | 10 | unused |
903 | egress::hdr.geneve.ctrl | 1 | 10 | unused |
904 | egress::hdr.geneve.crit | 1 | 10 | unused |
905 | egress::hdr.geneve.reserved | 6 | 10 | unused |
906 | egress::hdr.geneve.protocol | 16 | 10 | unused |
907 | egress::hdr.geneve.vni | 24 | 10 | unused |
908 | egress::hdr.geneve.reserved2 | 8 | 10 | unused |
909 | egress::hdr.inner_eth.dst_mac | 48 | 5 | unused |
910 | egress::hdr.inner_eth.src_mac | 48 | 5 | unused |
911 | egress::hdr.inner_eth.ether_type | 16 | 5 | unused |
912 | egress::hdr.inner_ipv4.version | 4 | 3 | unused |
913 | egress::hdr.inner_ipv4.ihl | 4 | 3 | unused |
914 | egress::hdr.inner_ipv4.diffserv | 8 | 3 | unused |
915 | egress::hdr.inner_ipv4.total_len | 16 | 3 | unused |
916 | egress::hdr.inner_ipv4.identification | 16 | 3 | unused |
917 | egress::hdr.inner_ipv4.flags | 3 | 3 | unused |
918 | egress::hdr.inner_ipv4.frag_offset | 13 | 3 | unused |
919 | egress::hdr.inner_ipv4.ttl | 8 | 3 | unused |
920 | egress::hdr.inner_ipv4.protocol | 8 | 3 | unused |
921 | egress::hdr.inner_ipv4.hdr_checksum | 16 | 3 | unused |
922 | egress::hdr.inner_ipv4.src_addr | 32 | 3 | unused |
923 | egress::hdr.inner_ipv4.dst_addr | 32 | 3 | unused |
924 | egress::hdr.inner_tcp.src_port | 16 | 2 | unused |
925 | egress::hdr.inner_tcp.dst_port | 16 | 2 | unused |
926 | egress::hdr.inner_tcp.seq_no | 32 | 2 | unused |
927 | egress::hdr.inner_tcp.ack_no | 32 | 2 | unused |
928 | egress::hdr.inner_tcp.data_offset | 4 | 2 | unused |
929 | egress::hdr.inner_tcp.res | 4 | 2 | unused |
930 | egress::hdr.inner_tcp.flags | 8 | 2 | unused |
931 | egress::hdr.inner_tcp.window | 16 | 2 | unused |
932 | egress::hdr.inner_tcp.checksum | 16 | 2 | unused |
933 | egress::hdr.inner_tcp.urgent_ptr | 16 | 2 | unused |
934 | egress::hdr.inner_udp.src_port | 16 | 9 | unused |
935 | egress::hdr.inner_udp.dst_port | 16 | 9 | unused |
936 | egress::hdr.inner_udp.hdr_length | 16 | 9 | unused |
937 | egress::hdr.inner_udp.checksum | 16 | 9 | unused |
938 | egress::hdr.inner_ipv6.version | 4 | 0 | unused |
939 | egress::hdr.inner_ipv6.traffic_class | 8 | 0 | unused |
940 | egress::hdr.inner_ipv6.flow_label | 20 | 0 | unused |
941 | egress::hdr.inner_ipv6.payload_len | 16 | 0 | unused |
942 | egress::hdr.inner_ipv6.next_hdr | 8 | 0 | unused |
943 | egress::hdr.inner_ipv6.hop_limit | 8 | 0 | unused |
944 | egress::hdr.inner_ipv6.src_addr | 128 | 0 | unused |
945 | egress::hdr.inner_ipv6.dst_addr | 128 | 0 | unused |
946 | egress::hdr.geneve_opts.oxg_ext_tag.class | 16 | 13 | unused |
947 | egress::hdr.geneve_opts.oxg_ext_tag.crit | 1 | 13 | unused |
948 | egress::hdr.geneve_opts.oxg_ext_tag.type | 7 | 13 | unused |
949 | egress::hdr.geneve_opts.oxg_ext_tag.reserved | 3 | 13 | unused |
950 | egress::hdr.geneve_opts.oxg_ext_tag.opt_len | 5 | 13 | unused |
951 | egress::hdr.geneve_opts.oxg_mcast_tag.class | 16 | 8 | unused |
952 | egress::hdr.geneve_opts.oxg_mcast_tag.crit | 1 | 8 | unused |
953 | egress::hdr.geneve_opts.oxg_mcast_tag.type | 7 | 8 | unused |
954 | egress::hdr.geneve_opts.oxg_mcast_tag.reserved | 3 | 8 | unused |
955 | egress::hdr.geneve_opts.oxg_mcast_tag.opt_len | 5 | 8 | unused |
956 | egress::hdr.geneve_opts.oxg_mcast.mcast_tag | 2 | 8 | unused |
957 | egress::hdr.geneve_opts.oxg_mcast.reserved | 30 | 8 | unused |
958 | egress::hdr.geneve_opts.oxg_mss_tag.class | 16 | 7 | unused |
959 | egress::hdr.geneve_opts.oxg_mss_tag.crit | 1 | 7 | unused |
960 | egress::hdr.geneve_opts.oxg_mss_tag.type | 7 | 7 | unused |
961 | egress::hdr.geneve_opts.oxg_mss_tag.reserved | 3 | 7 | unused |
962 | egress::hdr.geneve_opts.oxg_mss_tag.opt_len | 5 | 7 | unused |
963 | egress::hdr.geneve_opts.oxg_mss.mss | 32 | 7 | unused |
964 | egress::hdr.ipv6.version | 4 | 1 | unused |
965 | egress::hdr.ipv6.traffic_class | 8 | 1 | unused |
966 | egress::hdr.ipv6.flow_label | 20 | 1 | unused |
967 | egress::hdr.ipv6.payload_len | 16 | 1 | unused |
968 | egress::hdr.ipv6.next_hdr | 8 | 1 | unused |
969 | egress::hdr.ipv6.hop_limit | 8 | 1 | unused |
970 | egress::hdr.ipv6.src_addr | 128 | 1 | unused |
971 | egress::hdr.ipv6.dst_addr | 128 | 1 | unused |
972 +-------------------------------------------------+------+-------+-----------+
973 | Unused fields | 122 | | |
974 | Unused bits | 2161 | | |
975 | Unused CLOT-allocated fields | 120 | | |
976 | Unused CLOT-allocated bits | 2144 | | |
977 +-------------------------------------------------+------+-------+-----------+
978