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

multicast.h (2337B)


      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  * This file contains multicast definitions internal to the BCM library.
      8  */
      9 
     10 #ifndef _BCM_INT_ESW_MULTICAST_H_
     11 #define _BCM_INT_ESW_MULTICAST_H_
     12 
     13 
     14 #define _BCM_VIRTUAL_TYPES_MASK                                 \
     15         (BCM_MULTICAST_TYPE_VPLS | BCM_MULTICAST_TYPE_MIM |      \
     16          BCM_MULTICAST_TYPE_SUBPORT | BCM_MULTICAST_TYPE_TRILL | \
     17          BCM_MULTICAST_TYPE_WLAN | BCM_MULTICAST_TYPE_VLAN | \
     18          BCM_MULTICAST_TYPE_NIV)
     19 
     20 #define BCM_MULTICAST_PORT_MAX  4096
     21 
     22 extern int _bcm_esw_multicast_flags_to_group_type(uint32 flags);
     23 extern uint32 _bcm_esw_multicast_group_type_to_flags(int group_type);
     24 
     25 extern int _bcm_tr_multicast_ipmc_group_type_set(int unit,
     26                                                  bcm_multicast_t group);
     27 extern int _bcm_tr_multicast_ipmc_group_type_get(int unit, uint32 ipmc_id,
     28                                                  bcm_multicast_t *group);
     29 
     30 extern int _bcm_esw_ipmc_egress_intf_add(int unit, int ipmc_id, bcm_port_t port,
     31                                      int nh_index, int is_l3);
     32 extern int _bcm_esw_ipmc_egress_intf_delete(int unit, int ipmc_id,
     33                                            bcm_port_t port, int if_max,
     34                                            int nh_index, int is_l3);
     35 extern int _bcm_esw_multicast_ipmc_read(int unit, int ipmc_id, 
     36                                         bcm_pbmp_t *l2_pbmp, bcm_pbmp_t *l3_pbmp);
     37 extern int _bcm_esw_multicast_ipmc_write(int unit, int ipmc_id, 
     38                                          bcm_pbmp_t l2_pbmp, bcm_pbmp_t l3_pbmp, 
     39                                          int valid);
     40 extern int bcmi_multicast_multi_count_set(int unit, bcm_multicast_t group,
     41                                           int count);
     42 extern int bcmi_multicast_multi_count_get(int unit, bcm_multicast_t group,
     43                                           int *count);
     44 #ifdef BCM_WARM_BOOT_SUPPORT
     45 extern int _bcm_esw_multicast_sync(int unit);
     46 #endif /* BCM_WARM_BOOT_SUPPORT */
     47 
     48 #ifndef BCM_SW_STATE_DUMP_DISABLE
     49 extern void _bcm_multicast_sw_dump(int unit);
     50 #endif /* BCM_SW_STATE_DUMP_DISABLE */
     51 
     52 #endif	/* !_BCM_INT_ESW_MULTICAST_H_ */