text: /*******************************************************************************
   *
   * DO NOT EDIT THIS FILE!
   * This file is auto-generated by fltg from
   *    INTERNAL/fltg/xgs/l3/bcm56990_a0/bcm56990_a0_L3_IPV4_MC_ROUTE.map.ltl for
   *      bcm56990_a0
   *
   * Tool: $SDK/INTERNAL/fltg/bin/fltg
   *
   * Edits to this file will be lost when it is regenerated.
   *
   * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file.
   * 
   * Copyright 2007-2020 Broadcom Inc. All rights reserved.
   */
  #include <bcmlrd/bcmlrd_internal.h>
  #include <bcmlrd/chip/bcmlrd_id.h>
  #include <bcmlrd/chip/bcm56990_a0/bcm56990_a0_lrd_field_data.h>
  #include <bcmlrd/chip/bcm56990_a0/bcm56990_a0_lrd_ltm_intf.h>
  #include <bcmlrd/chip/bcm56990_a0/bcm56990_a0_lrd_xfrm_field_desc.h>
  #include <bcmdrd/chip/bcm56990_a0_enum.h>
  #include "bcmltd/chip/bcmltd_common_enumpool.h"
  #include "bcm56990_a0_lrd_enumpool.h"
  #include <bcmltd/bcmltd_handler.h>
  /* L3_IPV4_MC_ROUTE field init */
  static const bcmlrd_field_data_t bcm56990_a0_lrd_l3_ipv4_mc_route_map_field_data_mmd[] = {
      { /* 0 MC_GROUP */
        .flags = BCMLTD_FIELD_F_KEY,
        .min = &bcm56990_a0_lrd_ifd_u32_0x0,
        .def = &bcm56990_a0_lrd_ifd_u32_0x0,
        .max = &bcm56990_a0_lrd_ifd_u32_0xffffffff,
        .depth = 0,
        .width = 32,
        .edata = NULL,
      },
      { /* 1 SRC_IPV4 */
        .flags = BCMLTD_FIELD_F_KEY,
        .min = &bcm56990_a0_lrd_ifd_u32_0x0,
        .def = &bcm56990_a0_lrd_ifd_u32_0x0,
        .max = &bcm56990_a0_lrd_ifd_u32_0xffffffff,
        .depth = 0,
        .width = 32,
        .edata = NULL,
      },
      { /* 2 SRC_IPV4_MASK */
        .flags = BCMLTD_FIELD_F_KEY,
        .min = &bcm56990_a0_lrd_ifd_u32_0x0,
        .def = &bcm56990_a0_lrd_ifd_u32_0x0,
        .max = &bcm56990_a0_lrd_ifd_u32_0xffffffff,
        .depth = 0,
        .width = 32,
        .edata = NULL,
      },
      { /* 3 VRF_ID */
        .flags = BCMLTD_FIELD_F_KEY,
        .min = &bcm56990_a0_lrd_ifd_u16_0x0,
        .def = &bcm56990_a0_lrd_ifd_u16_0x0,
        .max = &bcm56990_a0_lrd_ifd_u16_0x1fff,
        .depth = 0,
        .width = 13,
        .edata = NULL,
      },
      { /* 4 L3_MC_IIF_ID */
        .flags = BCMLTD_FIELD_F_KEY,
        .min = &bcm56990_a0_lrd_ifd_u32_0x0,
        .def = &bcm56990_a0_lrd_ifd_u32_0x0,
        .max = &bcm56990_a0_lrd_ifd_u32_0x1fff,
        .depth = 0,
        .width = 13,
        .edata = NULL,
      },
      { /* 5 TM_MC_GROUP_ID */
        .flags = 0,
        .min = &bcm56990_a0_lrd_ifd_u16_0x0,
        .def = &bcm56990_a0_lrd_ifd_u16_0x0,
        .max = &bcm56990_a0_lrd_ifd_u16_0x1ff,
        .depth = 0,
        .width = 9,
        .edata = NULL,
      },
      { /* 6 COPY_TO_CPU */
        .flags = 0,
        .min = &bcm56990_a0_lrd_ifd_is_true_0x0,
        .def = &bcm56990_a0_lrd_ifd_is_true_0x0,
        .max = &bcm56990_a0_lrd_ifd_is_true_0x1,
        .depth = 0,
        .width = 1,
        .edata = NULL,
      },
      { /* 7 DROP */
        .flags = 0,
        .min = &bcm56990_a0_lrd_ifd_is_true_0x0,
        .def = &bcm56990_a0_lrd_ifd_is_true_0x0,
        .max = &bcm56990_a0_lrd_ifd_is_true_0x1,
        .depth = 0,
        .width = 1,
        .edata = NULL,
      },
      { /* 8 EXPECTED_L3_MC_IIF_ID */
        .flags = 0,
        .min = &bcm56990_a0_lrd_ifd_u32_0x0,
        .def = &bcm56990_a0_lrd_ifd_u32_0x0,
        .max = &bcm56990_a0_lrd_ifd_u32_0x1fff,
        .depth = 0,
        .width = 13,
        .edata = NULL,
      },
      { /* 9 RPA_ID */
        .flags = BCMLRD_FIELD_F_UNMAPPED,
        .min = &bcm56990_a0_lrd_ifd_u8_0x0,
        .def = &bcm56990_a0_lrd_ifd_u8_0x0,
        .max = &bcm56990_a0_lrd_ifd_u8_0x0,
        .depth = 0,
        .width = 0,
        .edata = NULL,
      },
      { /* 10 ASSIGN_INT_PRI */
        .flags = BCMLRD_FIELD_F_UNMAPPED,
        .min = &bcm56990_a0_lrd_ifd_is_true_0x0,
        .def = &bcm56990_a0_lrd_ifd_is_true_0x0,
        .max = &bcm56990_a0_lrd_ifd_is_true_0x0,
        .depth = 0,
        .width = 0,
        .edata = NULL,
      },
      { /* 11 INT_PRI */
        .flags = BCMLRD_FIELD_F_UNMAPPED,
        .min = &bcm56990_a0_lrd_ifd_u8_0x0,
        .def = &bcm56990_a0_lrd_ifd_u8_0x0,
        .max = &bcm56990_a0_lrd_ifd_u8_0x0,
        .depth = 0,
        .width = 0,
        .edata = NULL,
      },
      { /* 12 DROP_ON_GROUP_MATCH */
        .flags = 0,
        .min = &bcm56990_a0_lrd_ifd_is_true_0x0,
        .def = &bcm56990_a0_lrd_ifd_is_true_0x0,
        .max = &bcm56990_a0_lrd_ifd_is_true_0x1,
        .depth = 0,
        .width = 1,
        .edata = NULL,
      },
      { /* 13 CLASS_ID */
        .flags = 0,
        .min = &bcm56990_a0_lrd_ifd_u16_0x0,
        .def = &bcm56990_a0_lrd_ifd_u16_0x0,
        .max = &bcm56990_a0_lrd_ifd_u16_0x3f,
        .depth = 0,
        .width = 6,
        .edata = NULL,
      },
      { /* 14 MODID */
        .flags = BCMLRD_FIELD_F_UNMAPPED,
        .min = &bcm56990_a0_lrd_ifd_u8_0x0,
        .def = &bcm56990_a0_lrd_ifd_u8_0x0,
        .max = &bcm56990_a0_lrd_ifd_u8_0x0,
        .depth = 0,
        .width = 0,
        .edata = NULL,
      },
      { /* 15 MODPORT */
        .flags = 0,
        .min = &bcm56990_a0_lrd_ifd_u16_0x0,
        .def = &bcm56990_a0_lrd_ifd_u16_0x0,
        .max = &bcm56990_a0_lrd_ifd_u16_0x1ff,
        .depth = 0,
        .width = 9,
        .edata = NULL,
      },
      { /* 16 IS_TRUNK */
        .flags = 0,
        .min = &bcm56990_a0_lrd_ifd_is_true_0x0,
        .def = &bcm56990_a0_lrd_ifd_is_true_0x0,
        .max = &bcm56990_a0_lrd_ifd_is_true_0x1,
        .depth = 0,
        .width = 1,
        .edata = NULL,
      },
      { /* 17 TRUNK_ID */
        .flags = 0,
        .min = &bcm56990_a0_lrd_ifd_u16_0x0,
        .def = &bcm56990_a0_lrd_ifd_u16_0x0,
        .max = &bcm56990_a0_lrd_ifd_u16_0x1ff,
        .depth = 0,
        .width = 9,
        .edata = NULL,
      },
      { /* 18 CTR_ING_EFLEX_OBJECT */
        .flags = 0,
        .min = &bcm56990_a0_lrd_ifd_u16_0x0,
        .def = &bcm56990_a0_lrd_ifd_u16_0x0,
        .max = &bcm56990_a0_lrd_ifd_u16_0x7fff,
        .depth = 0,
        .width = 15,
        .edata = NULL,
      },
      { /* 19 L3_IPV4_MC_CTR_ING_EFLEX_ACTION_ID */
        .flags = 0,
        .min = &bcm56990_a0_lrd_ifd_u8_0x0,
        .def = &bcm56990_a0_lrd_ifd_u8_0x0,
        .max = &bcm56990_a0_lrd_ifd_u8_0x1,
        .depth = 0,
        .width = 1,
        .edata = NULL,
      },
      { /* 20 USE_PORT_TRUNK_ID */
        .flags = 0,
        .min = &bcm56990_a0_lrd_ifd_is_true_0x0,
        .def = &bcm56990_a0_lrd_ifd_is_true_0x0,
        .max = &bcm56990_a0_lrd_ifd_is_true_0x1,
        .depth = 0,
        .width = 1,
        .edata = NULL,
      },
      { /* 21 HIT */
        .flags = 0,
        .min = &bcm56990_a0_lrd_ifd_is_true_0x0,
        .def = &bcm56990_a0_lrd_ifd_is_true_0x0,
        .max = &bcm56990_a0_lrd_ifd_is_true_0x1,
        .depth = 0,
        .width = 1,
        .edata = NULL,
      },
  };
  const bcmlrd_map_field_data_t bcm56990_a0_lrd_l3_ipv4_mc_route_map_field_data = {
      .fields = 22,
      .field = bcm56990_a0_lrd_l3_ipv4_mc_route_map_field_data_mmd
  };
  
  static const bcmlrd_map_table_attr_t bcm56990_a0_lrd_l3_ipv4_mc_routet_attr_entry[] = {
      { /* 0 */
          .key   = BCMLRD_MAP_TABLE_ATTRIBUTE_INTERACTIVE,
          .value = FALSE,
      },
      { /* 1 */
          .key   = BCMLRD_MAP_TABLE_ATTRIBUTE_TABLE_SIZE,
          .value = 1310720,
      },
      { /* 2 */
          .key   = BCMLRD_MAP_TABLE_ATTRIBUTE_TABLE_TYPE,
          .value = BCMLRD_TABLE_F_TYPE_TCAM,
      },
      { /* 3 */
          .key   = BCMLRD_MAP_TABLE_ATTRIBUTE_TCAM_ORDERING,
          .value = LPM,
      },
  };
  
  static const bcmlrd_map_attr_t bcm56990_a0_lrd_l3_ipv4_mc_routet_attr_group = {
      .attributes = 4,
      .attr = bcm56990_a0_lrd_l3_ipv4_mc_routet_attr_entry,
  };
  
  
  const bcmltd_field_desc_t
  bcm56990_a0_lrd_field_demux_l3_ipv4_mc_routet_src_ipv4_maskf_0_src_field_desc_s0[2] = {
      {
          .field_id  = L3_IPV4_MC_ROUTEt_SRC_IPV4_MASKf,
          .field_idx = 0,
          .minbit    = 0,
          .maxbit    = 17,
          .entry_idx = 0,
          .reserved  = 0
      },
      {
          .field_id  = L3_IPV4_MC_ROUTEt_SRC_IPV4_MASKf,
          .field_idx = 0,
          .minbit    = 18,
          .maxbit    = 31,
          .entry_idx = 0,
          .reserved  = 0
      },
  };
  
  const bcmltd_field_desc_t
  bcm56990_a0_lrd_bcmltx_field_demux_l3_ipv4_mc_routet_src_ipv4_maskf_0_dst_field_desc_d0[2] = {
      {
          .field_id  = MASK0_L3MC_V4_KEY_SIP_1f,
          .field_idx = 0,
          .minbit    = 212,
          .maxbit    = 229,
          .entry_idx = 0,
          .reserved  = 0,
      },
      {
          .field_id  = MASK1_L3MC_V4_KEY_SIP_0f,
          .field_idx = 0,
          .minbit    = 234,
          .maxbit    = 247,
          .entry_idx = 0,
          .reserved  = 0,
      },
  };
  
  const bcmltd_field_desc_t
  bcm56990_a0_lrd_field_demux_l3_ipv4_mc_routet_src_ipv4f_0_src_field_desc_s0[2] = {
      {
          .field_id  = L3_IPV4_MC_ROUTEt_SRC_IPV4f,
          .field_idx = 0,
          .minbit    = 0,
          .maxbit    = 17,
          .entry_idx = 0,
          .reserved  = 0
      },
      {
          .field_id  = L3_IPV4_MC_ROUTEt_SRC_IPV4f,
          .field_idx = 0,
          .minbit    = 18,
          .maxbit    = 31,
          .entry_idx = 0,
          .reserved  = 0
      },
  };
  
  const bcmltd_field_desc_t
  bcm56990_a0_lrd_bcmltx_field_demux_l3_ipv4_mc_routet_src_ipv4f_0_dst_field_desc_d0[2] = {
      {
          .field_id  = KEY0_L3MC_V4_KEY_SIP_1f,
          .field_idx = 0,
          .minbit    = 60,
          .maxbit    = 77,
          .entry_idx = 0,
          .reserved  = 0,
      },
      {
          .field_id  = KEY1_L3MC_V4_KEY_SIP_0f,
          .field_idx = 0,
          .minbit    = 82,
          .maxbit    = 95,
          .entry_idx = 0,
          .reserved  = 0,
      },
  };
  
  const bcmlrd_field_xfrm_desc_t
  bcm56990_a0_lta_bcmltx_field_demux_l3_ipv4_mc_routet_src_ipv4_maskf_0_xfrm_handler_fwd_s0_d0_desc = {
      .handler_id = BCMLTD_TRANSFORM_BCM56990_A0_LTA_BCMLTX_FIELD_DEMUX_L3_IPV4_MC_ROUTET_SRC_IPV4_MASKF_0_XFRM_HANDLER_FWD_S0_D0_ID,
      .src_fields = 2,
      .src = bcm56990_a0_lrd_field_demux_l3_ipv4_mc_routet_src_ipv4_maskf_0_src_field_desc_s0,
      .dst_fields = 2,
      .dst = bcm56990_a0_lrd_bcmltx_field_demux_l3_ipv4_mc_routet_src_ipv4_maskf_0_dst_field_desc_d0,
  };
  
  const bcmlrd_field_xfrm_desc_t
  bcm56990_a0_lta_bcmltx_field_demux_l3_ipv4_mc_routet_src_ipv4_maskf_0_xfrm_handler_rev_s0_d0_desc = {
      .handler_id = BCMLTD_TRANSFORM_BCM56990_A0_LTA_BCMLTX_FIELD_DEMUX_L3_IPV4_MC_ROUTET_SRC_IPV4_MASKF_0_XFRM_HANDLER_REV_S0_D0_ID,
      .src_fields = 2,
      .src = bcm56990_a0_lrd_bcmltx_field_demux_l3_ipv4_mc_routet_src_ipv4_maskf_0_dst_field_desc_d0,
      .dst_fields = 2,
      .dst = bcm56990_a0_lrd_field_demux_l3_ipv4_mc_routet_src_ipv4_maskf_0_src_field_desc_s0,
  };
  
  const bcmlrd_field_xfrm_desc_t
  bcm56990_a0_lta_bcmltx_field_demux_l3_ipv4_mc_routet_src_ipv4f_0_xfrm_handler_fwd_s0_d0_desc = {
      .handler_id = BCMLTD_TRANSFORM_BCM56990_A0_LTA_BCMLTX_FIELD_DEMUX_L3_IPV4_MC_ROUTET_SRC_IPV4F_0_XFRM_HANDLER_FWD_S0_D0_ID,
      .src_fields = 2,
      .src = bcm56990_a0_lrd_field_demux_l3_ipv4_mc_routet_src_ipv4f_0_src_field_desc_s0,
      .dst_fields = 2,
      .dst = bcm56990_a0_lrd_bcmltx_field_demux_l3_ipv4_mc_routet_src_ipv4f_0_dst_field_desc_d0,
  };
  
  const bcmlrd_field_xfrm_desc_t
  bcm56990_a0_lta_bcmltx_field_demux_l3_ipv4_mc_routet_src_ipv4f_0_xfrm_handler_rev_s0_d0_desc = {
      .handler_id = BCMLTD_TRANSFORM_BCM56990_A0_LTA_BCMLTX_FIELD_DEMUX_L3_IPV4_MC_ROUTET_SRC_IPV4F_0_XFRM_HANDLER_REV_S0_D0_ID,
      .src_fields = 2,
      .src = bcm56990_a0_lrd_bcmltx_field_demux_l3_ipv4_mc_routet_src_ipv4f_0_dst_field_desc_d0,
      .dst_fields = 2,
      .dst = bcm56990_a0_lrd_field_demux_l3_ipv4_mc_routet_src_ipv4f_0_src_field_desc_s0,
  };
  
  
  static const bcmlrd_map_entry_t bcm56990_a0_lrd_l3_ipv4_mc_routet_l3_defip_level1_wide_map_entry[] = {
      { /* 0 */
          .entry_type = BCMLRD_MAP_ENTRY_FIXED_KEY,
          .desc = {
              .field_id  = KEY0_KEY_MODEf,
              .field_idx = 0,
              .minbit    = 2,
              .maxbit    = 3,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .fixed = {
                  .value = 1,
              }
          },
      },
      { /* 1 */
          .entry_type = BCMLRD_MAP_ENTRY_FIXED_KEY,
          .desc = {
              .field_id  = KEY1_KEY_MODEf,
              .field_idx = 0,
              .minbit    = 78,
              .maxbit    = 79,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .fixed = {
                  .value = 1,
              }
          },
      },
      { /* 2 */
          .entry_type = BCMLRD_MAP_ENTRY_FIXED_KEY,
          .desc = {
              .field_id  = MASK0_KEY_MODEf,
              .field_idx = 0,
              .minbit    = 154,
              .maxbit    = 155,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .fixed = {
                  .value = 0x3,
              }
          },
      },
      { /* 3 */
          .entry_type = BCMLRD_MAP_ENTRY_FIXED_KEY,
          .desc = {
              .field_id  = MASK1_KEY_MODEf,
              .field_idx = 0,
              .minbit    = 230,
              .maxbit    = 231,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .fixed = {
                  .value = 0x3,
              }
          },
      },
      { /* 4 */
          .entry_type = BCMLRD_MAP_ENTRY_FIXED_KEY,
          .desc = {
              .field_id  = KEY0_KEY_TYPEf,
              .field_idx = 0,
              .minbit    = 4,
              .maxbit    = 5,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .fixed = {
                  .value = 2,
              }
          },
      },
      { /* 5 */
          .entry_type = BCMLRD_MAP_ENTRY_FIXED_KEY,
          .desc = {
              .field_id  = KEY1_KEY_TYPEf,
              .field_idx = 0,
              .minbit    = 80,
              .maxbit    = 81,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .fixed = {
                  .value = 2,
              }
          },
      },
      { /* 6 */
          .entry_type = BCMLRD_MAP_ENTRY_FIXED_KEY,
          .desc = {
              .field_id  = MASK0_KEY_TYPEf,
              .field_idx = 0,
              .minbit    = 156,
              .maxbit    = 157,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .fixed = {
                  .value = 0x3,
              }
          },
      },
      { /* 7 */
          .entry_type = BCMLRD_MAP_ENTRY_FIXED_KEY,
          .desc = {
              .field_id  = MASK1_KEY_TYPEf,
              .field_idx = 0,
              .minbit    = 232,
              .maxbit    = 233,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .fixed = {
                  .value = 0x3,
              }
          },
      },
      { /* 8 */
          .entry_type = BCMLRD_MAP_ENTRY_MAPPED_KEY,
          .desc = {
              .field_id  = KEY1_L3MC_V4_KEY_L3_IIFf,
              .field_idx = 0,
              .minbit    = 141,
              .maxbit    = 153,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .mapped = {
                  .src = {
                      .field_id = L3_IPV4_MC_ROUTEt_L3_MC_IIF_IDf,
                      .field_idx = 0,
                      .minbit    = 0,
                      .maxbit    = 12,
                      .entry_idx = 0,
                      .reserved  = 0
                  }
              }
          },
      },
      { /* 9 */
          .entry_type = BCMLRD_MAP_ENTRY_MAPPED_KEY,
          .desc = {
              .field_id  = KEY1_L3MC_V4_KEY_VRFf,
              .field_idx = 0,
              .minbit    = 128,
              .maxbit    = 140,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .mapped = {
                  .src = {
                      .field_id = L3_IPV4_MC_ROUTEt_VRF_IDf,
                      .field_idx = 0,
                      .minbit    = 0,
                      .maxbit    = 12,
                      .entry_idx = 0,
                      .reserved  = 0
                  }
              }
          },
      },
      { /* 10 */
          .entry_type = BCMLRD_MAP_ENTRY_MAPPED_KEY,
          .desc = {
              .field_id  = KEY1_L3MC_V4_KEY_DIPf,
              .field_idx = 0,
              .minbit    = 96,
              .maxbit    = 127,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .mapped = {
                  .src = {
                      .field_id = L3_IPV4_MC_ROUTEt_MC_GROUPf,
                      .field_idx = 0,
                      .minbit    = 0,
                      .maxbit    = 31,
                      .entry_idx = 0,
                      .reserved  = 0
                  }
              }
          },
      },
      { /* 11 */
          .entry_type = BCMLRD_MAP_ENTRY_FIXED_KEY,
          .desc = {
              .field_id  = MASK1_L3MC_V4_KEY_L3_IIFf,
              .field_idx = 0,
              .minbit    = 293,
              .maxbit    = 305,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .fixed = {
                  .value = 0x1fff,
              }
          },
      },
      { /* 12 */
          .entry_type = BCMLRD_MAP_ENTRY_FIXED_KEY,
          .desc = {
              .field_id  = MASK1_L3MC_V4_KEY_VRFf,
              .field_idx = 0,
              .minbit    = 280,
              .maxbit    = 292,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .fixed = {
                  .value = 0x1fff,
              }
          },
      },
      { /* 13 */
          .entry_type = BCMLRD_MAP_ENTRY_FIXED_KEY,
          .desc = {
              .field_id  = MASK1_L3MC_V4_KEY_DIPf,
              .field_idx = 0,
              .minbit    = 248,
              .maxbit    = 279,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .fixed = {
                  .value = 0xffffffff,
              }
          },
      },
      { /* 14 */
          .entry_type = BCMLRD_MAP_ENTRY_MAPPED_VALUE,
          .desc = {
              .field_id  = ASSOC_DATA0_L3MC_ASSOC_DATA_FULL_L3MC_INDEXf,
              .field_idx = 0,
              .minbit    = 361,
              .maxbit    = 369,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .mapped = {
                  .src = {
                      .field_id = L3_IPV4_MC_ROUTEt_TM_MC_GROUP_IDf,
                      .field_idx = 0,
                      .minbit    = 0,
                      .maxbit    = 8,
                      .entry_idx = 0,
                      .reserved  = 0
                  }
              }
          },
      },
      { /* 15 */
          .entry_type = BCMLRD_MAP_ENTRY_MAPPED_VALUE,
          .desc = {
              .field_id  = ASSOC_DATA0_L3MC_ASSOC_DATA_FULL_CLASS_IDf,
              .field_idx = 0,
              .minbit    = 339,
              .maxbit    = 344,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .mapped = {
                  .src = {
                      .field_id = L3_IPV4_MC_ROUTEt_CLASS_IDf,
                      .field_idx = 0,
                      .minbit    = 0,
                      .maxbit    = 5,
                      .entry_idx = 0,
                      .reserved  = 0
                  }
              }
          },
      },
      { /* 16 */
          .entry_type = BCMLRD_MAP_ENTRY_MAPPED_VALUE,
          .desc = {
              .field_id  = ASSOC_DATA0_L3MC_ASSOC_DATA_FULL_IPMC_EXPECTED_L3_IIF_MISMATCH_TOCPUf,
              .field_idx = 0,
              .minbit    = 370,
              .maxbit    = 370,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .mapped = {
                  .src = {
                      .field_id = L3_IPV4_MC_ROUTEt_COPY_TO_CPUf,
                      .field_idx = 0,
                      .minbit    = 0,
                      .maxbit    = 0,
                      .entry_idx = 0,
                      .reserved  = 0
                  }
              }
          },
      },
      { /* 17 */
          .entry_type = BCMLRD_MAP_ENTRY_MAPPED_VALUE,
          .desc = {
              .field_id  = ASSOC_DATA0_L3MC_ASSOC_DATA_FULL_IPMC_EXPECTED_L3_IIF_MISMATCH_DROPf,
              .field_idx = 0,
              .minbit    = 371,
              .maxbit    = 371,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .mapped = {
                  .src = {
                      .field_id = L3_IPV4_MC_ROUTEt_DROPf,
                      .field_idx = 0,
                      .minbit    = 0,
                      .maxbit    = 0,
                      .entry_idx = 0,
                      .reserved  = 0
                  }
              }
          },
      },
      { /* 18 */
          .entry_type = BCMLRD_MAP_ENTRY_MAPPED_VALUE,
          .desc = {
              .field_id  = ASSOC_DATA0_L3MC_ASSOC_DATA_FULL_DST_DISCARDf,
              .field_idx = 0,
              .minbit    = 338,
              .maxbit    = 338,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .mapped = {
                  .src = {
                      .field_id = L3_IPV4_MC_ROUTEt_DROP_ON_GROUP_MATCHf,
                      .field_idx = 0,
                      .minbit    = 0,
                      .maxbit    = 0,
                      .entry_idx = 0,
                      .reserved  = 0
                  }
              }
          },
      },
      { /* 19 */
          .entry_type = BCMLRD_MAP_ENTRY_MAPPED_VALUE,
          .desc = {
              .field_id  = ASSOC_DATA0_L3MC_ASSOC_DATA_FULL_SRC_PORT_VALIDf,
              .field_idx = 0,
              .minbit    = 324,
              .maxbit    = 324,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .mapped = {
                  .src = {
                      .field_id = L3_IPV4_MC_ROUTEt_USE_PORT_TRUNK_IDf,
                      .field_idx = 0,
                      .minbit    = 0,
                      .maxbit    = 0,
                      .entry_idx = 0,
                      .reserved  = 0
                  }
              }
          },
      },
      { /* 20 */
          .entry_type = BCMLRD_MAP_ENTRY_MAPPED_VALUE,
          .desc = {
              .field_id  = ASSOC_DATA0_L3MC_ASSOC_DATA_FULL_Tf,
              .field_idx = 0,
              .minbit    = 334,
              .maxbit    = 334,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .mapped = {
                  .src = {
                      .field_id = L3_IPV4_MC_ROUTEt_IS_TRUNKf,
                      .field_idx = 0,
                      .minbit    = 0,
                      .maxbit    = 0,
                      .entry_idx = 0,
                      .reserved  = 0
                  }
              }
          },
      },
      { /* 21 */
          .entry_type = BCMLRD_MAP_ENTRY_MAPPED_VALUE,
          .desc = {
              .field_id  = ASSOC_DATA0_L3MC_ASSOC_DATA_FULL_PORT_NUMf,
              .field_idx = 0,
              .minbit    = 325,
              .maxbit    = 333,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .mapped = {
                  .src = {
                      .field_id = L3_IPV4_MC_ROUTEt_MODPORTf,
                      .field_idx = 0,
                      .minbit    = 0,
                      .maxbit    = 8,
                      .entry_idx = 0,
                      .reserved  = 0
                  }
              }
          },
      },
      { /* 22 */
          .entry_type = BCMLRD_MAP_ENTRY_MAPPED_VALUE,
          .desc = {
              .field_id  = ASSOC_DATA0_L3MC_ASSOC_DATA_FULL_TGIDf,
              .field_idx = 0,
              .minbit    = 325,
              .maxbit    = 333,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .mapped = {
                  .src = {
                      .field_id = L3_IPV4_MC_ROUTEt_TRUNK_IDf,
                      .field_idx = 0,
                      .minbit    = 0,
                      .maxbit    = 8,
                      .entry_idx = 0,
                      .reserved  = 0
                  }
              }
          },
      },
      { /* 23 */
          .entry_type = BCMLRD_MAP_ENTRY_MAPPED_VALUE,
          .desc = {
              .field_id  = ASSOC_DATA0_L3MC_ASSOC_DATA_FULL_EXPECTED_L3_IIFf,
              .field_idx = 0,
              .minbit    = 325,
              .maxbit    = 337,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .mapped = {
                  .src = {
                      .field_id = L3_IPV4_MC_ROUTEt_EXPECTED_L3_MC_IIF_IDf,
                      .field_idx = 0,
                      .minbit    = 0,
                      .maxbit    = 12,
                      .entry_idx = 0,
                      .reserved  = 0
                  }
              }
          },
      },
      { /* 24 */
          .entry_type = BCMLRD_MAP_ENTRY_MAPPED_VALUE,
          .desc = {
              .field_id  = ASSOC_DATA0_L3MC_ASSOC_DATA_FULL_FLEX_CTR_OBJECTf,
              .field_idx = 0,
              .minbit    = 345,
              .maxbit    = 359,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .mapped = {
                  .src = {
                      .field_id = L3_IPV4_MC_ROUTEt_CTR_ING_EFLEX_OBJECTf,
                      .field_idx = 0,
                      .minbit    = 0,
                      .maxbit    = 14,
                      .entry_idx = 0,
                      .reserved  = 0
                  }
              }
          },
      },
      { /* 25 */
          .entry_type = BCMLRD_MAP_ENTRY_MAPPED_VALUE,
          .desc = {
              .field_id  = ASSOC_DATA0_L3MC_ASSOC_DATA_FULL_FLEX_CTR_ACTION_SELf,
              .field_idx = 0,
              .minbit    = 360,
              .maxbit    = 360,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .mapped = {
                  .src = {
                      .field_id = L3_IPV4_MC_ROUTEt_L3_IPV4_MC_CTR_ING_EFLEX_ACTION_IDf,
                      .field_idx = 0,
                      .minbit    = 0,
                      .maxbit    = 0,
                      .entry_idx = 0,
                      .reserved  = 0
                  }
              }
          },
      },
      { /* 26 */
          .entry_type = BCMLRD_MAP_ENTRY_MAPPED_VALUE,
          .desc = {
              .field_id  = PARITY0f,
              .field_idx = 0,
              .minbit    = 430,
              .maxbit    = 430,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .mapped = {
                  .src = {
                      .field_id = L3_IPV4_MC_ROUTEt_HITf,
                      .field_idx = 0,
                      .minbit    = 0,
                      .maxbit    = 0,
                      .entry_idx = 0,
                      .reserved  = 0
                  }
              }
          },
      },
      { /* 27 */
          .entry_type = BCMLRD_MAP_ENTRY_FIXED_KEY,
          .desc = {
              .field_id  = VALIDf,
              .field_idx = 0,
              .minbit    = 0,
              .maxbit    = 1,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .fixed = {
                  .value = 3,
              }
          },
      },
      { /* 28 */
          .entry_type = BCMLRD_MAP_ENTRY_FWD_KEY_FIELD_XFRM_HANDLER,
          .desc = {
              .field_id  = 0,
              .field_idx = 0,
              .minbit    = 0,
              .maxbit    = 0,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .xfrm = {
                  /* handler: bcm56990_a0_lta_bcmltx_field_demux_l3_ipv4_mc_routet_src_ipv4_maskf_0_xfrm_handler_fwd_s0_d0 */
                  .desc = &bcm56990_a0_lta_bcmltx_field_demux_l3_ipv4_mc_routet_src_ipv4_maskf_0_xfrm_handler_fwd_s0_d0_desc,
              },
          },
      },
      { /* 29 */
          .entry_type = BCMLRD_MAP_ENTRY_REV_KEY_FIELD_XFRM_HANDLER,
          .desc = {
              .field_id  = 0,
              .field_idx = 0,
              .minbit    = 0,
              .maxbit    = 0,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .xfrm = {
                  /* handler: bcm56990_a0_lta_bcmltx_field_demux_l3_ipv4_mc_routet_src_ipv4_maskf_0_xfrm_handler_rev_s0_d0 */
                  .desc = &bcm56990_a0_lta_bcmltx_field_demux_l3_ipv4_mc_routet_src_ipv4_maskf_0_xfrm_handler_rev_s0_d0_desc,
              },
          },
      },
      { /* 30 */
          .entry_type = BCMLRD_MAP_ENTRY_FWD_KEY_FIELD_XFRM_HANDLER,
          .desc = {
              .field_id  = 0,
              .field_idx = 0,
              .minbit    = 0,
              .maxbit    = 0,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .xfrm = {
                  /* handler: bcm56990_a0_lta_bcmltx_field_demux_l3_ipv4_mc_routet_src_ipv4f_0_xfrm_handler_fwd_s0_d0 */
                  .desc = &bcm56990_a0_lta_bcmltx_field_demux_l3_ipv4_mc_routet_src_ipv4f_0_xfrm_handler_fwd_s0_d0_desc,
              },
          },
      },
      { /* 31 */
          .entry_type = BCMLRD_MAP_ENTRY_REV_KEY_FIELD_XFRM_HANDLER,
          .desc = {
              .field_id  = 0,
              .field_idx = 0,
              .minbit    = 0,
              .maxbit    = 0,
              .entry_idx = 0,
              .reserved  = 0
          },
          .u = {
              .xfrm = {
                  /* handler: bcm56990_a0_lta_bcmltx_field_demux_l3_ipv4_mc_routet_src_ipv4f_0_xfrm_handler_rev_s0_d0 */
                  .desc = &bcm56990_a0_lta_bcmltx_field_demux_l3_ipv4_mc_routet_src_ipv4f_0_xfrm_handler_rev_s0_d0_desc,
              },
          },
      },
  };
  const bcmlrd_field_selector_t bcm56990_a0_lrd_l3_ipv4_mc_route_map_select[] = {
      { /* Node:0, Type:ROOT, USE_PORT_TRUNK_ID */
          .selector_type = BCMLRD_FIELD_SELECTOR_TYPE_ROOT,
          .field_id = L3_IPV4_MC_ROUTEt_USE_PORT_TRUNK_IDf,
          .group_index = BCMLRD_INVALID_SELECTOR_INDEX,
          .entry_index = BCMLRD_INVALID_SELECTOR_INDEX,
          .selection_parent = BCMLRD_INVALID_SELECTOR_INDEX,
          .group = BCMLRD_INVALID_SELECTOR_INDEX,
          .selector_id = BCMLRD_INVALID_SELECTOR_INDEX,
          .selector_value = BCMLRD_INVALID_SELECTOR_INDEX
      },
      { /* Node:1, Type:Directmap, IS_TRUNK:L3_DEFIP_LEVEL1_WIDE.ASSOC_DATA0_L3MC_ASSOC_DATA_FULL_T */
          .selector_type = BCMLRD_FIELD_SELECTOR_TYPE_MAP_ENTRY,
          .field_id = L3_IPV4_MC_ROUTEt_IS_TRUNKf,
          .group_index = 0,
          .entry_index = 20,
          .selection_parent = 0,
          .group = 0,
          .selector_id = L3_IPV4_MC_ROUTEt_USE_PORT_TRUNK_IDf,
          .selector_value = 1
      },
      { /* Node:2, Type:Directmap, MODPORT:L3_DEFIP_LEVEL1_WIDE.ASSOC_DATA0_L3MC_ASSOC_DATA_FULL_PORT_NUM */
          .selector_type = BCMLRD_FIELD_SELECTOR_TYPE_MAP_ENTRY,
          .field_id = L3_IPV4_MC_ROUTEt_MODPORTf,
          .group_index = 0,
          .entry_index = 21,
          .selection_parent = 1,
          .group = 0,
          .selector_id = L3_IPV4_MC_ROUTEt_IS_TRUNKf,
          .selector_value = FALSE
      },
      { /* Node:3, Type:Directmap, TRUNK_ID:L3_DEFIP_LEVEL1_WIDE.ASSOC_DATA0_L3MC_ASSOC_DATA_FULL_TGID */
          .selector_type = BCMLRD_FIELD_SELECTOR_TYPE_MAP_ENTRY,
          .field_id = L3_IPV4_MC_ROUTEt_TRUNK_IDf,
          .group_index = 0,
          .entry_index = 22,
          .selection_parent = 1,
          .group = 0,
          .selector_id = L3_IPV4_MC_ROUTEt_IS_TRUNKf,
          .selector_value = TRUE
      },
      { /* Node:4, Type:Directmap, EXPECTED_L3_MC_IIF_ID:L3_DEFIP_LEVEL1_WIDE.ASSOC_DATA0_L3MC_ASSOC_DATA_FULL_EXPECTED_L3_IIF */
          .selector_type = BCMLRD_FIELD_SELECTOR_TYPE_MAP_ENTRY,
          .field_id = L3_IPV4_MC_ROUTEt_EXPECTED_L3_MC_IIF_IDf,
          .group_index = 0,
          .entry_index = 23,
          .selection_parent = 0,
          .group = 0,
          .selector_id = L3_IPV4_MC_ROUTEt_USE_PORT_TRUNK_IDf,
          .selector_value = 0
      },
  };
  
  const bcmlrd_field_selector_data_t bcm56990_a0_lrd_l3_ipv4_mc_route_map_select_data = {
      .num_field_selector = 5,
      .field_selector = bcm56990_a0_lrd_l3_ipv4_mc_route_map_select,
  };
  
  static const bcmlrd_map_group_t bcm56990_a0_lrd_l3_ipv4_mc_route_map_group[] = {
      {
          .dest = {
              .kind = BCMLRD_MAP_PHYSICAL,
              .id = L3_DEFIP_LEVEL1_WIDEm,
          },
          .entries = 32,
          .entry = bcm56990_a0_lrd_l3_ipv4_mc_routet_l3_defip_level1_wide_map_entry
      },
  };
  const bcmlrd_map_t bcm56990_a0_lrd_l3_ipv4_mc_route_map = {
      .src_id = L3_IPV4_MC_ROUTEt,
      .field_data = &bcm56990_a0_lrd_l3_ipv4_mc_route_map_field_data,
      .groups = 1,
      .group  = bcm56990_a0_lrd_l3_ipv4_mc_route_map_group,
      .table_attr = &bcm56990_a0_lrd_l3_ipv4_mc_routet_attr_group,
      .entry_ops = BCMLRD_MAP_TABLE_ENTRY_OPERATION_LOOKUP | BCMLRD_MAP_TABLE_ENTRY_OPERATION_TRAVERSE | BCMLRD_MAP_TABLE_ENTRY_OPERATION_INSERT | BCMLRD_MAP_TABLE_ENTRY_OPERATION_UPDATE | BCMLRD_MAP_TABLE_ENTRY_OPERATION_DELETE,
      .sel = &bcm56990_a0_lrd_l3_ipv4_mc_route_map_select_data,
  };
  