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-2020 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_ */