| 1 | ingress::parse_inner_ipv6 is split into 2 states: | ||
| 2 | ingress::parse_inner_ipv6 | ||
| 3 | ingress::parse_inner_ipv6.$split_0 | ||
| 4 | ingress::parse_ipv6 is split into 2 states: | ||
| 5 | ingress::parse_ipv6 | ||
| 6 | ingress::parse_ipv6.$split_0 | ||
| 7 | $entry_point.start is split into 2 states: | ||
| 8 | $entry_point.start | ||
| 9 | $entry_point.start.$split_0 | ||
| 10 | egress::parse_inner_ipv6 is split into 2 states: | ||
| 11 | egress::parse_inner_ipv6 | ||
| 12 | egress::parse_inner_ipv6.$split_0 | ||
| 13 | egress::parse_ipv6 is split into 2 states: | ||
| 14 | egress::parse_ipv6 | ||
| 15 | egress::parse_ipv6.$split_0 | ||
| 16 | allocated { $byte0 } to { [ $entry_point.start : inbuf bit[231] (bit<1>)bridge_hdr_0/bridge_hdr.nat_egress_hit; ] } | ||
| 17 | allocated { $byte0 $byte1 } to { [ egress::parse_ethernet : inbuf bit[96..111] hdr.ethernet/ethernet.ether_type; ] } | ||
| 18 | allocated { $byte0 $byte1 } to { [ egress::parse_vlan : inbuf bit[16..31] hdr.vlan/vlan.ether_type; ] } | ||
| 19 | allocated { $byte0 } to { [ egress::parse_ipv6.$split_0 : inbuf bit[-208..-201] hdr.ipv6/ipv6.next_hdr; ] } | ||
| 20 | allocated { $byte1 $byte2 } to { [ egress::parse_ipv6.$split_0 : inbuf bit[-64..-49] hdr.ipv6/ipv6.dst_addr[127:112]; ] } | ||
| 21 | allocated { $byte3 $save_byte0 } to { [ egress::check_underlay_dst_111_96 : inbuf bit[-112..-97] hdr.ipv6/ipv6.dst_addr[111:96]; ] } | ||
| 22 | allocated { $byte0 } to { [ egress::check_underlay_dst_111_96 : inbuf bit[504..511] ] } | ||
| 23 | allocated { $save_byte1 $save_byte2 } to { [ egress::check_underlay_dst_95_80 : inbuf bit[-96..-81] hdr.ipv6/ipv6.dst_addr[95:80]; ] } | ||
| 24 | allocated { $byte0 } to { [ egress::check_underlay_dst_95_80 : inbuf bit[496..503] ] } | ||
| 25 | allocated { $byte1 } to { [ egress::check_underlay_dst_95_80 : inbuf bit[488..495] ] } | ||
| 26 | allocated { $byte0 } to { [ egress::parse_geneve_mss_tag : inbuf bit[27..31] hdr.geneve_opts.oxg_mss_tag/oxg_mss_tag.opt_len; ] } | ||
| 27 | allocated { $byte0 } to { [ egress::parse_geneve_mcast_tag : inbuf bit[27..31] hdr.geneve_opts.oxg_mcast_tag/oxg_mcast_tag.opt_len; ] } | ||
| 28 | allocated { $byte0 } to { [ egress::parse_geneve_ext_tag : inbuf bit[27..31] hdr.geneve_opts.oxg_ext_tag/oxg_ext_tag.opt_len; ] } | ||
| 29 | allocated { $byte0 } to { [ egress::parse_geneve_ox_opt : inbuf bit[17..23] curr_opt_3[6:0]; ] } | ||
| 30 | allocated { $byte0 $byte1 } to { [ egress::parse_geneve_opt : inbuf bit[0..15] curr_opt_2 ] } | ||
| 31 | allocated { $byte0 } to { [ egress::parse_inner_ipv6.$split_0 : inbuf bit[-208..-201] hdr.inner_ipv6/inner_ipv6.next_hdr; ] } | ||
| 32 | allocated { $byte0 } to { [ egress::parse_inner_ipv4 : inbuf bit[72..79] hdr.inner_ipv4/inner_ipv4.protocol; ] } | ||
| 33 | allocated { $byte0 $byte1 } to { [ egress::parse_inner_eth : inbuf bit[96..111] hdr.inner_eth/inner_eth.ether_type; ] } | ||
| 34 | allocated { $byte2 $byte3 } to { [ egress::geneve_parsed : egress::hdr.geneve.protocol; hdr.geneve/geneve.protocol; ] } | ||
| 35 | allocated { $byte0 } to { [ egress::parse_geneve : inbuf bit[2..7] ] } | ||
| 36 | allocated { $byte0 $byte1 } to { [ egress::parse_udp : inbuf bit[16..31] hdr.udp/udp.dst_port; ] } | ||
| 37 | allocated { $byte0 $byte1 } to { [ egress::check_underlay_dst_79_64 : inbuf bit[-80..-65] hdr.ipv6/ipv6.dst_addr[79:64]; ] } | ||
| 38 | allocated { $byte2 $byte3 } to { [ egress::check_underlay_dst_95_80 : inbuf bit[-96..-81] hdr.ipv6/ipv6.dst_addr[95:80]; ] } | ||
| 39 | allocated { $save_byte0 $save_byte1 } to { [ egress::check_underlay_dst_111_96 : inbuf bit[-112..-97] hdr.ipv6/ipv6.dst_addr[111:96]; ] } | ||
| 40 | allocated { $byte0 $byte1 } to { [ $entry_point.start.$split_0 : inbuf bit[96..111] hdr.ethernet/ethernet.ether_type; ] } | ||
| 41 | allocated { $byte0 $byte1 } to { [ ingress::parse_sidecar : inbuf bit[48..63] hdr.sidecar/sidecar.sc_ether_type; ] } | ||
| 42 | allocated { $byte0 $byte1 } to { [ ingress::parse_vlan : inbuf bit[16..31] hdr.vlan/vlan.ether_type; ] } | ||
| 43 | allocated { $byte0 } to { [ ingress::parse_ipv4 : inbuf bit[128..131] hdr.ipv4/ipv4.dst_addr[31:28]; ] } | ||
| 44 | allocated { $byte2 $byte3 } to { [ ingress::validate_ipv4_mcast1_2 : ingress::hdr.ethernet.dst_mac[47:40]; hdr.ethernet/ethernet.dst_mac[47:40]; ] [ ingress::validate_ipv4_mcast1_2 : ingress::hdr.ethernet.dst_mac[39:32]; hdr.ethernet/ethernet.dst_mac[39:32]; ] } | ||
| 45 | allocated { $save_byte2 } to { [ ingress::validate_ipv4_mcast_3 : ingress::hdr.ethernet.dst_mac[31:24]; hdr.ethernet/ethernet.dst_mac[31:24]; ] } | ||
| 46 | allocated { $byte0 } to { [ ingress::validate_ipv4_mcast_3 : inbuf bit[488..495] ] } | ||
| 47 | allocated { $byte1 } to { [ ingress::set_mcast_ipv4 : inbuf bit[-96..-89] hdr.ipv4/ipv4.ttl; ] } | ||
| 48 | allocated { $save_byte0 } to { [ ingress::goto_proto_ipv4 : inbuf bit[-88..-81] hdr.ipv4/ipv4.protocol; ] } | ||
| 49 | allocated { $byte0 } to { [ ingress::goto_proto_ipv4 : inbuf bit[504..511] ] } | ||
| 50 | allocated { $byte0 $byte1 } to { [ ingress::parse_udp : inbuf bit[16..31] hdr.udp/udp.dst_port; ] } | ||
| 51 | allocated { $byte0 } to { [ ingress::parse_geneve : inbuf bit[2..7] ] } | ||
| 52 | allocated { $byte0 $byte1 } to { [ ingress::geneve_parsed : ingress::hdr.geneve.protocol; hdr.geneve/geneve.protocol; ] } | ||
| 53 | allocated { $byte0 $byte1 } to { [ ingress::parse_inner_eth : inbuf bit[96..111] hdr.inner_eth/inner_eth.ether_type; ] } | ||
| 54 | allocated { $byte0 } to { [ ingress::parse_inner_ipv4 : inbuf bit[72..79] hdr.inner_ipv4/inner_ipv4.protocol; ] } | ||
| 55 | allocated { $byte0 } to { [ ingress::parse_inner_ipv6.$split_0 : inbuf bit[-208..-201] hdr.inner_ipv6/inner_ipv6.next_hdr; ] } | ||
| 56 | allocated { $byte2 $byte3 } to { [ ingress::parse_geneve_opt : inbuf bit[0..15] curr_opt_0 ] } | ||
| 57 | allocated { $byte2 } to { [ ingress::parse_geneve_ox_opt : inbuf bit[17..23] curr_opt_1[6:0]; ] } | ||
| 58 | allocated { $byte2 } to { [ ingress::parse_geneve_ext_tag : inbuf bit[27..31] hdr.geneve_opts.oxg_ext_tag/oxg_ext_tag.opt_len; ] } | ||
| 59 | allocated { $byte2 } to { [ ingress::parse_geneve_mcast_tag : inbuf bit[27..31] hdr.geneve_opts.oxg_mcast_tag/oxg_mcast_tag.opt_len; ] } | ||
| 60 | allocated { $byte2 } to { [ ingress::parse_geneve_mss_tag : inbuf bit[27..31] hdr.geneve_opts.oxg_mss_tag/oxg_mss_tag.opt_len; ] } | ||
| 61 | allocated { $byte1 } to { [ ingress::validate_ttl : inbuf bit[-96..-89] hdr.ipv4/ipv4.ttl; ] } | ||
| 62 | allocated { $byte0 $byte1 } to { [ ingress::parse_ipv6.$split_0 : inbuf bit[-64..-49] hdr.ipv6/ipv6.dst_addr[127:112]; ] } | ||
| 63 | allocated { $byte2 } to { [ ingress::validate_hop_limit : inbuf bit[-264..-257] hdr.ipv6/ipv6.hop_limit; ] } | ||
| 64 | allocated { $byte3 } to { [ ingress::goto_proto_ipv6 : inbuf bit[-272..-265] hdr.ipv6/ipv6.next_hdr; ] } | ||
| 65 | allocated { $save_byte0 } to { [ ingress::check_ipv6_mcast : inbuf bit[-128..-121] hdr.ipv6/ipv6.dst_addr[127:120]; ] } | ||
| 66 | allocated { $byte0 } to { [ ingress::check_ipv6_mcast : inbuf bit[504..511] ] } | ||
| 67 | allocated { $byte2 } to { [ ingress::set_mcast_ipv6 : inbuf bit[-264..-257] hdr.ipv6/ipv6.hop_limit; ] } | ||
| 68 | allocated { $byte0 $byte1 } to { [ $entry_point.start.$split_0 : inbuf bit[96..111] hdr.ethernet/ethernet.ether_type; ] } | ||
| 69 | allocated { $byte0 $byte1 } to { [ ingress::parse_sidecar : inbuf bit[48..63] hdr.sidecar/sidecar.sc_ether_type; ] } | ||
| 70 | allocated { $byte0 $byte1 } to { [ ingress::parse_vlan : inbuf bit[16..31] hdr.vlan/vlan.ether_type; ] } | ||
| 71 | allocated { $byte0 } to { [ ingress::parse_ipv4 : inbuf bit[128..131] hdr.ipv4/ipv4.dst_addr[31:28]; ] } | ||
| 72 | allocated { $byte2 $byte3 } to { [ ingress::validate_ipv4_mcast1_2 : ingress::hdr.ethernet.dst_mac[47:40]; hdr.ethernet/ethernet.dst_mac[47:40]; ] [ ingress::validate_ipv4_mcast1_2 : ingress::hdr.ethernet.dst_mac[39:32]; hdr.ethernet/ethernet.dst_mac[39:32]; ] } | ||
| 73 | allocated { $save_byte2 } to { [ ingress::validate_ipv4_mcast_3 : ingress::hdr.ethernet.dst_mac[31:24]; hdr.ethernet/ethernet.dst_mac[31:24]; ] } | ||
| 74 | allocated { $byte0 } to { [ ingress::validate_ipv4_mcast_3 : inbuf bit[488..495] ] } | ||
| 75 | allocated { $byte1 } to { [ ingress::set_mcast_ipv4 : inbuf bit[-96..-89] hdr.ipv4/ipv4.ttl; ] } | ||
| 76 | allocated { $save_byte0 } to { [ ingress::goto_proto_ipv4 : inbuf bit[-88..-81] hdr.ipv4/ipv4.protocol; ] } | ||
| 77 | allocated { $byte0 } to { [ ingress::goto_proto_ipv4 : inbuf bit[504..511] ] } | ||
| 78 | allocated { $byte0 $byte1 } to { [ ingress::parse_udp : inbuf bit[16..31] hdr.udp/udp.dst_port; ] } | ||
| 79 | allocated { $byte0 } to { [ ingress::parse_geneve : inbuf bit[2..7] ] } | ||
| 80 | allocated { $byte0 $byte1 } to { [ ingress::geneve_parsed : ingress::hdr.geneve.protocol; hdr.geneve/geneve.protocol; ] } | ||
| 81 | allocated { $byte0 $byte1 } to { [ ingress::parse_inner_eth : inbuf bit[96..111] hdr.inner_eth/inner_eth.ether_type; ] } | ||
| 82 | allocated { $byte0 } to { [ ingress::parse_inner_ipv4 : inbuf bit[72..79] hdr.inner_ipv4/inner_ipv4.protocol; ] } | ||
| 83 | allocated { $byte0 } to { [ ingress::parse_inner_ipv6.$split_0 : inbuf bit[-208..-201] hdr.inner_ipv6/inner_ipv6.next_hdr; ] } | ||
| 84 | allocated { $byte2 $byte3 } to { [ ingress::parse_geneve_opt : inbuf bit[0..15] curr_opt_0 ] } | ||
| 85 | allocated { $byte2 } to { [ ingress::parse_geneve_ox_opt : inbuf bit[17..23] curr_opt_1[6:0]; ] } | ||
| 86 | allocated { $byte2 } to { [ ingress::parse_geneve_ext_tag : inbuf bit[27..31] hdr.geneve_opts.oxg_ext_tag/oxg_ext_tag.opt_len; ] } | ||
| 87 | allocated { $byte2 } to { [ ingress::parse_geneve_mcast_tag : inbuf bit[27..31] hdr.geneve_opts.oxg_mcast_tag/oxg_mcast_tag.opt_len; ] } | ||
| 88 | allocated { $byte2 } to { [ ingress::parse_geneve_mss_tag : inbuf bit[27..31] hdr.geneve_opts.oxg_mss_tag/oxg_mss_tag.opt_len; ] } | ||
| 89 | allocated { $byte1 } to { [ ingress::validate_ttl : inbuf bit[-96..-89] hdr.ipv4/ipv4.ttl; ] } | ||
| 90 | allocated { $byte0 $byte1 } to { [ ingress::parse_ipv6.$split_0 : inbuf bit[-64..-49] hdr.ipv6/ipv6.dst_addr[127:112]; ] } | ||
| 91 | allocated { $byte2 } to { [ ingress::validate_hop_limit : inbuf bit[-264..-257] hdr.ipv6/ipv6.hop_limit; ] } | ||
| 92 | allocated { $byte3 } to { [ ingress::goto_proto_ipv6 : inbuf bit[-272..-265] hdr.ipv6/ipv6.next_hdr; ] } | ||
| 93 | allocated { $save_byte0 } to { [ ingress::check_ipv6_mcast : inbuf bit[-128..-121] hdr.ipv6/ipv6.dst_addr[127:120]; ] } | ||
| 94 | allocated { $byte0 } to { [ ingress::check_ipv6_mcast : inbuf bit[504..511] ] } | ||
| 95 | allocated { $byte2 } to { [ ingress::set_mcast_ipv6 : inbuf bit[-264..-257] hdr.ipv6/ipv6.hop_limit; ] } | ||
| 96 | allocated { $byte0 } to { [ $entry_point.start : inbuf bit[231] (bit<1>)bridge_hdr_0/bridge_hdr.nat_egress_hit; ] } | ||
| 97 | allocated { $byte0 $byte1 } to { [ egress::parse_ethernet : inbuf bit[96..111] hdr.ethernet/ethernet.ether_type; ] } | ||
| 98 | allocated { $byte0 $byte1 } to { [ egress::parse_vlan : inbuf bit[16..31] hdr.vlan/vlan.ether_type; ] } | ||
| 99 | allocated { $byte0 } to { [ egress::parse_ipv6.$split_0 : inbuf bit[-192..-185] hdr.ipv6/ipv6.next_hdr; ] } | ||
| 100 | allocated { $byte1 $byte2 } to { [ egress::parse_ipv6.$split_0 : inbuf bit[-48..-33] hdr.ipv6/ipv6.dst_addr[127:112]; ] } | ||
| 101 | allocated { $byte3 $save_byte0 } to { [ egress::check_underlay_dst_111_96 : inbuf bit[-112..-97] hdr.ipv6/ipv6.dst_addr[111:96]; ] } | ||
| 102 | allocated { $byte0 } to { [ egress::check_underlay_dst_111_96 : inbuf bit[504..511] ] } | ||
| 103 | allocated { $save_byte1 $save_byte2 } to { [ egress::check_underlay_dst_95_80 : inbuf bit[-96..-81] hdr.ipv6/ipv6.dst_addr[95:80]; ] } | ||
| 104 | allocated { $byte0 } to { [ egress::check_underlay_dst_95_80 : inbuf bit[496..503] ] } | ||
| 105 | allocated { $byte1 } to { [ egress::check_underlay_dst_95_80 : inbuf bit[488..495] ] } | ||
| 106 | allocated { $byte2 $save_byte3 } to { [ egress::check_underlay_dst_79_64 : inbuf bit[-80..-65] hdr.ipv6/ipv6.dst_addr[79:64]; ] } | ||
| 107 | allocated { $byte0 } to { [ egress::check_underlay_dst_79_64 : inbuf bit[480..487] ] } | ||
| 108 | allocated { $byte0 $byte1 } to { [ egress::parse_udp : inbuf bit[16..31] hdr.udp/udp.dst_port; ] } | ||
| 109 | allocated { $byte0 } to { [ egress::parse_geneve : inbuf bit[2..7] ] } | ||
| 110 | allocated { $byte0 $byte1 } to { [ egress::geneve_parsed : egress::hdr.geneve.protocol; hdr.geneve/geneve.protocol; ] } | ||
| 111 | allocated { $byte0 $byte1 } to { [ egress::parse_inner_eth : inbuf bit[96..111] hdr.inner_eth/inner_eth.ether_type; ] } | ||
| 112 | allocated { $byte0 } to { [ egress::parse_inner_ipv4 : inbuf bit[72..79] hdr.inner_ipv4/inner_ipv4.protocol; ] } | ||
| 113 | allocated { $byte0 } to { [ egress::parse_inner_ipv6.$split_0 : inbuf bit[-208..-201] hdr.inner_ipv6/inner_ipv6.next_hdr; ] } | ||
| 114 | allocated { $byte2 $byte3 } to { [ egress::parse_geneve_opt : inbuf bit[0..15] curr_opt_2 ] } | ||
| 115 | allocated { $byte2 } to { [ egress::parse_geneve_ox_opt : inbuf bit[17..23] curr_opt_3[6:0]; ] } | ||
| 116 | allocated { $byte2 } to { [ egress::parse_geneve_ext_tag : inbuf bit[27..31] hdr.geneve_opts.oxg_ext_tag/oxg_ext_tag.opt_len; ] } | ||
| 117 | allocated { $byte2 } to { [ egress::parse_geneve_mcast_tag : inbuf bit[27..31] hdr.geneve_opts.oxg_mcast_tag/oxg_mcast_tag.opt_len; ] } | ||
| 118 | allocated { $byte2 } to { [ egress::parse_geneve_mss_tag : inbuf bit[27..31] hdr.geneve_opts.oxg_mss_tag/oxg_mss_tag.opt_len; ] } | ||
| 119 | need to allocate 3 logical checksum calculations to ingress parser | ||
| 120 | allocated parser checksum unit 0 to nat_checksum_0 | ||
| 121 | allocated parser checksum unit 1 to icmp_checksum_0 | ||
| 122 | allocated parser checksum unit 1 to ipv4_checksum_0 | ||
| 123 | need to allocate 2 logical checksum calculations to egress parser | ||
| 124 | allocated parser checksum unit 2 to $clot_5_csum | ||
| 125 | allocated parser checksum unit 3 to $clot_11_csum | ||
| 126 | need to allocate 3 logical checksum calculations to ingress parser | ||
| 127 | allocated parser checksum unit 0 to nat_checksum_0 | ||
| 128 | allocated parser checksum unit 1 to icmp_checksum_0 | ||
| 129 | allocated parser checksum unit 1 to ipv4_checksum_0 | ||
| 130 | need to allocate 2 logical checksum calculations to egress parser | ||
| 131 | allocated parser checksum unit 2 to $clot_5_csum | ||
| 132 | allocated parser checksum unit 3 to $clot_11_csum | ||