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

mpls.h (1385B)


      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 defines MPLS constants 
      8  *
      9  * Its contents are not used directly by applications; it is used only
     10  * by header files of parent APIs which need to share  MPLS constants.
     11  */
     12 
     13 #ifndef _SHR_MPLS_H
     14 #define _SHR_MPLS_H
     15 
     16 #define _SHR_MPLS_INDEXED_LABEL_INDEX_SHIFT                      20
     17 #define _SHR_MPLS_INDEXED_LABEL_INDEX_MASK                       0x7
     18 #define _SHR_MPLS_INDEXED_LABEL_VALUE_SHIFT                      0
     19 #define _SHR_MPLS_INDEXED_LABEL_VALUE_MASK                       0xFFFFF
     20 
     21 /* 
     22  *  MPLS macros for indexed support
     23  */
     24 #define _SHR_MPLS_INDEXED_LABEL_SET(_label, _label_value,_index)            \
     25         ((_label) = (((_index) & _SHR_MPLS_INDEXED_LABEL_INDEX_MASK)  << _SHR_MPLS_INDEXED_LABEL_INDEX_SHIFT)  | \
     26         (((_label_value) & _SHR_MPLS_INDEXED_LABEL_VALUE_MASK) << _SHR_MPLS_INDEXED_LABEL_VALUE_SHIFT))
     27 
     28 #define _SHR_MPLS_INDEXED_LABEL_VALUE_GET(_label)   \
     29         (((_label) >> _SHR_MPLS_INDEXED_LABEL_VALUE_SHIFT) & _SHR_MPLS_INDEXED_LABEL_VALUE_MASK)
     30 
     31 #define _SHR_MPLS_INDEXED_LABEL_INDEX_GET(_label)   \
     32         (((_label) >> _SHR_MPLS_INDEXED_LABEL_INDEX_SHIFT) & _SHR_MPLS_INDEXED_LABEL_INDEX_MASK)
     33 
     34 #endif	/* !_SHR_MPLS_H */