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

trunk.h (1889B)


      1 /** \file include/shared/trunk.h
      2  * 
      3  * 
      4  *  This file contains definitions for papi to use in context of
      5  *  the trunk module.
      6  */
      7 
      8 /*
      9  * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file.
     10  * 
     11  * Copyright 2007-2019 Broadcom Inc. All rights reserved.
     12  */
     13 
     14 #ifndef _SHR_TRUNK_H
     15 #define _SHR_TRUNK_H
     16 
     17 #define _SHR_TRUNK_ID_BIT               25
     18 #define _SHR_TRUNK_STACKING_BIT         24
     19 #define _SHR_TRUNK_ID_MASK              1 << _SHR_TRUNK_ID_BIT
     20 #define _SHR_TRUNK_STACKING_MASK        1 << _SHR_TRUNK_STACKING_BIT
     21 #define _SHR_TRUNK_POOL_BITS            3
     22 #define _SHR_TRUNK_POOL_OFFSET          17
     23 #define _SHR_TRUNK_GROUP_BITS           17
     24 #define _SHR_TRUNK_GROUP_OFFSET         0
     25 
     26 #define _SHR_TRUNK_ID_SET(trunk_id, pool, group)  \
     27     (trunk_id = (_SHR_TRUNK_ID_MASK) | \
     28     ((pool) << (_SHR_TRUNK_POOL_OFFSET)) | \
     29     ((group) << (_SHR_TRUNK_GROUP_OFFSET)))
     30 
     31 #define _SHR_TRUNK_ID_POOL_GET(pool, trunk_id)  \
     32     (pool = ((trunk_id) & ((1 << (_SHR_TRUNK_POOL_OFFSET + _SHR_TRUNK_POOL_BITS)) - 1)) >> (_SHR_TRUNK_POOL_OFFSET))
     33     
     34 #define _SHR_TRUNK_ID_GROUP_GET(group, trunk_id)  \
     35     (group = ((trunk_id) & ((1 << (_SHR_TRUNK_GROUP_OFFSET + _SHR_TRUNK_GROUP_BITS)) - 1)) >> (_SHR_TRUNK_GROUP_OFFSET))
     36 
     37 #define _SHR_TRUNK_ID_IS_VALID(trunk_id) \
     38     (((trunk_id) & (_SHR_TRUNK_ID_MASK)) != 0)
     39 
     40 #define _SHR_TRUNK_STACKING_ID_SET(trunk_id, peer_tm_domain) \
     41     (trunk_id = ((peer_tm_domain) | (_SHR_TRUNK_ID_MASK) | (_SHR_TRUNK_STACKING_MASK)))
     42 
     43 #define _SHR_TRUNK_ID_IS_STACKING(trunk_id) \
     44     ((((trunk_id) & (_SHR_TRUNK_STACKING_MASK)) != 0) && (((trunk_id) & (_SHR_TRUNK_ID_MASK)) != 0))
     45 
     46 #define _SHR_TRUNK_STACKING_PEER_TMD_GET(peer_tm_domain, trunk_id) \
     47     ((peer_tm_domain) = ((peer_tm_domain) & ( ~((_SHR_TRUNK_ID_MASK) | (_SHR_TRUNK_STACKING_MASK)) )))
     48 
     49 #endif /* _SHR_TRUNK_H */