trunk.h (2210B)
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 trunk definitions internal to the BCM library. 8 */ 9 10 #ifndef _BCM_COMMON_TRUNK_H 11 #define _BCM_COMMON_TRUNK_H 12 13 #include <bcm/trunk.h> 14 15 typedef struct bcm_trunk_add_info_s { 16 uint32 flags; /* BCM_TRUNK_FLAG_xxx. */ 17 int num_ports; /* Number of ports in the trunk group. */ 18 int psc; /* Port selection criteria. */ 19 int ipmc_psc; /* Port selection criteria for software 20 IPMC trunk resolution. */ 21 int dlf_index; /* DLF/broadcast port for trunk group. */ 22 int mc_index; /* Multicast port for trunk group. */ 23 int ipmc_index; /* IPMC port for trunk group. */ 24 uint32 member_flags[BCM_TRUNK_MAX_PORTCNT]; /* BCM_TRUNK_MEMBER_xxx */ 25 bcm_port_t tp[BCM_TRUNK_MAX_PORTCNT]; /* Ports in trunk. */ 26 bcm_module_t tm[BCM_TRUNK_MAX_PORTCNT]; /* Modules per port. */ 27 uint32 dynamic_size; /* Number of flows for dynamic load 28 balancing. Valid values are 512, 1k, 29 doubling up to 32k */ 30 uint32 dynamic_age; /* Inactivity duration, in microseconds. */ 31 uint32 dynamic_load_exponent; /* The exponent used in the 32 exponentially weighted moving average 33 calculation of historical member 34 load. */ 35 uint32 dynamic_expected_load_exponent; /* The exponent used in the 36 exponentially weighted moving average 37 calculation of historical expected 38 member load. */ 39 } bcm_trunk_add_info_t; 40 41 extern void bcm_trunk_add_info_t_init(bcm_trunk_add_info_t *add_info); 42 43 #endif /* !_BCM_COMMON_TRUNK_H */