mbcm.c (4811B)
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 #include <soc/defs.h> 10 #if defined(BCM_HERCULES_SUPPORT) 11 #include <bcm_int/esw/mbcm.h> 12 #include <bcm_int/esw/hercules.h> 13 14 mbcm_functions_t mbcm_hercules_driver = { 15 /* L2 functions */ 16 bcm_hercules_l2_init, 17 bcm_hercules_l2_term, 18 bcm_hercules_l2_addr_get, 19 bcm_hercules_l2_addr_add, 20 bcm_hercules_l2_addr_delete, 21 bcm_hercules_l2_conflict_get, 22 23 /* Port table related functions */ 24 bcm_hercules_port_cfg_init, 25 bcm_hercules_port_cfg_get, 26 bcm_hercules_port_cfg_set, 27 28 /* VLAN functions */ 29 bcm_hercules_vlan_init, 30 bcm_hercules_vlan_reload, 31 bcm_hercules_vlan_create, 32 bcm_hercules_vlan_destroy, 33 bcm_hercules_vlan_port_add, 34 bcm_hercules_vlan_port_remove, 35 bcm_hercules_vlan_port_get, 36 bcm_hercules_vlan_stg_get, 37 bcm_hercules_vlan_stg_set, 38 39 /* Hercules trunking functions */ 40 bcm_hercules_trunk_modify, 41 bcm_hercules_trunk_get, 42 bcm_hercules_trunk_destroy, 43 bcm_hercules_trunk_mcast_join, 44 45 /* Spanning Tree Group functions */ 46 bcm_hercules_stg_stp_init, 47 bcm_hercules_stg_stp_get, 48 bcm_hercules_stg_stp_set, 49 50 /* Multicasting functions */ 51 bcm_hercules_mcast_addr_add, 52 bcm_hercules_mcast_addr_remove, 53 bcm_hercules_mcast_port_get, 54 bcm_hercules_mcast_init, 55 _bcm_hercules_mcast_detach, 56 bcm_hercules_mcast_addr_add_w_l2mcindex, 57 bcm_hercules_mcast_addr_remove_w_l2mcindex, 58 bcm_hercules_mcast_port_add, 59 bcm_hercules_mcast_port_remove, 60 61 /* COSQ functions */ 62 bcm_hercules_cosq_init, 63 bcm_hercules_cosq_detach, 64 bcm_hercules_cosq_config_set, 65 bcm_hercules_cosq_config_get, 66 bcm_hercules_cosq_mapping_set, 67 bcm_hercules_cosq_mapping_get, 68 bcm_hercules_cosq_port_sched_set, 69 bcm_hercules_cosq_port_sched_get, 70 bcm_hercules_cosq_sched_weight_max_get, 71 bcm_hercules_cosq_port_bandwidth_set, 72 bcm_hercules_cosq_port_bandwidth_get, 73 bcm_hercules_cosq_discard_set, 74 bcm_hercules_cosq_discard_get, 75 bcm_hercules_cosq_discard_port_set, 76 bcm_hercules_cosq_discard_port_get, 77 #ifdef BCM_WARM_BOOT_SUPPORT 78 bcm_hercules_cosq_sync, 79 #endif /* BCM_WARM_BOOT_SUPPORT */ 80 #ifndef BCM_SW_STATE_DUMP_DISABLE 81 bcm_hercules_cosq_sw_dump, 82 #endif /* BCM_SW_STATE_DUMP_DISABLE */ 83 84 /* Port meter functions */ 85 bcm_hercules_port_rate_egress_set, 86 bcm_hercules_port_rate_egress_get, 87 88 #ifdef INCLUDE_L3 89 /* L3 functions */ 90 bcm_hercules_l3_tables_init, 91 bcm_hercules_l3_tables_cleanup, 92 bcm_hercules_l3_enable, 93 bcm_hercules_l3_intf_get, 94 bcm_hercules_l3_intf_get_by_vid, 95 bcm_hercules_l3_intf_create, 96 bcm_hercules_l3_intf_id_create, 97 bcm_hercules_l3_intf_lookup, 98 bcm_hercules_l3_intf_del, 99 bcm_hercules_l3_intf_del_all, 100 101 bcm_hercules_l3_get, 102 bcm_hercules_l3_add, 103 bcm_hercules_l3_del, 104 bcm_hercules_l3_del_prefix, 105 bcm_hercules_l3_del_intf, 106 bcm_hercules_l3_del_all, 107 bcm_hercules_l3_replace, 108 bcm_hercules_l3_age, 109 bcm_hercules_l3_traverse, 110 111 bcm_hercules_l3_ip6_get, 112 bcm_hercules_l3_ip6_add, 113 bcm_hercules_l3_ip6_del, 114 bcm_hercules_l3_ip6_del_prefix, 115 bcm_hercules_l3_ip6_replace, 116 bcm_hercules_l3_ip6_traverse, 117 118 bcm_hercules_defip_cfg_get, 119 bcm_hercules_defip_ecmp_get_all, 120 bcm_hercules_defip_add, 121 bcm_hercules_defip_del, 122 bcm_hercules_defip_del_intf, 123 bcm_hercules_defip_del_all, 124 bcm_hercules_defip_age, 125 bcm_hercules_defip_traverse, 126 127 bcm_hercules_ip6_defip_cfg_get, 128 bcm_hercules_ip6_defip_ecmp_get_all, 129 bcm_hercules_ip6_defip_add, 130 bcm_hercules_ip6_defip_del, 131 bcm_hercules_ip6_defip_traverse, 132 133 bcm_hercules_l3_conflict_get, 134 bcm_hercules_l3_info, 135 136 /* IPMC functions */ 137 bcm_hercules_ipmc_init, 138 bcm_hercules_ipmc_detach, 139 bcm_hercules_ipmc_enable, 140 bcm_hercules_ipmc_src_port_check, 141 bcm_hercules_ipmc_src_ip_search, 142 bcm_hercules_ipmc_add, 143 bcm_hercules_ipmc_delete, 144 bcm_hercules_ipmc_delete_all, 145 bcm_hercules_ipmc_lookup, 146 bcm_hercules_ipmc_get, 147 bcm_hercules_ipmc_put, 148 bcm_hercules_ipmc_egress_port_get, 149 bcm_hercules_ipmc_egress_port_set, 150 bcm_hercules_ipmc_repl_init, 151 bcm_hercules_ipmc_repl_detach, 152 bcm_hercules_ipmc_repl_get, 153 bcm_hercules_ipmc_repl_add, 154 bcm_hercules_ipmc_repl_delete, 155 bcm_hercules_ipmc_repl_delete_all, 156 bcm_hercules_ipmc_egress_intf_add, 157 bcm_hercules_ipmc_egress_intf_delete, 158 bcm_hercules_ipmc_age, 159 bcm_hercules_ipmc_traverse, 160 #endif /* INCLUDE_L3 */ 161 }; 162 #else /* BCM_HERCULES_SUPPORT */ 163 int bcm_esw_hercules_mbcm_not_empty; 164 #endif /* BCM_HERCULES_SUPPORT */ 165