openbcm

Git mirror of https://github.com/Broadcom-Network-Switching-Software/OpenBCM
git clone git://git.finwo.net/mirror/broadcom/openbcm
Log | Files | Refs | README

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