xref: /minix3/external/bsd/tcpdump/dist/mpls.h (revision b636d99d91c3d54204248f643c14627405d4afd1)
1*b636d99dSDavid van Moolenbroek /*
2*b636d99dSDavid van Moolenbroek  * Copyright (C) 2001 WIDE Project.  All rights reserved.
3*b636d99dSDavid van Moolenbroek  *
4*b636d99dSDavid van Moolenbroek  * Redistribution and use in source and binary forms, with or without
5*b636d99dSDavid van Moolenbroek  * modification, are permitted provided that the following conditions
6*b636d99dSDavid van Moolenbroek  * are met:
7*b636d99dSDavid van Moolenbroek  * 1. Redistributions of source code must retain the above copyright
8*b636d99dSDavid van Moolenbroek  *    notice, this list of conditions and the following disclaimer.
9*b636d99dSDavid van Moolenbroek  * 2. Redistributions in binary form must reproduce the above copyright
10*b636d99dSDavid van Moolenbroek  *    notice, this list of conditions and the following disclaimer in the
11*b636d99dSDavid van Moolenbroek  *    documentation and/or other materials provided with the distribution.
12*b636d99dSDavid van Moolenbroek  * 3. Neither the name of the project nor the names of its contributors
13*b636d99dSDavid van Moolenbroek  *    may be used to endorse or promote products derived from this software
14*b636d99dSDavid van Moolenbroek  *    without specific prior written permission.
15*b636d99dSDavid van Moolenbroek  *
16*b636d99dSDavid van Moolenbroek  * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
17*b636d99dSDavid van Moolenbroek  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18*b636d99dSDavid van Moolenbroek  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19*b636d99dSDavid van Moolenbroek  * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
20*b636d99dSDavid van Moolenbroek  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21*b636d99dSDavid van Moolenbroek  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22*b636d99dSDavid van Moolenbroek  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23*b636d99dSDavid van Moolenbroek  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24*b636d99dSDavid van Moolenbroek  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25*b636d99dSDavid van Moolenbroek  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26*b636d99dSDavid van Moolenbroek  * SUCH DAMAGE.
27*b636d99dSDavid van Moolenbroek  */
28*b636d99dSDavid van Moolenbroek 
29*b636d99dSDavid van Moolenbroek #define LABEL_MASK	0xfffff000
30*b636d99dSDavid van Moolenbroek #define LABEL_SHIFT	12
31*b636d99dSDavid van Moolenbroek #define	EXP_MASK	0x00000e00
32*b636d99dSDavid van Moolenbroek #define EXP_SHIFT	9
33*b636d99dSDavid van Moolenbroek #define	STACK_MASK	0x00000100
34*b636d99dSDavid van Moolenbroek #define STACK_SHIFT	8
35*b636d99dSDavid van Moolenbroek #define TTL_MASK	0x000000ff
36*b636d99dSDavid van Moolenbroek #define TTL_SHIFT	0
37*b636d99dSDavid van Moolenbroek 
38*b636d99dSDavid van Moolenbroek #define MPLS_LABEL(x)	(((x) & LABEL_MASK) >> LABEL_SHIFT)
39*b636d99dSDavid van Moolenbroek #define MPLS_EXP(x)	(((x) & EXP_MASK) >> EXP_SHIFT)
40*b636d99dSDavid van Moolenbroek #define MPLS_STACK(x)	(((x) & STACK_MASK) >> STACK_SHIFT)
41*b636d99dSDavid van Moolenbroek #define MPLS_TTL(x)	(((x) & TTL_MASK) >> TTL_SHIFT)
42