mbcm.c (4550B)
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-2019 Broadcom Inc. All rights reserved. 6 * 7 * File: mbcm.c 8 */ 9 10 #include <soc/defs.h> 11 #if defined(BCM_HELIX5_SUPPORT) 12 #include <soc/debug.h> 13 #include <bcm_int/esw/mbcm.h> 14 #include <bcm_int/esw/firebolt.h> 15 #include <bcm_int/esw/triumph.h> 16 #include <bcm_int/esw/triumph2.h> 17 #include <bcm_int/esw/trident.h> 18 #include <bcm_int/esw/triumph3.h> 19 #include <bcm_int/esw/trident2.h> 20 #include <bcm_int/esw/tomahawk.h> 21 #include <bcm_int/esw/trident2plus.h> 22 #include <bcm_int/esw/trident3.h> 23 #include <bcm_int/esw/helix5.h> 24 #include <bcm/error.h> 25 26 mbcm_functions_t mbcm_helix5_driver = { 27 /* L2 functions */ 28 bcm_tr_l2_init, 29 bcm_tr_l2_term, 30 bcm_tr_l2_addr_get, 31 bcm_tr_l2_addr_add, 32 bcm_tr_l2_addr_delete, 33 34 bcm_tr_l2_conflict_get, 35 36 /* Port table related functions */ 37 bcm_td3_port_cfg_init, 38 bcm_td3_port_cfg_get, 39 bcm_td3_port_cfg_set, 40 41 /* VLAN functions */ 42 bcm_xgs3_vlan_init, 43 bcm_xgs3_vlan_reload, 44 bcm_xgs3_vlan_create, 45 bcm_xgs3_vlan_destroy, 46 bcm_xgs3_vlan_port_add, 47 bcm_xgs3_vlan_port_remove, 48 bcm_xgs3_vlan_port_get, 49 bcm_xgs3_vlan_stg_get, 50 bcm_xgs3_vlan_stg_set, 51 52 /* Trunking functions */ 53 bcm_trident_trunk_modify, 54 bcm_trident_trunk_get, 55 bcm_trident_trunk_destroy, 56 bcm_trident_trunk_mcast_join, 57 58 /* Spanning Tree Group functions */ 59 bcm_xgs3_stg_stp_init, 60 bcm_xgs3_stg_stp_get, 61 bcm_xgs3_stg_stp_set, 62 63 /* Multicasting functions */ 64 bcm_xgs3_mcast_addr_add, 65 bcm_xgs3_mcast_addr_remove, 66 bcm_xgs3_mcast_port_get, 67 bcm_xgs3_mcast_init, 68 _bcm_xgs3_mcast_detach, 69 bcm_xgs3_mcast_addr_add_w_l2mcindex, 70 bcm_xgs3_mcast_addr_remove_w_l2mcindex, 71 bcm_xgs3_mcast_port_add, 72 bcm_xgs3_mcast_port_remove, 73 74 /* COSQ functions */ 75 bcm_hx5_cosq_init, 76 bcm_td2_cosq_detach, 77 bcm_hx5_cosq_config_set, 78 bcm_hx5_cosq_config_get, 79 bcm_hx5_cosq_mapping_set, 80 bcm_hx5_cosq_mapping_get, 81 bcm_hx5_cosq_port_sched_set, 82 bcm_hx5_cosq_port_sched_get, 83 bcm_hx5_cosq_sched_weight_max_get, 84 bcm_hx5_cosq_port_bandwidth_set, 85 bcm_hx5_cosq_port_bandwidth_get, 86 bcm_hx5_cosq_discard_set, 87 bcm_hx5_cosq_discard_get, 88 bcm_hx5_cosq_discard_port_set, 89 bcm_hx5_cosq_discard_port_get, 90 #ifdef BCM_WARM_BOOT_SUPPORT 91 bcm_hx5_cosq_sync, 92 #endif /* BCM_WARM_BOOT_SUPPORT */ 93 #ifndef BCM_SW_STATE_DUMP_DISABLE 94 bcm_hx5_cosq_sw_dump, 95 #endif /* BCM_SW_STATE_DUMP_DISABLE */ 96 97 /* Port meter functions */ 98 bcm_td3_port_rate_egress_set, 99 bcm_td3_port_rate_egress_get, 100 101 #ifdef INCLUDE_L3 102 /* L3 functions */ 103 bcm_td2p_l3_tables_init, 104 bcm_xgs3_l3_tables_cleanup, 105 bcm_xgs3_l3_enable, 106 bcm_xgs3_l3_intf_get, 107 bcm_xgs3_l3_intf_get_by_vid, 108 bcm_xgs3_l3_intf_create, 109 bcm_xgs3_l3_intf_id_create, 110 bcm_xgs3_l3_intf_lookup, 111 bcm_xgs3_l3_intf_del, 112 bcm_xgs3_l3_intf_del_all, 113 114 bcm_xgs3_l3_get, 115 bcm_xgs3_l3_add, 116 bcm_xgs3_l3_del, 117 bcm_xgs3_l3_del_prefix, 118 bcm_xgs3_l3_del_intf, 119 bcm_xgs3_l3_del_all, 120 bcm_td2_l3_replace, 121 bcm_xgs3_l3_age, 122 bcm_xgs3_l3_ip4_traverse, 123 124 bcm_xgs3_l3_get, 125 bcm_xgs3_l3_add, 126 bcm_xgs3_l3_del, 127 bcm_xgs3_l3_del_prefix, 128 bcm_td2_l3_replace, 129 bcm_xgs3_l3_ip6_traverse, 130 131 bcm_xgs3_defip_get, 132 bcm_xgs3_defip_ecmp_get_all, 133 bcm_xgs3_defip_add, 134 bcm_xgs3_defip_del, 135 bcm_xgs3_defip_del_intf, 136 bcm_xgs3_defip_del_all, 137 bcm_xgs3_defip_age, 138 bcm_xgs3_defip_ip4_traverse, 139 140 bcm_xgs3_defip_get, 141 bcm_xgs3_defip_ecmp_get_all, 142 bcm_xgs3_defip_add, 143 bcm_xgs3_defip_del, 144 bcm_xgs3_defip_ip6_traverse, 145 146 bcm_td3_l3_conflict_get, 147 bcm_xgs3_l3_info, 148 149 bcm_tr_ipmc_init, 150 bcm_tr_ipmc_detach, 151 bcm_tr_ipmc_enable, 152 bcm_tr_ipmc_src_port_check, 153 bcm_tr_ipmc_src_ip_search, 154 bcm_tr_ipmc_add, 155 bcm_tr_ipmc_delete, 156 bcm_tr_ipmc_delete_all, 157 bcm_tr_ipmc_lookup, 158 bcm_tr_ipmc_get, 159 bcm_tr_ipmc_put, 160 bcm_tr_ipmc_egress_port_get, 161 bcm_tr_ipmc_egress_port_set, 162 bcm_th_ipmc_repl_init, 163 bcm_th_ipmc_repl_detach, 164 bcm_th_ipmc_repl_get, 165 bcm_th_ipmc_repl_add, 166 bcm_th_ipmc_repl_delete, 167 bcm_th_ipmc_repl_delete_all, 168 bcm_th_ipmc_egress_intf_add, 169 bcm_th_ipmc_egress_intf_delete, 170 bcm_tr_ipmc_age, 171 bcm_tr_ipmc_traverse, 172 #endif /* INCLUDE_L3 */ 173 }; 174 #else /* BCM_HELIX5_SUPPORT */ 175 int bcm_esw_helix5_mbcm_not_empty; 176 #endif /* BCM_HELIX5_SUPPORT */