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