CLOT Allocation (ingress): +------+-------------------------------------------------+---------------+-----------+ | CLOT | Fields | Bits | Property | +------+-------------------------------------------------+---------------+-----------+ | 0 | state ingress::parse_arp | 28 bytes | | | | | | | | | ingress::hdr.arp.hw_type | 16 [0..15] | | | | ingress::hdr.arp.proto_type | 16 [16..31] | | | | ingress::hdr.arp.hw_addr_len | 8 [32..39] | | | | ingress::hdr.arp.proto_addr_len | 8 [40..47] | | | | ingress::hdr.arp.opcode | 16 [48..63] | | | | ingress::hdr.arp.sender_mac | 48 [64..111] | | | | ingress::hdr.arp.sender_ip | 32 [112..143] | | | | ingress::hdr.arp.target_mac | 48 [144..191] | | | | ingress::hdr.arp.target_ip | 32 [192..223] | | +------+-------------------------------------------------+---------------+-----------+ | 1 | state ingress::parse_geneve_mcast_tag | 4 bytes | | | | | | | | | ingress::hdr.geneve_opts.ox_mcast_tag.mcast_tag | 2 [0..1] | ( phv ) | | | ingress::hdr.geneve_opts.ox_mcast_tag.reserved | 30 [2..31] | | +------+-------------------------------------------------+---------------+-----------+ | | Total Bits | 256 | | +------+-------------------------------------------------+---------------+-----------+ Packets will use up to 1 CLOTs. The parser path(s) that will use the most CLOTs contain the following states: ingress::parse_inner_tcp (0 CLOTs) ingress::parse_inner_udp (0 CLOTs) ingress::parse_inner_icmp (0 CLOTs) ingress::parse_inner_ipv4 (0 CLOTs) ingress::parse_inner_ipv6 (0 CLOTs) ingress::parse_inner_eth (0 CLOTs) ingress::geneve_parsed (0 CLOTs) ingress::parse_geneve_mcast_tag (1 CLOTs) ingress::parse_geneve_ox_opt (0 CLOTs) ingress::parse_geneve_opt (0 CLOTs) ingress::parse_geneve (0 CLOTs) ingress::parse_udp (0 CLOTs) ingress::goto_proto_ipv4 (0 CLOTs) ingress::set_mcast_ipv4 (0 CLOTs) ingress::validate_ipv4_mcast_3 (0 CLOTs) ingress::validate_ipv4_mcast1_2 (0 CLOTs) ingress::validate_ttl (0 CLOTs) ingress::parse_ipv4 (0 CLOTs) ingress::goto_proto_ipv6 (0 CLOTs) ingress::set_link_local_mcast (0 CLOTs) ingress::set_mcast_ipv6 (0 CLOTs) ingress::validate_hop_limit (0 CLOTs) ingress::check_ipv6_mcast (0 CLOTs) ingress::parse_ipv6 (0 CLOTs) ingress::parse_arp (1 CLOTs) ingress::parse_vlan (0 CLOTs) ingress::parse_sidecar (0 CLOTs) $entry_point.start (0 CLOTs) CLOT Allocation (egress): +------+--------------------------------------------------+----------------+------------+ | CLOT | Fields | Bits | Property | +------+--------------------------------------------------+----------------+------------+ | 0 | state egress::parse_ipv6 | 40 bytes | | | | | | | | | egress::hdr.ipv6.version | 4 [0..3] | | | | egress::hdr.ipv6.traffic_class | 8 [4..11] | | | | egress::hdr.ipv6.flow_label | 20 [12..31] | | | | egress::hdr.ipv6.payload_len | 16 [32..47] | | | | egress::hdr.ipv6.next_hdr | 8 [48..55] | | | | egress::hdr.ipv6.hop_limit | 8 [56..63] | | | | egress::hdr.ipv6.src_addr | 128 [64..191] | | | | egress::hdr.ipv6.dst_addr | 128 [192..319] | ( phv ) | +------+--------------------------------------------------+----------------+------------+ | 1 | state egress::parse_inner_ipv6 | 40 bytes | | | | | | | | | egress::hdr.inner_ipv6.version | 4 [0..3] | | | | egress::hdr.inner_ipv6.traffic_class | 8 [4..11] | | | | egress::hdr.inner_ipv6.flow_label | 20 [12..31] | | | | egress::hdr.inner_ipv6.payload_len | 16 [32..47] | | | | egress::hdr.inner_ipv6.next_hdr | 8 [48..55] | | | | egress::hdr.inner_ipv6.hop_limit | 8 [56..63] | ( phv* ) | | | egress::hdr.inner_ipv6.src_addr | 128 [64..191] | | | | egress::hdr.inner_ipv6.dst_addr | 128 [192..319] | ( phv ) | +------+--------------------------------------------------+----------------+------------+ | 2 | state egress::parse_inner_tcp | 20 bytes | | | | | | | | | egress::hdr.inner_tcp.src_port | 16 [0..15] | | | | egress::hdr.inner_tcp.dst_port | 16 [16..31] | | | | egress::hdr.inner_tcp.seq_no | 32 [32..63] | | | | egress::hdr.inner_tcp.ack_no | 32 [64..95] | | | | egress::hdr.inner_tcp.data_offset | 4 [96..99] | | | | egress::hdr.inner_tcp.res | 4 [100..103] | | | | egress::hdr.inner_tcp.flags | 8 [104..111] | | | | egress::hdr.inner_tcp.window | 16 [112..127] | | | | egress::hdr.inner_tcp.checksum | 16 [128..143] | | | | egress::hdr.inner_tcp.urgent_ptr | 16 [144..159] | | +------+--------------------------------------------------+----------------+------------+ | 3 | state egress::parse_ipv4 | 20 bytes | | | | | | | | | egress::hdr.ipv4.version | 4 [0..3] | | | | egress::hdr.ipv4.ihl | 4 [4..7] | | | | egress::hdr.ipv4.diffserv | 8 [8..15] | | | | egress::hdr.ipv4.total_len | 16 [16..31] | | | | egress::hdr.ipv4.identification | 16 [32..47] | | | | egress::hdr.ipv4.flags | 3 [48..50] | | | | egress::hdr.ipv4.frag_offset | 13 [51..63] | | | | egress::hdr.ipv4.ttl | 8 [64..71] | | | | egress::hdr.ipv4.protocol | 8 [72..79] | | | | egress::hdr.ipv4.hdr_checksum | 16 [80..95] | | | | egress::hdr.ipv4.src_addr | 32 [96..127] | | | | egress::hdr.ipv4.dst_addr | 32 [128..159] | ( phv ) | +------+--------------------------------------------------+----------------+------------+ | 4 | state egress::parse_inner_eth | 11 bytes | | | | | | | | | egress::hdr.inner_eth.dst_mac | 48 [0..47] | | | | egress::hdr.inner_eth.src_mac[47:8] | 40 [48..87] | | +------+--------------------------------------------------+----------------+------------+ | 5 | state egress::parse_inner_ipv4 | 10 bytes | | | | | | | | | egress::hdr.inner_ipv4.version | 4 [0..3] | | | | egress::hdr.inner_ipv4.ihl | 4 [4..7] | | | | egress::hdr.inner_ipv4.diffserv | 8 [8..15] | | | | egress::hdr.inner_ipv4.total_len | 16 [16..31] | | | | egress::hdr.inner_ipv4.identification | 16 [32..47] | | | | egress::hdr.inner_ipv4.flags | 3 [48..50] | | | | egress::hdr.inner_ipv4.frag_offset | 13 [51..63] | | | | egress::hdr.inner_ipv4.ttl | 8 [64..71] | ( phv* ) | | | egress::hdr.inner_ipv4.protocol | 8 [72..79] | | +------+--------------------------------------------------+----------------+------------+ | 6 | state egress::parse_inner_udp | 8 bytes | | | | | | | | | egress::hdr.inner_udp.src_port | 16 [0..15] | | | | egress::hdr.inner_udp.dst_port | 16 [16..31] | | | | egress::hdr.inner_udp.hdr_length | 16 [32..47] | | | | egress::hdr.inner_udp.checksum | 16 [48..63] | | +------+--------------------------------------------------+----------------+------------+ | 7 | state egress::parse_udp | 8 bytes | | | | | | | | | egress::hdr.udp.src_port | 16 [0..15] | | | | egress::hdr.udp.dst_port | 16 [16..31] | | | | egress::hdr.udp.hdr_length | 16 [32..47] | | | | egress::hdr.udp.checksum | 16 [48..63] | | +------+--------------------------------------------------+----------------+------------+ | 8 | state egress::parse_icmp | 5 bytes | | | | | | | | | egress::hdr.icmp.hdr_checksum[7:0] | 8 [0..7] | | | | egress::hdr.icmp.data | 32 [8..39] | | +------+--------------------------------------------------+----------------+------------+ | 9 | state egress::parse_geneve | 5 bytes | | | | | | | | | egress::hdr.geneve.version | 2 [0..1] | | | | egress::hdr.geneve.opt_len | 6 [2..7] | | | | egress::hdr.geneve.ctrl | 1 [8..8] | | | | egress::hdr.geneve.crit | 1 [9..9] | | | | egress::hdr.geneve.reserved | 6 [10..15] | | | | egress::hdr.geneve.protocol | 16 [16..31] | | | | egress::hdr.geneve.vni[23:16] | 8 [32..39] | | +------+--------------------------------------------------+----------------+------------+ | 10 | state egress::parse_geneve_opt | 4 bytes | | | | | | | | | egress::hdr.geneve_opts.ox_external_tag.class | 16 [0..15] | | | | egress::hdr.geneve_opts.ox_external_tag.crit | 1 [16..16] | | | | egress::hdr.geneve_opts.ox_external_tag.type | 7 [17..23] | | | | egress::hdr.geneve_opts.ox_external_tag.reserved | 3 [24..26] | | | | egress::hdr.geneve_opts.ox_external_tag.opt_len | 5 [27..31] | | +------+--------------------------------------------------+----------------+------------+ | 11 | state egress::parse_inner_ipv4 | 7 bytes | | | | | | | | | egress::hdr.inner_ipv4.src_addr[23:0] | 24 [0..23] | | | | egress::hdr.inner_ipv4.dst_addr | 32 [24..55] | ( phv ) | +------+--------------------------------------------------+----------------+------------+ | | Total Bits | 1424 | | +------+--------------------------------------------------+----------------+------------+ Packets will use up to 8 CLOTs. The parser path(s) that will use the most CLOTs contain the following states: egress::parse_inner_tcp (1 CLOTs) egress::parse_inner_udp (1 CLOTs) egress::parse_inner_ipv4 (2 CLOTs) egress::parse_inner_eth (1 CLOTs) egress::geneve_parsed (0 CLOTs) egress::parse_geneve_mcast_tag (0 CLOTs) egress::parse_geneve_ox_opt (0 CLOTs) egress::parse_geneve_opt (1 CLOTs) egress::parse_geneve (1 CLOTs) egress::parse_udp (1 CLOTs) egress::parse_ipv4 (1 CLOTs) egress::parse_ipv6 (1 CLOTs) egress::parse_vlan (0 CLOTs) $entry_point.start (0 CLOTs) All fields: +---------------------------------------------------+------+-------+-----------+ | Field | Bits | CLOTs | Property | +---------------------------------------------------+------+-------+-----------+ | ingress::ig_intr_md.ingress_port | 9 | | read-only | | ingress::meta.bridge_hdr.ingress_port | 9 | | unused | | ingress::hdr.ethernet.dst_mac | 48 | | modified | | ingress::hdr.ethernet.src_mac | 48 | | modified | | ingress::hdr.ethernet.ether_type | 16 | | modified | | ingress::meta.orig_src_mac | 48 | | read-only | | ingress::hdr.sidecar.sc_code | 8 | | modified | | ingress::hdr.sidecar.sc_pad | 8 | | unused | | ingress::hdr.sidecar.sc_ingress | 16 | | modified | | ingress::hdr.sidecar.sc_egress | 16 | | modified | | ingress::hdr.sidecar.sc_ether_type | 16 | | modified | | ingress::hdr.sidecar.sc_payload | 128 | | modified | | ingress::hdr.vlan.pcp | 3 | | modified | | ingress::hdr.vlan.dei | 1 | | modified | | ingress::hdr.vlan.vlan_id | 12 | | modified | | ingress::hdr.vlan.ether_type | 16 | | modified | | ingress::hdr.ipv4.version | 4 | | modified | | ingress::hdr.ipv4.ihl | 4 | | modified | | ingress::hdr.ipv4.diffserv | 8 | | modified | | ingress::hdr.ipv4.total_len | 16 | | modified | | ingress::hdr.ipv4.identification | 16 | | modified | | ingress::hdr.ipv4.flags | 3 | | modified | | ingress::hdr.ipv4.frag_offset | 13 | | modified | | ingress::hdr.ipv4.ttl | 8 | | modified | | ingress::hdr.ipv4.protocol | 8 | | modified | | ingress::hdr.ipv4.hdr_checksum | 16 | | checksum | | ingress::hdr.ipv4.src_addr | 32 | | modified | | ingress::hdr.ipv4.dst_addr | 32 | | modified | | ingress::meta.orig_src_ipv4 | 32 | | read-only | | ingress::meta.orig_dst_ipv4 | 32 | | read-only | | ingress::hdr.icmp.type | 8 | | modified | | ingress::hdr.icmp.code | 8 | | modified | | ingress::hdr.icmp.hdr_checksum | 16 | | checksum | | ingress::hdr.icmp.data | 32 | | modified | | ingress::hdr.tcp.src_port | 16 | | modified | | ingress::hdr.tcp.dst_port | 16 | | modified | | ingress::hdr.tcp.seq_no | 32 | | modified | | ingress::hdr.tcp.ack_no | 32 | | modified | | ingress::hdr.tcp.data_offset | 4 | | modified | | ingress::hdr.tcp.res | 4 | | modified | | ingress::hdr.tcp.flags | 8 | | modified | | ingress::hdr.tcp.window | 16 | | modified | | ingress::hdr.tcp.checksum | 16 | | modified | | ingress::hdr.tcp.urgent_ptr | 16 | | modified | | ingress::meta.l4_src_port | 16 | | read-only | | ingress::meta.l4_dst_port | 16 | | modified | | ingress::hdr.udp.src_port | 16 | | modified | | ingress::hdr.udp.dst_port | 16 | | modified | | ingress::hdr.udp.hdr_length | 16 | | modified | | ingress::hdr.udp.checksum | 16 | | checksum | | ingress::hdr.geneve.version | 2 | | modified | | ingress::hdr.geneve.opt_len | 6 | | modified | | ingress::hdr.geneve.ctrl | 1 | | modified | | ingress::hdr.geneve.crit | 1 | | modified | | ingress::hdr.geneve.reserved | 6 | | modified | | ingress::hdr.geneve.protocol | 16 | | modified | | ingress::hdr.geneve.vni | 24 | | modified | | ingress::hdr.geneve.reserved2 | 8 | | modified | | ingress::hdr.inner_eth.dst_mac | 48 | | modified | | ingress::hdr.inner_eth.src_mac | 48 | | modified | | ingress::hdr.inner_eth.ether_type | 16 | | modified | | ingress::hdr.inner_ipv4.version | 4 | | modified | | ingress::hdr.inner_ipv4.ihl | 4 | | modified | | ingress::hdr.inner_ipv4.diffserv | 8 | | modified | | ingress::hdr.inner_ipv4.total_len | 16 | | modified | | ingress::hdr.inner_ipv4.identification | 16 | | modified | | ingress::hdr.inner_ipv4.flags | 3 | | modified | | ingress::hdr.inner_ipv4.frag_offset | 13 | | modified | | ingress::hdr.inner_ipv4.ttl | 8 | | modified | | ingress::hdr.inner_ipv4.protocol | 8 | | modified | | ingress::hdr.inner_ipv4.hdr_checksum | 16 | | modified | | ingress::hdr.inner_ipv4.src_addr | 32 | | modified | | ingress::hdr.inner_ipv4.dst_addr | 32 | | modified | | ingress::hdr.inner_tcp.src_port | 16 | | modified | | ingress::hdr.inner_tcp.dst_port | 16 | | modified | | ingress::hdr.inner_tcp.seq_no | 32 | | modified | | ingress::hdr.inner_tcp.ack_no | 32 | | modified | | ingress::hdr.inner_tcp.data_offset | 4 | | modified | | ingress::hdr.inner_tcp.res | 4 | | modified | | ingress::hdr.inner_tcp.flags | 8 | | modified | | ingress::hdr.inner_tcp.window | 16 | | modified | | ingress::hdr.inner_tcp.checksum | 16 | | modified | | ingress::hdr.inner_tcp.urgent_ptr | 16 | | modified | | ingress::hdr.inner_udp.src_port | 16 | | modified | | ingress::hdr.inner_udp.dst_port | 16 | | modified | | ingress::hdr.inner_udp.hdr_length | 16 | | modified | | ingress::hdr.inner_udp.checksum | 16 | | modified | | ingress::hdr.inner_icmp.type | 8 | | modified | | ingress::hdr.inner_icmp.code | 8 | | modified | | ingress::hdr.inner_icmp.hdr_checksum | 16 | | modified | | ingress::hdr.inner_icmp.data | 32 | | modified | | ingress::hdr.inner_ipv6.version | 4 | | modified | | ingress::hdr.inner_ipv6.traffic_class | 8 | | modified | | ingress::hdr.inner_ipv6.flow_label | 20 | | modified | | ingress::hdr.inner_ipv6.payload_len | 16 | | modified | | ingress::hdr.inner_ipv6.next_hdr | 8 | | modified | | ingress::hdr.inner_ipv6.hop_limit | 8 | | modified | | ingress::hdr.inner_ipv6.src_addr | 128 | | modified | | ingress::hdr.inner_ipv6.dst_addr | 128 | | modified | | ingress::hdr.geneve_opts.ox_external_tag.class | 16 | | modified | | ingress::hdr.geneve_opts.ox_external_tag.crit | 1 | | modified | | ingress::hdr.geneve_opts.ox_external_tag.type | 7 | | modified | | ingress::hdr.geneve_opts.ox_external_tag.reserved | 3 | | modified | | ingress::hdr.geneve_opts.ox_external_tag.opt_len | 5 | | modified | | ingress::hdr.geneve_opts.ox_mcast_tag.mcast_tag | 2 | 1 | read-only | | ingress::hdr.geneve_opts.ox_mcast_tag.reserved | 30 | 1 | unused | | ingress::hdr.ipv6.version | 4 | | modified | | ingress::hdr.ipv6.traffic_class | 8 | | modified | | ingress::hdr.ipv6.flow_label | 20 | | modified | | ingress::hdr.ipv6.payload_len | 16 | | modified | | ingress::hdr.ipv6.next_hdr | 8 | | modified | | ingress::hdr.ipv6.hop_limit | 8 | | modified | | ingress::hdr.ipv6.src_addr | 128 | | modified | | ingress::hdr.ipv6.dst_addr | 128 | | modified | | ingress::hdr.arp.hw_type | 16 | 0 | unused | | ingress::hdr.arp.proto_type | 16 | 0 | unused | | ingress::hdr.arp.hw_addr_len | 8 | 0 | unused | | ingress::hdr.arp.proto_addr_len | 8 | 0 | unused | | ingress::hdr.arp.opcode | 16 | 0 | unused | | ingress::hdr.arp.sender_mac | 48 | 0 | unused | | ingress::hdr.arp.sender_ip | 32 | 0 | unused | | ingress::hdr.arp.target_mac | 48 | 0 | unused | | ingress::hdr.arp.target_ip | 32 | 0 | unused | | egress::eg_intr_md.egress_port | 9 | | read-only | | egress::eg_intr_md.egress_rid | 16 | | read-only | | egress::eg_intr_md.egress_rid_first | 1 | | read-only | | egress::meta.bridge_hdr.ingress_port | 9 | | read-only | | egress::hdr.ethernet.dst_mac | 48 | | modified | | egress::hdr.ethernet.src_mac | 48 | | modified | | egress::hdr.ethernet.ether_type | 16 | | modified | | egress::hdr.vlan.pcp | 3 | | modified | | egress::hdr.vlan.dei | 1 | | modified | | egress::hdr.vlan.vlan_id | 12 | | modified | | egress::hdr.vlan.ether_type | 16 | | modified | | egress::hdr.ipv4.version | 4 | 3 | unused | | egress::hdr.ipv4.ihl | 4 | 3 | unused | | egress::hdr.ipv4.diffserv | 8 | 3 | unused | | egress::hdr.ipv4.total_len | 16 | 3 | unused | | egress::hdr.ipv4.identification | 16 | 3 | unused | | egress::hdr.ipv4.flags | 3 | 3 | unused | | egress::hdr.ipv4.frag_offset | 13 | 3 | unused | | egress::hdr.ipv4.ttl | 8 | 3 | unused | | egress::hdr.ipv4.protocol | 8 | 3 | unused | | egress::hdr.ipv4.hdr_checksum | 16 | 3 | unused | | egress::hdr.ipv4.src_addr | 32 | 3 | unused | | egress::hdr.ipv4.dst_addr | 32 | 3 | read-only | | egress::hdr.icmp.type | 8 | | unused | | egress::hdr.icmp.code | 8 | | unused | | egress::hdr.icmp.hdr_checksum | 16 | 8 | unused | | egress::hdr.icmp.data | 32 | 8 | unused | | egress::hdr.udp.src_port | 16 | 7 | unused | | egress::hdr.udp.dst_port | 16 | 7 | unused | | egress::hdr.udp.hdr_length | 16 | 7 | unused | | egress::hdr.udp.checksum | 16 | 7 | unused | | egress::hdr.geneve.version | 2 | 9 | unused | | egress::hdr.geneve.opt_len | 6 | 9 | unused | | egress::hdr.geneve.ctrl | 1 | 9 | unused | | egress::hdr.geneve.crit | 1 | 9 | unused | | egress::hdr.geneve.reserved | 6 | 9 | unused | | egress::hdr.geneve.protocol | 16 | 9 | unused | | egress::hdr.geneve.vni | 24 | 9 | unused | | egress::hdr.geneve.reserved2 | 8 | | unused | | egress::hdr.inner_eth.dst_mac | 48 | 4 | unused | | egress::hdr.inner_eth.src_mac | 48 | 4 | unused | | egress::hdr.inner_eth.ether_type | 16 | | unused | | egress::hdr.inner_ipv4.version | 4 | 5 | unused | | egress::hdr.inner_ipv4.ihl | 4 | 5 | unused | | egress::hdr.inner_ipv4.diffserv | 8 | 5 | unused | | egress::hdr.inner_ipv4.total_len | 16 | 5 | unused | | egress::hdr.inner_ipv4.identification | 16 | 5 | unused | | egress::hdr.inner_ipv4.flags | 3 | 5 | unused | | egress::hdr.inner_ipv4.frag_offset | 13 | 5 | unused | | egress::hdr.inner_ipv4.ttl | 8 | 5 | modified | | egress::hdr.inner_ipv4.protocol | 8 | 5 | unused | | egress::hdr.inner_ipv4.hdr_checksum | 16 | | checksum | | egress::hdr.inner_ipv4.src_addr | 32 | 11 | unused | | egress::hdr.inner_ipv4.dst_addr | 32 | 11 | read-only | | egress::hdr.inner_tcp.src_port | 16 | 2 | unused | | egress::hdr.inner_tcp.dst_port | 16 | 2 | unused | | egress::hdr.inner_tcp.seq_no | 32 | 2 | unused | | egress::hdr.inner_tcp.ack_no | 32 | 2 | unused | | egress::hdr.inner_tcp.data_offset | 4 | 2 | unused | | egress::hdr.inner_tcp.res | 4 | 2 | unused | | egress::hdr.inner_tcp.flags | 8 | 2 | unused | | egress::hdr.inner_tcp.window | 16 | 2 | unused | | egress::hdr.inner_tcp.checksum | 16 | 2 | unused | | egress::hdr.inner_tcp.urgent_ptr | 16 | 2 | unused | | egress::hdr.inner_udp.src_port | 16 | 6 | unused | | egress::hdr.inner_udp.dst_port | 16 | 6 | unused | | egress::hdr.inner_udp.hdr_length | 16 | 6 | unused | | egress::hdr.inner_udp.checksum | 16 | 6 | unused | | egress::hdr.inner_ipv6.version | 4 | 1 | unused | | egress::hdr.inner_ipv6.traffic_class | 8 | 1 | unused | | egress::hdr.inner_ipv6.flow_label | 20 | 1 | unused | | egress::hdr.inner_ipv6.payload_len | 16 | 1 | unused | | egress::hdr.inner_ipv6.next_hdr | 8 | 1 | unused | | egress::hdr.inner_ipv6.hop_limit | 8 | 1 | modified | | egress::hdr.inner_ipv6.src_addr | 128 | 1 | unused | | egress::hdr.inner_ipv6.dst_addr | 128 | 1 | read-only | | egress::hdr.geneve_opts.ox_external_tag.class | 16 | 10 | unused | | egress::hdr.geneve_opts.ox_external_tag.crit | 1 | 10 | unused | | egress::hdr.geneve_opts.ox_external_tag.type | 7 | 10 | unused | | egress::hdr.geneve_opts.ox_external_tag.reserved | 3 | 10 | unused | | egress::hdr.geneve_opts.ox_external_tag.opt_len | 5 | 10 | unused | | egress::hdr.geneve_opts.ox_mcast_tag.mcast_tag | 2 | | read-only | | egress::hdr.geneve_opts.ox_mcast_tag.reserved | 30 | | unused | | egress::hdr.ipv6.version | 4 | 0 | unused | | egress::hdr.ipv6.traffic_class | 8 | 0 | unused | | egress::hdr.ipv6.flow_label | 20 | 0 | unused | | egress::hdr.ipv6.payload_len | 16 | 0 | unused | | egress::hdr.ipv6.next_hdr | 8 | 0 | unused | | egress::hdr.ipv6.hop_limit | 8 | 0 | unused | | egress::hdr.ipv6.src_addr | 128 | 0 | unused | | egress::hdr.ipv6.dst_addr | 128 | 0 | read-only | +---------------------------------------------------+------+-------+-----------+ | Unused fields | 84 | | | | Unused bits | 1469 | | | | Unused CLOT-allocated fields | 77 | | | | Unused CLOT-allocated bits | 1342 | | | +---------------------------------------------------+------+-------+-----------+ CLOT Allocation (ingress): +------+-------------------------------------------------+---------------+-----------+ | CLOT | Fields | Bits | Property | +------+-------------------------------------------------+---------------+-----------+ | 0 | state ingress::parse_arp | 28 bytes | | | | | | | | | ingress::hdr.arp.hw_type | 16 [0..15] | | | | ingress::hdr.arp.proto_type | 16 [16..31] | | | | ingress::hdr.arp.hw_addr_len | 8 [32..39] | | | | ingress::hdr.arp.proto_addr_len | 8 [40..47] | | | | ingress::hdr.arp.opcode | 16 [48..63] | | | | ingress::hdr.arp.sender_mac | 48 [64..111] | | | | ingress::hdr.arp.sender_ip | 32 [112..143] | | | | ingress::hdr.arp.target_mac | 48 [144..191] | | | | ingress::hdr.arp.target_ip | 32 [192..223] | | +------+-------------------------------------------------+---------------+-----------+ | 1 | state ingress::parse_geneve_mcast_tag | 4 bytes | | | | | | | | | ingress::hdr.geneve_opts.ox_mcast_tag.mcast_tag | 2 [0..1] | ( phv ) | | | ingress::hdr.geneve_opts.ox_mcast_tag.reserved | 30 [2..31] | | +------+-------------------------------------------------+---------------+-----------+ | | Total Bits | 256 | | +------+-------------------------------------------------+---------------+-----------+ Packets will use up to 1 CLOTs. The parser path(s) that will use the most CLOTs contain the following states: ingress::parse_inner_tcp (0 CLOTs) ingress::parse_inner_udp (0 CLOTs) ingress::parse_inner_icmp (0 CLOTs) ingress::parse_inner_ipv4 (0 CLOTs) ingress::parse_inner_ipv6 (0 CLOTs) ingress::parse_inner_eth (0 CLOTs) ingress::geneve_parsed (0 CLOTs) ingress::parse_geneve_mcast_tag (1 CLOTs) ingress::parse_geneve_ox_opt (0 CLOTs) ingress::parse_geneve_opt (0 CLOTs) ingress::parse_geneve (0 CLOTs) ingress::parse_udp (0 CLOTs) ingress::goto_proto_ipv4 (0 CLOTs) ingress::set_mcast_ipv4 (0 CLOTs) ingress::validate_ipv4_mcast_3 (0 CLOTs) ingress::validate_ipv4_mcast1_2 (0 CLOTs) ingress::validate_ttl (0 CLOTs) ingress::parse_ipv4 (0 CLOTs) ingress::goto_proto_ipv6 (0 CLOTs) ingress::set_link_local_mcast (0 CLOTs) ingress::set_mcast_ipv6 (0 CLOTs) ingress::validate_hop_limit (0 CLOTs) ingress::check_ipv6_mcast (0 CLOTs) ingress::parse_ipv6 (0 CLOTs) ingress::parse_arp (1 CLOTs) ingress::parse_vlan (0 CLOTs) ingress::parse_sidecar (0 CLOTs) $entry_point.start (0 CLOTs) CLOT Allocation (egress): +------+--------------------------------------------------+----------------+------------+ | CLOT | Fields | Bits | Property | +------+--------------------------------------------------+----------------+------------+ | 0 | state egress::parse_ipv6 | 40 bytes | | | | | | | | | egress::hdr.ipv6.version | 4 [0..3] | | | | egress::hdr.ipv6.traffic_class | 8 [4..11] | | | | egress::hdr.ipv6.flow_label | 20 [12..31] | | | | egress::hdr.ipv6.payload_len | 16 [32..47] | | | | egress::hdr.ipv6.next_hdr | 8 [48..55] | | | | egress::hdr.ipv6.hop_limit | 8 [56..63] | | | | egress::hdr.ipv6.src_addr | 128 [64..191] | | | | egress::hdr.ipv6.dst_addr | 128 [192..319] | ( phv ) | +------+--------------------------------------------------+----------------+------------+ | 1 | state egress::parse_inner_ipv6 | 40 bytes | | | | | | | | | egress::hdr.inner_ipv6.version | 4 [0..3] | | | | egress::hdr.inner_ipv6.traffic_class | 8 [4..11] | | | | egress::hdr.inner_ipv6.flow_label | 20 [12..31] | | | | egress::hdr.inner_ipv6.payload_len | 16 [32..47] | | | | egress::hdr.inner_ipv6.next_hdr | 8 [48..55] | | | | egress::hdr.inner_ipv6.hop_limit | 8 [56..63] | ( phv* ) | | | egress::hdr.inner_ipv6.src_addr | 128 [64..191] | | | | egress::hdr.inner_ipv6.dst_addr | 128 [192..319] | ( phv ) | +------+--------------------------------------------------+----------------+------------+ | 2 | state egress::parse_inner_tcp | 20 bytes | | | | | | | | | egress::hdr.inner_tcp.src_port | 16 [0..15] | | | | egress::hdr.inner_tcp.dst_port | 16 [16..31] | | | | egress::hdr.inner_tcp.seq_no | 32 [32..63] | | | | egress::hdr.inner_tcp.ack_no | 32 [64..95] | | | | egress::hdr.inner_tcp.data_offset | 4 [96..99] | | | | egress::hdr.inner_tcp.res | 4 [100..103] | | | | egress::hdr.inner_tcp.flags | 8 [104..111] | | | | egress::hdr.inner_tcp.window | 16 [112..127] | | | | egress::hdr.inner_tcp.checksum | 16 [128..143] | | | | egress::hdr.inner_tcp.urgent_ptr | 16 [144..159] | | +------+--------------------------------------------------+----------------+------------+ | 3 | state egress::parse_ipv4 | 20 bytes | | | | | | | | | egress::hdr.ipv4.version | 4 [0..3] | | | | egress::hdr.ipv4.ihl | 4 [4..7] | | | | egress::hdr.ipv4.diffserv | 8 [8..15] | | | | egress::hdr.ipv4.total_len | 16 [16..31] | | | | egress::hdr.ipv4.identification | 16 [32..47] | | | | egress::hdr.ipv4.flags | 3 [48..50] | | | | egress::hdr.ipv4.frag_offset | 13 [51..63] | | | | egress::hdr.ipv4.ttl | 8 [64..71] | | | | egress::hdr.ipv4.protocol | 8 [72..79] | | | | egress::hdr.ipv4.hdr_checksum | 16 [80..95] | | | | egress::hdr.ipv4.src_addr | 32 [96..127] | | | | egress::hdr.ipv4.dst_addr | 32 [128..159] | ( phv ) | +------+--------------------------------------------------+----------------+------------+ | 4 | state egress::parse_inner_eth | 11 bytes | | | | | | | | | egress::hdr.inner_eth.dst_mac | 48 [0..47] | | | | egress::hdr.inner_eth.src_mac[47:8] | 40 [48..87] | | +------+--------------------------------------------------+----------------+------------+ | 5 | state egress::parse_inner_ipv4 | 10 bytes | | | | | | | | | egress::hdr.inner_ipv4.version | 4 [0..3] | | | | egress::hdr.inner_ipv4.ihl | 4 [4..7] | | | | egress::hdr.inner_ipv4.diffserv | 8 [8..15] | | | | egress::hdr.inner_ipv4.total_len | 16 [16..31] | | | | egress::hdr.inner_ipv4.identification | 16 [32..47] | | | | egress::hdr.inner_ipv4.flags | 3 [48..50] | | | | egress::hdr.inner_ipv4.frag_offset | 13 [51..63] | | | | egress::hdr.inner_ipv4.ttl | 8 [64..71] | ( phv* ) | | | egress::hdr.inner_ipv4.protocol | 8 [72..79] | | +------+--------------------------------------------------+----------------+------------+ | 6 | state egress::parse_inner_udp | 8 bytes | | | | | | | | | egress::hdr.inner_udp.src_port | 16 [0..15] | | | | egress::hdr.inner_udp.dst_port | 16 [16..31] | | | | egress::hdr.inner_udp.hdr_length | 16 [32..47] | | | | egress::hdr.inner_udp.checksum | 16 [48..63] | | +------+--------------------------------------------------+----------------+------------+ | 7 | state egress::parse_udp | 8 bytes | | | | | | | | | egress::hdr.udp.src_port | 16 [0..15] | | | | egress::hdr.udp.dst_port | 16 [16..31] | | | | egress::hdr.udp.hdr_length | 16 [32..47] | | | | egress::hdr.udp.checksum | 16 [48..63] | | +------+--------------------------------------------------+----------------+------------+ | 8 | state egress::parse_icmp | 5 bytes | | | | | | | | | egress::hdr.icmp.hdr_checksum[7:0] | 8 [0..7] | | | | egress::hdr.icmp.data | 32 [8..39] | | +------+--------------------------------------------------+----------------+------------+ | 9 | state egress::parse_geneve | 5 bytes | | | | | | | | | egress::hdr.geneve.version | 2 [0..1] | | | | egress::hdr.geneve.opt_len | 6 [2..7] | | | | egress::hdr.geneve.ctrl | 1 [8..8] | | | | egress::hdr.geneve.crit | 1 [9..9] | | | | egress::hdr.geneve.reserved | 6 [10..15] | | | | egress::hdr.geneve.protocol | 16 [16..31] | | | | egress::hdr.geneve.vni[23:16] | 8 [32..39] | | +------+--------------------------------------------------+----------------+------------+ | 10 | state egress::parse_geneve_opt | 4 bytes | | | | | | | | | egress::hdr.geneve_opts.ox_external_tag.class | 16 [0..15] | | | | egress::hdr.geneve_opts.ox_external_tag.crit | 1 [16..16] | | | | egress::hdr.geneve_opts.ox_external_tag.type | 7 [17..23] | | | | egress::hdr.geneve_opts.ox_external_tag.reserved | 3 [24..26] | | | | egress::hdr.geneve_opts.ox_external_tag.opt_len | 5 [27..31] | | +------+--------------------------------------------------+----------------+------------+ | 11 | state egress::parse_inner_ipv4 | 7 bytes | | | | | | | | | egress::hdr.inner_ipv4.src_addr[23:0] | 24 [0..23] | | | | egress::hdr.inner_ipv4.dst_addr | 32 [24..55] | ( phv ) | +------+--------------------------------------------------+----------------+------------+ | | Total Bits | 1424 | | +------+--------------------------------------------------+----------------+------------+ Packets will use up to 8 CLOTs. The parser path(s) that will use the most CLOTs contain the following states: egress::parse_inner_tcp (1 CLOTs) egress::parse_inner_udp (1 CLOTs) egress::parse_inner_ipv4 (2 CLOTs) egress::parse_inner_eth (1 CLOTs) egress::geneve_parsed (0 CLOTs) egress::parse_geneve_mcast_tag (0 CLOTs) egress::parse_geneve_ox_opt (0 CLOTs) egress::parse_geneve_opt (1 CLOTs) egress::parse_geneve (1 CLOTs) egress::parse_udp (1 CLOTs) egress::parse_ipv4 (1 CLOTs) egress::parse_ipv6 (1 CLOTs) egress::parse_vlan (0 CLOTs) $entry_point.start (0 CLOTs) All fields: +---------------------------------------------------+------+-------+-----------+ | Field | Bits | CLOTs | Property | +---------------------------------------------------+------+-------+-----------+ | ingress::ig_intr_md.ingress_port | 9 | | read-only | | ingress::meta.bridge_hdr.ingress_port | 9 | | unused | | ingress::hdr.ethernet.dst_mac | 48 | | modified | | ingress::hdr.ethernet.src_mac | 48 | | modified | | ingress::hdr.ethernet.ether_type | 16 | | modified | | ingress::meta.orig_src_mac | 48 | | read-only | | ingress::hdr.sidecar.sc_code | 8 | | modified | | ingress::hdr.sidecar.sc_pad | 8 | | unused | | ingress::hdr.sidecar.sc_ingress | 16 | | modified | | ingress::hdr.sidecar.sc_egress | 16 | | modified | | ingress::hdr.sidecar.sc_ether_type | 16 | | modified | | ingress::hdr.sidecar.sc_payload | 128 | | modified | | ingress::hdr.vlan.pcp | 3 | | modified | | ingress::hdr.vlan.dei | 1 | | modified | | ingress::hdr.vlan.vlan_id | 12 | | modified | | ingress::hdr.vlan.ether_type | 16 | | modified | | ingress::hdr.ipv4.version | 4 | | modified | | ingress::hdr.ipv4.ihl | 4 | | modified | | ingress::hdr.ipv4.diffserv | 8 | | modified | | ingress::hdr.ipv4.total_len | 16 | | modified | | ingress::hdr.ipv4.identification | 16 | | modified | | ingress::hdr.ipv4.flags | 3 | | modified | | ingress::hdr.ipv4.frag_offset | 13 | | modified | | ingress::hdr.ipv4.ttl | 8 | | modified | | ingress::hdr.ipv4.protocol | 8 | | modified | | ingress::hdr.ipv4.hdr_checksum | 16 | | checksum | | ingress::hdr.ipv4.src_addr | 32 | | modified | | ingress::hdr.ipv4.dst_addr | 32 | | modified | | ingress::meta.orig_src_ipv4 | 32 | | read-only | | ingress::meta.orig_dst_ipv4 | 32 | | read-only | | ingress::hdr.icmp.type | 8 | | modified | | ingress::hdr.icmp.code | 8 | | modified | | ingress::hdr.icmp.hdr_checksum | 16 | | checksum | | ingress::hdr.icmp.data | 32 | | modified | | ingress::hdr.tcp.src_port | 16 | | modified | | ingress::hdr.tcp.dst_port | 16 | | modified | | ingress::hdr.tcp.seq_no | 32 | | modified | | ingress::hdr.tcp.ack_no | 32 | | modified | | ingress::hdr.tcp.data_offset | 4 | | modified | | ingress::hdr.tcp.res | 4 | | modified | | ingress::hdr.tcp.flags | 8 | | modified | | ingress::hdr.tcp.window | 16 | | modified | | ingress::hdr.tcp.checksum | 16 | | modified | | ingress::hdr.tcp.urgent_ptr | 16 | | modified | | ingress::meta.l4_src_port | 16 | | read-only | | ingress::meta.l4_dst_port | 16 | | modified | | ingress::hdr.udp.src_port | 16 | | modified | | ingress::hdr.udp.dst_port | 16 | | modified | | ingress::hdr.udp.hdr_length | 16 | | modified | | ingress::hdr.udp.checksum | 16 | | checksum | | ingress::hdr.geneve.version | 2 | | modified | | ingress::hdr.geneve.opt_len | 6 | | modified | | ingress::hdr.geneve.ctrl | 1 | | modified | | ingress::hdr.geneve.crit | 1 | | modified | | ingress::hdr.geneve.reserved | 6 | | modified | | ingress::hdr.geneve.protocol | 16 | | modified | | ingress::hdr.geneve.vni | 24 | | modified | | ingress::hdr.geneve.reserved2 | 8 | | modified | | ingress::hdr.inner_eth.dst_mac | 48 | | modified | | ingress::hdr.inner_eth.src_mac | 48 | | modified | | ingress::hdr.inner_eth.ether_type | 16 | | modified | | ingress::hdr.inner_ipv4.version | 4 | | modified | | ingress::hdr.inner_ipv4.ihl | 4 | | modified | | ingress::hdr.inner_ipv4.diffserv | 8 | | modified | | ingress::hdr.inner_ipv4.total_len | 16 | | modified | | ingress::hdr.inner_ipv4.identification | 16 | | modified | | ingress::hdr.inner_ipv4.flags | 3 | | modified | | ingress::hdr.inner_ipv4.frag_offset | 13 | | modified | | ingress::hdr.inner_ipv4.ttl | 8 | | modified | | ingress::hdr.inner_ipv4.protocol | 8 | | modified | | ingress::hdr.inner_ipv4.hdr_checksum | 16 | | modified | | ingress::hdr.inner_ipv4.src_addr | 32 | | modified | | ingress::hdr.inner_ipv4.dst_addr | 32 | | modified | | ingress::hdr.inner_tcp.src_port | 16 | | modified | | ingress::hdr.inner_tcp.dst_port | 16 | | modified | | ingress::hdr.inner_tcp.seq_no | 32 | | modified | | ingress::hdr.inner_tcp.ack_no | 32 | | modified | | ingress::hdr.inner_tcp.data_offset | 4 | | modified | | ingress::hdr.inner_tcp.res | 4 | | modified | | ingress::hdr.inner_tcp.flags | 8 | | modified | | ingress::hdr.inner_tcp.window | 16 | | modified | | ingress::hdr.inner_tcp.checksum | 16 | | modified | | ingress::hdr.inner_tcp.urgent_ptr | 16 | | modified | | ingress::hdr.inner_udp.src_port | 16 | | modified | | ingress::hdr.inner_udp.dst_port | 16 | | modified | | ingress::hdr.inner_udp.hdr_length | 16 | | modified | | ingress::hdr.inner_udp.checksum | 16 | | modified | | ingress::hdr.inner_icmp.type | 8 | | modified | | ingress::hdr.inner_icmp.code | 8 | | modified | | ingress::hdr.inner_icmp.hdr_checksum | 16 | | modified | | ingress::hdr.inner_icmp.data | 32 | | modified | | ingress::hdr.inner_ipv6.version | 4 | | modified | | ingress::hdr.inner_ipv6.traffic_class | 8 | | modified | | ingress::hdr.inner_ipv6.flow_label | 20 | | modified | | ingress::hdr.inner_ipv6.payload_len | 16 | | modified | | ingress::hdr.inner_ipv6.next_hdr | 8 | | modified | | ingress::hdr.inner_ipv6.hop_limit | 8 | | modified | | ingress::hdr.inner_ipv6.src_addr | 128 | | modified | | ingress::hdr.inner_ipv6.dst_addr | 128 | | modified | | ingress::hdr.geneve_opts.ox_external_tag.class | 16 | | modified | | ingress::hdr.geneve_opts.ox_external_tag.crit | 1 | | modified | | ingress::hdr.geneve_opts.ox_external_tag.type | 7 | | modified | | ingress::hdr.geneve_opts.ox_external_tag.reserved | 3 | | modified | | ingress::hdr.geneve_opts.ox_external_tag.opt_len | 5 | | modified | | ingress::hdr.geneve_opts.ox_mcast_tag.mcast_tag | 2 | 1 | read-only | | ingress::hdr.geneve_opts.ox_mcast_tag.reserved | 30 | 1 | unused | | ingress::hdr.ipv6.version | 4 | | modified | | ingress::hdr.ipv6.traffic_class | 8 | | modified | | ingress::hdr.ipv6.flow_label | 20 | | modified | | ingress::hdr.ipv6.payload_len | 16 | | modified | | ingress::hdr.ipv6.next_hdr | 8 | | modified | | ingress::hdr.ipv6.hop_limit | 8 | | modified | | ingress::hdr.ipv6.src_addr | 128 | | modified | | ingress::hdr.ipv6.dst_addr | 128 | | modified | | ingress::hdr.arp.hw_type | 16 | 0 | unused | | ingress::hdr.arp.proto_type | 16 | 0 | unused | | ingress::hdr.arp.hw_addr_len | 8 | 0 | unused | | ingress::hdr.arp.proto_addr_len | 8 | 0 | unused | | ingress::hdr.arp.opcode | 16 | 0 | unused | | ingress::hdr.arp.sender_mac | 48 | 0 | unused | | ingress::hdr.arp.sender_ip | 32 | 0 | unused | | ingress::hdr.arp.target_mac | 48 | 0 | unused | | ingress::hdr.arp.target_ip | 32 | 0 | unused | | egress::eg_intr_md.egress_port | 9 | | read-only | | egress::eg_intr_md.egress_rid | 16 | | read-only | | egress::eg_intr_md.egress_rid_first | 1 | | read-only | | egress::meta.bridge_hdr.ingress_port | 9 | | read-only | | egress::hdr.ethernet.dst_mac | 48 | | modified | | egress::hdr.ethernet.src_mac | 48 | | modified | | egress::hdr.ethernet.ether_type | 16 | | modified | | egress::hdr.vlan.pcp | 3 | | modified | | egress::hdr.vlan.dei | 1 | | modified | | egress::hdr.vlan.vlan_id | 12 | | modified | | egress::hdr.vlan.ether_type | 16 | | modified | | egress::hdr.ipv4.version | 4 | 3 | unused | | egress::hdr.ipv4.ihl | 4 | 3 | unused | | egress::hdr.ipv4.diffserv | 8 | 3 | unused | | egress::hdr.ipv4.total_len | 16 | 3 | unused | | egress::hdr.ipv4.identification | 16 | 3 | unused | | egress::hdr.ipv4.flags | 3 | 3 | unused | | egress::hdr.ipv4.frag_offset | 13 | 3 | unused | | egress::hdr.ipv4.ttl | 8 | 3 | unused | | egress::hdr.ipv4.protocol | 8 | 3 | unused | | egress::hdr.ipv4.hdr_checksum | 16 | 3 | unused | | egress::hdr.ipv4.src_addr | 32 | 3 | unused | | egress::hdr.ipv4.dst_addr | 32 | 3 | read-only | | egress::hdr.icmp.type | 8 | | unused | | egress::hdr.icmp.code | 8 | | unused | | egress::hdr.icmp.hdr_checksum | 16 | 8 | unused | | egress::hdr.icmp.data | 32 | 8 | unused | | egress::hdr.udp.src_port | 16 | 7 | unused | | egress::hdr.udp.dst_port | 16 | 7 | unused | | egress::hdr.udp.hdr_length | 16 | 7 | unused | | egress::hdr.udp.checksum | 16 | 7 | unused | | egress::hdr.geneve.version | 2 | 9 | unused | | egress::hdr.geneve.opt_len | 6 | 9 | unused | | egress::hdr.geneve.ctrl | 1 | 9 | unused | | egress::hdr.geneve.crit | 1 | 9 | unused | | egress::hdr.geneve.reserved | 6 | 9 | unused | | egress::hdr.geneve.protocol | 16 | 9 | unused | | egress::hdr.geneve.vni | 24 | 9 | unused | | egress::hdr.geneve.reserved2 | 8 | | unused | | egress::hdr.inner_eth.dst_mac | 48 | 4 | unused | | egress::hdr.inner_eth.src_mac | 48 | 4 | unused | | egress::hdr.inner_eth.ether_type | 16 | | unused | | egress::hdr.inner_ipv4.version | 4 | 5 | unused | | egress::hdr.inner_ipv4.ihl | 4 | 5 | unused | | egress::hdr.inner_ipv4.diffserv | 8 | 5 | unused | | egress::hdr.inner_ipv4.total_len | 16 | 5 | unused | | egress::hdr.inner_ipv4.identification | 16 | 5 | unused | | egress::hdr.inner_ipv4.flags | 3 | 5 | unused | | egress::hdr.inner_ipv4.frag_offset | 13 | 5 | unused | | egress::hdr.inner_ipv4.ttl | 8 | 5 | modified | | egress::hdr.inner_ipv4.protocol | 8 | 5 | unused | | egress::hdr.inner_ipv4.hdr_checksum | 16 | | checksum | | egress::hdr.inner_ipv4.src_addr | 32 | 11 | unused | | egress::hdr.inner_ipv4.dst_addr | 32 | 11 | read-only | | egress::hdr.inner_tcp.src_port | 16 | 2 | unused | | egress::hdr.inner_tcp.dst_port | 16 | 2 | unused | | egress::hdr.inner_tcp.seq_no | 32 | 2 | unused | | egress::hdr.inner_tcp.ack_no | 32 | 2 | unused | | egress::hdr.inner_tcp.data_offset | 4 | 2 | unused | | egress::hdr.inner_tcp.res | 4 | 2 | unused | | egress::hdr.inner_tcp.flags | 8 | 2 | unused | | egress::hdr.inner_tcp.window | 16 | 2 | unused | | egress::hdr.inner_tcp.checksum | 16 | 2 | unused | | egress::hdr.inner_tcp.urgent_ptr | 16 | 2 | unused | | egress::hdr.inner_udp.src_port | 16 | 6 | unused | | egress::hdr.inner_udp.dst_port | 16 | 6 | unused | | egress::hdr.inner_udp.hdr_length | 16 | 6 | unused | | egress::hdr.inner_udp.checksum | 16 | 6 | unused | | egress::hdr.inner_ipv6.version | 4 | 1 | unused | | egress::hdr.inner_ipv6.traffic_class | 8 | 1 | unused | | egress::hdr.inner_ipv6.flow_label | 20 | 1 | unused | | egress::hdr.inner_ipv6.payload_len | 16 | 1 | unused | | egress::hdr.inner_ipv6.next_hdr | 8 | 1 | unused | | egress::hdr.inner_ipv6.hop_limit | 8 | 1 | modified | | egress::hdr.inner_ipv6.src_addr | 128 | 1 | unused | | egress::hdr.inner_ipv6.dst_addr | 128 | 1 | read-only | | egress::hdr.geneve_opts.ox_external_tag.class | 16 | 10 | unused | | egress::hdr.geneve_opts.ox_external_tag.crit | 1 | 10 | unused | | egress::hdr.geneve_opts.ox_external_tag.type | 7 | 10 | unused | | egress::hdr.geneve_opts.ox_external_tag.reserved | 3 | 10 | unused | | egress::hdr.geneve_opts.ox_external_tag.opt_len | 5 | 10 | unused | | egress::hdr.geneve_opts.ox_mcast_tag.mcast_tag | 2 | | read-only | | egress::hdr.geneve_opts.ox_mcast_tag.reserved | 30 | | unused | | egress::hdr.ipv6.version | 4 | 0 | unused | | egress::hdr.ipv6.traffic_class | 8 | 0 | unused | | egress::hdr.ipv6.flow_label | 20 | 0 | unused | | egress::hdr.ipv6.payload_len | 16 | 0 | unused | | egress::hdr.ipv6.next_hdr | 8 | 0 | unused | | egress::hdr.ipv6.hop_limit | 8 | 0 | unused | | egress::hdr.ipv6.src_addr | 128 | 0 | unused | | egress::hdr.ipv6.dst_addr | 128 | 0 | read-only | +---------------------------------------------------+------+-------+-----------+ | Unused fields | 84 | | | | Unused bits | 1469 | | | | Unused CLOT-allocated fields | 77 | | | | Unused CLOT-allocated bits | 1342 | | | +---------------------------------------------------+------+-------+-----------+