alloc_mngr_shr.h (22432B)
1 /* 2 * 3 * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 4 * 5 * Copyright 2007-2020 Broadcom Inc. All rights reserved. 6 * 7 * File: alloc_mngr_shr.h 8 * Purpose: Resource allocation shared between alloc and wb. 9 */ 10 11 #ifndef INCLUDE_ALLOC_MNGR_SHR_H 12 #define INCLUDE_ALLOC_MNGR_SHR_H 13 14 #include <soc/dpp/PPD/ppd_api_general.h> 15 #include <soc/dpp/drv.h> 16 #include <shared/swstate/sw_state_resmgr.h> 17 #include <shared/shr_template.h> 18 #include <soc/dpp/SAND/Utils/sand_occupation_bitmap.h> 19 #include <bcm_int/dpp/port.h> 20 #include <bcm_int/dpp/vlan.h> 21 #include <soc/dpp/PPD/ppd_api_eg_encap.h> 22 #include <soc/dpp/PPD/ppd_api_trap_mgmt.h> 23 24 /* Res managemr Defines and Structures. */ 25 typedef enum _dpp_am_res_e { 26 /****************************************/ 27 /************ TM POOLS **************/ 28 /****************************************/ 29 dpp_am_res_mc_dynamic = 0, 30 dpp_am_res_trap_single_instance, 31 dpp_am_res_trap_user_define, 32 dpp_am_res_trap_virtual, 33 dpp_am_res_trap_reserved_mc, 34 dpp_am_res_trap_prog, 35 dpp_am_res_trap_egress, 36 dpp_am_res_snoop_cmd, 37 dpp_am_res_qos_egr_pcp_vlan, 38 39 /****************************************/ 40 /************ PP POOLS **************/ 41 /****************************************/ 42 dpp_am_res_vsi_vlan, 43 dpp_am_res_vsi_mstp, 44 dpp_am_res_lif_pwe, 45 dpp_am_res_lif_ip_tnl, 46 dpp_am_res_lif_dynamic, 47 dpp_am_res_fec_global, 48 dpp_am_res_failover_common_id, 49 dpp_am_res_failover_ingress_id, 50 dpp_am_res_failover_fec_id, 51 dpp_am_res_failover_egress_id, 52 dpp_am_res_eep_global, 53 dpp_am_res_eep_ip_tnl, /* used for ip tunnels*/ 54 dpp_am_res_eep_mpls_tunnel, /* used for mpls/pwe tunnels*/ 55 dpp_am_res_glbl_src_ip, 56 dpp_am_res_glbl_ttl, 57 dpp_am_res_glbl_tos, 58 dpp_am_res_eg_out_ac, 59 dpp_am_res_eg_out_rif, 60 dpp_am_res_eg_data_erspan, 61 dpp_am_res_ipv6_tunnel, 62 dpp_am_res_eg_data_trill_invalid_entry, 63 dpp_am_res_qos_ing_elsp, 64 dpp_am_res_qos_ing_lif_cos, 65 dpp_am_res_qos_ing_pcp_vlan, 66 dpp_am_res_qos_ing_cos_opcode, 67 dpp_am_res_qos_egr_remark_id, 68 dpp_am_res_qos_egr_mpls_php_id, 69 dpp_am_res_meter_a, /* must be directly before meter_b */ 70 dpp_am_res_meter_b, /* must be directly after meter_a */ 71 dpp_am_res_ether_policer, 72 #ifdef BCM_ARAD_SUPPORT 73 dpp_am_res_ecmp_id, 74 #endif 75 dpp_am_res_qos_egr_l2_i_tag, 76 #ifdef BCM_88660 77 dpp_am_res_qos_egr_dscp_exp_marking, 78 #endif /* BCM_88660 */ 79 dpp_am_res_rp_id, /* RPIDs for IPMC BIDIR*/ 80 dpp_am_res_oam_ma_index, 81 dpp_am_res_oam_mep_id_short, 82 dpp_am_res_oam_mep_id_long, 83 dpp_am_res_oam_mep_id_long_non_48_maid, 84 dpp_am_res_oam_mep_id_long_48_maid, 85 dpp_am_res_oam_mep_id_jumbo_tlv, 86 dpp_am_res_oam_mep_id_no_jumbo_tlv, 87 dpp_am_res_oam_rmep_id, 88 dpp_am_res_oam_trap_code_upmep_ftmh_header, 89 dpp_am_res_pon_channel_profile, 90 dpp_am_res_vlan_edit_action_ingress, 91 dpp_am_res_vlan_edit_action_egress, 92 dpp_am_res_trill_virtual_nick_name, 93 dpp_am_res_local_inlif_common, 94 dpp_am_res_local_inlif_wide, 95 dpp_am_res_local_outlif, 96 dpp_am_res_eep_trill, 97 dpp_am_res_global_inlif, 98 dpp_am_res_global_outlif, 99 dpp_am_res_obs_inlif, 100 dpp_am_res_obs_eg_encap, 101 dpp_am_res_vsq_src_port, 102 dpp_am_res_vsq_pg, 103 dpp_am_res_map_encap_intpri_color, 104 dpp_am_res_field_entry_id, 105 dpp_am_res_field_direct_extraction_entry_id, 106 dpp_am_res_oam_mep_id, 107 dpp_am_res_oam_mep_db_id, 108 dpp_am_res_trap_etpp, 109 dpp_am_res_global_sync_lif, 110 dpp_am_res_oam_sd_sf_id, 111 dpp_am_res_oam_y_1711_sd_sf_id, 112 dpp_am_res_qos_ing_color, 113 dpp_am_res_ipsec_sa_id, 114 dpp_am_res_ipsec_tunnel_id, 115 dpp_am_res_eg_data_l2tp, 116 dpp_am_res_count /* MUST BE LAST -- NOT A VALID ID */ 117 } _dpp_am_res_t; 118 119 /* 120 * Pool structure for all pools other than cosq. 121 * for cosq see bcm_dpp_am_cosq_pool_info_t 122 * A pool_id represents mapping between resource_id and core_id. 123 */ 124 typedef struct { 125 int pool_id; /* The pool on which the resource is allocated. */ 126 int res_id; /* The resource using the pool. */ 127 int core_id; /* The core using the pool.*/ 128 sw_state_res_allocator_t res_type; /* resource storage type */ 129 int start; /* resource start */ 130 int count; /* count of resources */ 131 int max_elements_per_allocation; /* required for wb storage */ 132 } bcm_dpp_am_pool_info_t; 133 134 135 /* Template management Defines and Structures */ 136 typedef enum _dpp_am_template_e { 137 /****************************************/ 138 /************ TM TEMPLATES **************/ 139 /****************************************/ 140 dpp_am_template_egress_thresh = 0, 141 dpp_am_template_mirror_action_profile, 142 dpp_am_template_egress_interface_unicast_thresh, 143 dpp_am_template_egress_interface_multicast_thresh, 144 dpp_am_template_user_defined_traps, 145 dpp_am_template_snoop_cmd, 146 dpp_am_template_trap_reserved_mc, 147 dpp_am_template_prog_trap, 148 dpp_am_template_queue_rate_cls, 149 dpp_am_template_system_red_dp_pr, 150 dpp_am_template_vsq_pg_tc_mapping, 151 dpp_am_template_vsq_rate_cls_ct, 152 dpp_am_template_vsq_rate_cls_cttc, 153 dpp_am_template_vsq_rate_cls_ctcc, 154 dpp_am_template_vsq_rate_cls_pp, 155 dpp_am_template_vsq_rate_cls_src_port, 156 dpp_am_template_vsq_rate_cls_pg, 157 dpp_am_template_queue_discount_cls, 158 dpp_am_template_pp_port_discount_cls, 159 dpp_am_template_egress_port_discount_cls_type_raw, 160 dpp_am_template_egress_port_discount_cls_type_cpu, 161 dpp_am_template_egress_port_discount_cls_type_eth, 162 dpp_am_template_egress_port_discount_cls_type_tm, 163 dpp_am_template_cosq_port_hr_flow_control, /* e2e port hr flow control profile */ 164 dpp_am_template_cosq_sched_class, /* scheduler (cl) class */ 165 dpp_am_template_fabric_tdm_link_ptr, /* TDM Direct routing link pointer */ 166 dpp_am_template_ingress_flow_tc_mapping, /* Ingress Flow TC Mapping Profiles */ 167 dpp_am_template_ingress_uc_tc_mapping, /* Ingress UC TC Mapping Profiles */ 168 dpp_am_template_fc_generic_pfc_mapping, /* Flow Control Generic PFC Profiles */ 169 dpp_am_template_fc_generic_pfc_mapping_c0, /* Flow Control Generic PFC Profiles for priority 0 */ 170 dpp_am_template_fc_generic_pfc_mapping_c1, /* Flow Control Generic PFC Profiles for priority 1 */ 171 dpp_am_template_fc_generic_pfc_mapping_c2, /* Flow Control Generic PFC Profiles for priority 2 */ 172 dpp_am_template_fc_generic_pfc_mapping_c3, /* Flow Control Generic PFC Profiles for priority 3 */ 173 dpp_am_template_fc_generic_pfc_mapping_c4, /* Flow Control Generic PFC Profiles for priority 4 */ 174 dpp_am_template_fc_generic_pfc_mapping_c5, /* Flow Control Generic PFC Profiles for priority 5 */ 175 dpp_am_template_fc_generic_pfc_mapping_c6, /* Flow Control Generic PFC Profiles for priority 6 */ 176 dpp_am_template_fc_generic_pfc_mapping_c7, /* Flow Control Generic PFC Profiles for priority 7 */ 177 dpp_am_template_cnm_queue_profile, 178 dpp_am_template_tpid_profile, 179 dpp_am_template_egress_queue_mapping, 180 dpp_am_template_trap_egress, 181 dpp_am_template_nrdy_threshold, 182 183 /****************************************/ 184 /************ PP POOLS **************/ 185 /****************************************/ 186 dpp_am_template_vlan_edit_profile_mapping, /* VLAN Edit Profile */ 187 dpp_am_template_vlan_edit_profile_mapping_eg, /* Egress VLAN Edit Profile */ 188 dpp_am_template_vsi_egress_profile, 189 dpp_am_template_vsi_ingress_profile, 190 dpp_am_template_reserved_mc, 191 dpp_am_template_tpid_class, 192 dpp_am_template_mpls_push_profile, 193 dpp_am_template_lif_term_profile, 194 dpp_am_template_lif_term_pw_with_cw_profile, 195 dpp_am_template_port_mact_sa_drop_profile, 196 dpp_am_template_port_mact_da_unknown_profile, 197 /* don't separate between below 4 templates */ 198 dpp_am_template_meter_profile_a_low, 199 dpp_am_template_meter_profile_b_low, 200 /* don't separate between above 4 templates */ 201 dpp_am_template_l2_event_handle, /* from even-profile, to <event x self/learn/shadow> */ 202 dpp_am_template_l2_vsi_learn_profile, /* from learn-profile to <limit, event-profile, aging-profile> */ 203 dpp_am_template_l2_flooding_profile, /* flooding by <port_profile,lif_profile> */ 204 dpp_am_template_vlan_port_protocol_profile, /* port protocol mapping. <port,profile> ->10ethertype,tc,vlan */ 205 dpp_am_template_ip_tunnel_src_ip, 206 dpp_am_template_ip_tunnel_ttl, 207 dpp_am_template_ip_tunnel_tos, 208 dpp_am_template_ttl_scope_index, 209 dpp_am_template_oam_icc_map, 210 dpp_am_template_oam_sa_mac, 211 dpp_am_template_oam_punt_event_hendling_profile, 212 dpp_am_template_oam_mep_profile_non_accelerated, 213 dpp_am_template_oam_mep_profile_accelerated, 214 dpp_am_template_bfd_mep_profile_non_accelerated, 215 dpp_am_template_bfd_mep_profile_accelerated, 216 dpp_am_template_oam_tx_priority, 217 dpp_am_template_bfd_ip_dip, 218 dpp_am_template_mpls_pwe_push_profile, 219 dpp_am_template_bfd_req_interval_pointer, 220 dpp_am_template_bfd_tos_ttl_profile, 221 dpp_am_template_bfd_src_ip_profile, 222 dpp_am_template_bfd_flags_profile, 223 dpp_am_template_oam_lmm_nic_tables_profile, 224 dpp_am_template_oam_lmm_oui_tables_profile, 225 dpp_am_template_oam_eth1731_profile, 226 dpp_am_template_oam_local_port_2_system_port, 227 dpp_am_template_oam_oamp_pe_gen_mem, 228 dpp_am_template_port_tpid_class_egress_acceptable_frame_type, 229 dpp_am_template_ptp_port_profile, 230 dpp_am_template_l3_vrrp, 231 dpp_am_template_l3_rif_mac_termination_combination, 232 dpp_am_template_eedb_roo_ll_format_eth_type_index, 233 dpp_am_template_tpid_class_eg, 234 dpp_am_template_out_rif_profile, 235 dpp_am_template_oamp_pe_gen_mem_maid_48, 236 dpp_am_template_ip_tunnel_encapsulation_mode, 237 dpp_am_template_crps_inpp_port_compensation_profile, 238 dpp_am_template_crps_intm_port_compensation_profile, 239 dpp_am_template_stat_interface_ing_port_compensation_profile, 240 dpp_am_template_stat_interface_egr_port_compensation_profile, 241 dpp_am_template_scheduler_adjust_size_final_delta, /* relevant for Jericho only */ 242 dpp_am_template_lif_mtu_profile, /*Relevant only for JB0 and above*/ 243 dpp_am_template_oamp_flex_ver_mask, 244 dpp_am_template_oamp_cls_flex_crc, 245 dpp_am_template_l2cp_egress_profile, 246 dpp_am_template_oam_sd_sf_profile, 247 dpp_am_template_bfd_sbfd_non_acc_src_ip_profile, 248 dpp_am_template_count /* MUST BE LAST -- NOT A VALID ID */ 249 } _dpp_am_template_t; 250 251 /* 252 * Template structure for templates other than those already supported by cosq 253 * for warmboot. 254 * A pool_id represents mapping between template id and core id. 255 */ 256 typedef struct { 257 int pool_id; /* Pool id of the pool. */ 258 int template_id; /* Template id using the pool. */ 259 int core_id; /* Core id using the pool. */ 260 shr_template_manage_t manager; 261 int start; 262 int count; 263 int max_entities; /* max referring entities */ 264 uint32 global_max; /* Max referring entinties on all templates. */ 265 size_t data_size; 266 shr_template_manage_hash_compare_extras_t hashExtra; 267 } bcm_dpp_am_template_info_t; 268 269 /* An array representing the various hash compare callbacks. */ 270 typedef enum _bcm_dpp_am_template_hash_compare_cb_idx_e { 271 _bcm_dpp_am_template_hash_compare_cb_idx_memcpy, 272 _bcm_dpp_am_template_hash_compare_cb_idx_user_defined_trap, 273 _bcm_dpp_am_template_hash_compare_cb_idx_snoop_cmd, 274 _bcm_dpp_am_template_hash_compare_cb_idx_discount_cls, 275 _bcm_dpp_am_template_hash_compare_cb_idx_count 276 } _bcm_dpp_am_template_hash_compare_cb_idx_t; 277 278 extern shr_template_to_stream_t _bcm_dpp_am_template_to_stream_arr[_bcm_dpp_am_template_hash_compare_cb_idx_count]; 279 extern shr_template_from_stream_t _bcm_dpp_am_template_from_stream_arr[_bcm_dpp_am_template_hash_compare_cb_idx_count]; 280 281 282 /*Below is the global array of call back functions used to print the template data */ 283 extern shr_template_print_func_t _bcm_dpp_am_template_print_func[dpp_am_template_count]; 284 285 int 286 _bcm_dpp_pp_resource_setup(int unit, int res_id, int core_id, int pool_id); 287 288 int 289 _bcm_dpp_template_setup(int unit, int template_id, int core_id, int pool_id); 290 291 int 292 _bcm_dpp_am_template_tinfo_get(int unit, int pool_idx, int template_id, bcm_dpp_am_template_info_t* t_info); 293 294 int 295 bcm_dpp_am_l2_vsi_vlan_alloc(int unit, 296 uint32 flags, 297 bcm_vlan_t *vsi); 298 int 299 bcm_dpp_am_l2_vpn_pwe_alloc(int unit, 300 uint32 lif_term_types, 301 uint32 flags, 302 int count, 303 SOC_PPC_LIF_ID *lif); 304 int 305 bcm_dpp_am_l3_lif_ip_tnl_alloc(int unit, 306 uint32 flags, 307 SOC_PPC_LIF_ID *lif); 308 int 309 bcm_dpp_am_l2_lif_mim_alloc(int unit); 310 311 int 312 bcm_dpp_am_mc_alloc(int unit, 313 uint32 flags, /* flags should be SHR_RES_ALLOC_WITH_ID; */ 314 SOC_TMC_MULT_ID *mc_id, 315 uint8 is_egress); 316 317 318 typedef enum { 319 /* Standard FEC */ 320 _BCM_DPP_AM_FEC_ALLOC_USAGE_STANDARD, 321 /* L3 ECMP - DEPRECATED - DO NOT USE - only used by bcm_l3_egress_multipath_* */ 322 _BCM_DPP_AM_FEC_ALLOC_USAGE_ECMP, 323 /* Group-B FEC (for Hierarchical FEC) */ 324 _BCM_DPP_AM_FEC_ALLOC_USAGE_CASCADED 325 } _bcm_dpp_am_fec_alloc_usage; 326 327 int 328 bcm_dpp_am_fec_global_alloc(int unit, 329 uint32 flags, 330 _bcm_dpp_am_fec_alloc_usage usage, 331 int size, 332 int aligned, 333 int *elem); 334 int 335 bcm_dpp_am_fec_alloc(int unit, 336 uint32 flags, 337 _bcm_dpp_am_fec_alloc_usage usage, 338 int size,/*non-zero for protection or ECMP*/ 339 SOC_PPC_FEC_ID *fec_id); 340 int 341 bcm_dpp_am_failover_alloc(int unit, 342 uint32 flags, 343 int32 failover_type, 344 int32 nof_alloc_ids, 345 bcm_failover_t *failover_id); 346 347 #define _BCM_DPP_AM_L3_EEP_TYPE_DEFAULT (0) /* Link-layer */ 348 #define _BCM_DPP_AM_L3_EEP_TYPE_ROO_LINKER_LAYER (1) /* ROO Linker-layer */ 349 350 351 int 352 bcm_dpp_am_l3_eep_alloc(int unit, 353 uint32 types, 354 uint32 flags, 355 int *eep); 356 357 #define _BCM_DPP_AM_IP_TUNNEL_EEP_TYPE_DEFAULT (0) /* IP tunnel */ 358 #define _BCM_DPP_AM_IP_TUNNEL_EEP_TYPE_ROO (1) /* ROO IP tunnel */ 359 int 360 bcm_dpp_am_ip_tunnel_eep_alloc(int unit, 361 uint32 types, 362 uint32 flags, 363 int *eep); 364 365 int 366 bcm_dpp_am_l2_encap_eep_alloc(int unit, uint32 flags,int *eep); 367 int 368 bcm_dpp_am_l2_encap_eep_is_alloced(int unit, int eep); 369 int 370 bcm_dpp_am_l2_encap_eep_dealloc(int unit, int eep); 371 372 #define _BCM_DPP_AM_MPLS_EEP_TYPE_PWE (0) 373 #define _BCM_DPP_AM_MPLS_EEP_TYPE_SIMPLE_MPLS_TUNNEL (1) 374 #define _BCM_DPP_AM_MPLS_EEP_TYPE_SECOND_MPLS_TUNNEL (2) 375 /* This type is for creating PWE with EGRESS_ONLY flag. The functionality is the same as _BCM_DPP_AM_MPLS_EEP_TYPE_SECOND_MPLS_TUNNEL */ 376 #define _BCM_DPP_AM_MPLS_EEP_TYPE_PWE_EGRESS_ONLY (3) 377 int 378 bcm_dpp_am_mpls_eep_alloc(int unit, 379 uint32 type, 380 uint32 flags, 381 int count, 382 int *eep); 383 384 int 385 bcm_dpp_am_ip_tunnel_glbl_src_ip_alloc(int unit, 386 uint32 flags, 387 int *idx); 388 389 int 390 bcm_dpp_am_ip_tunnel_glbl_ttl_alloc(int unit, 391 uint32 flags, 392 int *idx); 393 int 394 bcm_dpp_am_ip_tunnel_glbl_tos_alloc(int unit, 395 uint32 flags, 396 int *idx); 397 398 #define _BCM_DPP_AM_OUT_AC_TYPE_DEFAULT (0) 399 #define _BCM_DPP_AM_OUT_AC_TYPE_PON_3_TAGS_DATA (1) 400 #define _BCM_DPP_AM_OUT_AC_TYPE_PON_3_TAGS_OUT_AC (2) 401 #ifdef BCM_88660_A0 402 #define _BCM_DPP_AM_OUT_AC_TYPE_BIG_OUT_AC (3) 403 #define _BCM_DPP_AM_OUT_AC_TYPE_DATA_MPLS_PHASE (4) 404 #endif 405 406 int 407 bcm_dpp_am_out_ac_alloc(int unit, 408 uint32 types, 409 uint32 flags, 410 SOC_PPC_AC_ID *out_ac); 411 412 int 413 bcm_dpp_am_qos_ing_elsp_alloc(int unit, 414 uint32 flags, 415 int *qos_id); 416 417 int 418 bcm_dpp_am_qos_ing_lif_cos_alloc(int unit, 419 uint32 flags, 420 int *qos_id); 421 422 423 int 424 bcm_dpp_am_qos_ing_pcp_vlan_alloc(int unit, 425 uint32 flags, 426 int *qos_id); 427 428 int 429 bcm_dpp_am_qos_ing_color_alloc(int unit, 430 uint32 flags, 431 int *qos_id); 432 433 int 434 bcm_dpp_am_qos_egr_remark_id_alloc(int unit, 435 uint32 flags, 436 int *qos_id); 437 438 int 439 bcm_dpp_am_qos_egr_mpls_php_id_alloc(int unit, 440 uint32 flags, 441 int *qos_id); 442 443 int 444 bcm_dpp_am_qos_egr_pcp_vlan_alloc(int unit, 445 uint32 flags, 446 int *qos_id); 447 448 int 449 bcm_dpp_am_qos_ing_cos_opcode_alloc(int unit, 450 uint32 flags, 451 int *qos_id); 452 453 int 454 bcm_dpp_am_qos_egr_l2_i_tag_alloc(int unit, 455 uint32 flags, 456 int *qos_id); 457 458 #ifdef BCM_88660 459 int 460 bcm_dpp_am_qos_egr_dscp_exp_marking_alloc(int unit, 461 uint32 flags, 462 int *qos_id); 463 #endif /* BCM_88660 */ 464 465 int 466 bcm_dpp_am_meter_alloc(int unit, 467 uint32 flags, 468 int core, 469 int meter_group, 470 int nof_meters, 471 int *act_meter_core, 472 int *act_meter_group, 473 int *meter_id); 474 475 int 476 bcm_dpp_am_policer_alloc(int unit, 477 int core_id, 478 uint32 flags, 479 int size, 480 int *policer_id); 481 int 482 bcm_dpp_am_vrf_alloc(int unit, 483 uint32 flags, 484 int *vrf_id); 485 486 int 487 bcm_dpp_am_vlan_edit_action_id_alloc(int unit, 488 uint32 flags, 489 int *action_id); 490 491 int 492 _bcm_dpp_am_trap_alloc(int unit, 493 int flags, 494 int trap_id, 495 int *elem); 496 int 497 _bcm_dpp_am_trap_single_instance_alloc(int unit, 498 int flags, 499 int *elem); 500 501 int 502 _bcm_dpp_am_trap_single_instance_etpp_alloc(int unit, 503 int flags, 504 int *elem); 505 int 506 _bcm_dpp_am_trap_user_define_alloc(int unit, 507 int flags, 508 int *elem); 509 int 510 _bcm_dpp_am_trap_virtual_alloc(int unit, 511 int flags, 512 int *elem); 513 514 int 515 _bcm_dpp_am_trap_egress_alloc(int unit, 516 int flags, 517 int *elem); 518 int 519 _bcm_dpp_am_snoop_alloc(int unit, 520 int flags, 521 int snoop_cmnd, 522 int *elem); 523 int 524 _bcm_dpp_am_snoop_cmd_alloc(int unit, 525 int flags, 526 int *elem); 527 528 int 529 _bcm_dpp_am_template_user_defined_trap_allocate(int unit, 530 uint32 flags, 531 int port, 532 const bcm_dpp_user_defined_traps_t* data, 533 int *is_allocated, 534 int *user_defined_trap); 535 536 int 537 _bcm_dpp_am_template_tpid_profile_allocate_group(int unit, 538 uint32 flags, 539 uint32 *data, 540 int ref_count, 541 int *is_allocated, 542 int *template_param); 543 544 545 int 546 _bcm_dpp_am_template_vlan_edit_profile_mapping_alloc(int unit, 547 int flags, 548 SOC_PPC_LIF_ID lif_id, 549 bcm_dpp_vlan_edit_profile_mapping_info_t* mapping_profile, 550 int *template_param, 551 int *is_allocated); 552 553 int 554 _bcm_dpp_am_template_vlan_edit_profile_eg_mapping_allocate(int unit, 555 uint32 flags, 556 bcm_dpp_vlan_egress_edit_profile_info_t *mapping_profile, 557 uint32 *template_id, 558 int *is_allocated); 559 560 int _bcm_dpp_am_template_mpls_push_profile_alloc(int unit, 561 int flags, 562 int push_profile, 563 SOC_PPC_EG_ENCAP_PUSH_PROFILE_INFO *push_profile_info, 564 int *new_push_profile, 565 int *is_allocated); 566 int 567 _bcm_dpp_am_template_trap_egress_allocate(int unit, 568 int flags, 569 SOC_SAND_IN SOC_PPC_TRAP_EG_ACTION_PROFILE_INFO *data, 570 int *template_param); 571 572 #endif /* INCLUDE_ALLOC_MNGR_SHR_H */