xref: /minix3/external/bsd/tcpdump/dist/gmpls.c (revision b636d99d91c3d54204248f643c14627405d4afd1)
1*b636d99dSDavid van Moolenbroek /*
2*b636d99dSDavid van Moolenbroek  * Redistribution and use in source and binary forms, with or without
3*b636d99dSDavid van Moolenbroek  * modification, are permitted provided that: (1) source code
4*b636d99dSDavid van Moolenbroek  * distributions retain the above copyright notice and this paragraph
5*b636d99dSDavid van Moolenbroek  * in its entirety, and (2) distributions including binary code include
6*b636d99dSDavid van Moolenbroek  * the above copyright notice and this paragraph in its entirety in
7*b636d99dSDavid van Moolenbroek  * the documentation or other materials provided with the distribution.
8*b636d99dSDavid van Moolenbroek  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND
9*b636d99dSDavid van Moolenbroek  * WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
10*b636d99dSDavid van Moolenbroek  * LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
11*b636d99dSDavid van Moolenbroek  * FOR A PARTICULAR PURPOSE.
12*b636d99dSDavid van Moolenbroek  *
13*b636d99dSDavid van Moolenbroek  * Original code by Hannes Gredler (hannes@juniper.net)
14*b636d99dSDavid van Moolenbroek  */
15*b636d99dSDavid van Moolenbroek 
16*b636d99dSDavid van Moolenbroek #include <sys/cdefs.h>
17*b636d99dSDavid van Moolenbroek #ifndef lint
18*b636d99dSDavid van Moolenbroek __RCSID("$NetBSD: gmpls.c,v 1.4 2014/11/20 03:05:03 christos Exp $");
19*b636d99dSDavid van Moolenbroek #endif
20*b636d99dSDavid van Moolenbroek 
21*b636d99dSDavid van Moolenbroek #define NETDISSECT_REWORKED
22*b636d99dSDavid van Moolenbroek #ifdef HAVE_CONFIG_H
23*b636d99dSDavid van Moolenbroek #include "config.h"
24*b636d99dSDavid van Moolenbroek #endif
25*b636d99dSDavid van Moolenbroek 
26*b636d99dSDavid van Moolenbroek #include <tcpdump-stdinc.h>
27*b636d99dSDavid van Moolenbroek 
28*b636d99dSDavid van Moolenbroek #include "interface.h"
29*b636d99dSDavid van Moolenbroek #include "gmpls.h"
30*b636d99dSDavid van Moolenbroek 
31*b636d99dSDavid van Moolenbroek /* rfc3471 */
32*b636d99dSDavid van Moolenbroek const struct tok gmpls_link_prot_values[] = {
33*b636d99dSDavid van Moolenbroek     { 0x01, "Extra Traffic"},
34*b636d99dSDavid van Moolenbroek     { 0x02, "Unprotected"},
35*b636d99dSDavid van Moolenbroek     { 0x04, "Shared"},
36*b636d99dSDavid van Moolenbroek     { 0x08, "Dedicated 1:1"},
37*b636d99dSDavid van Moolenbroek     { 0x10, "Dedicated 1+1"},
38*b636d99dSDavid van Moolenbroek     { 0x20, "Enhanced"},
39*b636d99dSDavid van Moolenbroek     { 0x40, "Reserved"},
40*b636d99dSDavid van Moolenbroek     { 0x80, "Reserved"},
41*b636d99dSDavid van Moolenbroek     { 0, NULL }
42*b636d99dSDavid van Moolenbroek };
43*b636d99dSDavid van Moolenbroek 
44*b636d99dSDavid van Moolenbroek /* rfc3471 */
45*b636d99dSDavid van Moolenbroek const struct tok gmpls_switch_cap_values[] = {
46*b636d99dSDavid van Moolenbroek     { GMPLS_PSC1, "Packet-Switch Capable-1"},
47*b636d99dSDavid van Moolenbroek     { GMPLS_PSC2, "Packet-Switch Capable-2"},
48*b636d99dSDavid van Moolenbroek     { GMPLS_PSC3, "Packet-Switch Capable-3"},
49*b636d99dSDavid van Moolenbroek     { GMPLS_PSC4, "Packet-Switch Capable-4"},
50*b636d99dSDavid van Moolenbroek     { GMPLS_L2SC, "Layer-2 Switch Capable"},
51*b636d99dSDavid van Moolenbroek     { GMPLS_TSC, "Time-Division-Multiplex"},
52*b636d99dSDavid van Moolenbroek     { GMPLS_LSC, "Lambda-Switch Capable"},
53*b636d99dSDavid van Moolenbroek     { GMPLS_FSC, "Fiber-Switch Capable"},
54*b636d99dSDavid van Moolenbroek     { 0, NULL }
55*b636d99dSDavid van Moolenbroek };
56*b636d99dSDavid van Moolenbroek 
57*b636d99dSDavid van Moolenbroek /* rfc4205 */
58*b636d99dSDavid van Moolenbroek const struct tok gmpls_switch_cap_tsc_indication_values[] = {
59*b636d99dSDavid van Moolenbroek     { 0, "Standard SONET/SDH" },
60*b636d99dSDavid van Moolenbroek     { 1, "Arbitrary SONET/SDH" },
61*b636d99dSDavid van Moolenbroek     { 0, NULL }
62*b636d99dSDavid van Moolenbroek };
63*b636d99dSDavid van Moolenbroek 
64*b636d99dSDavid van Moolenbroek /* rfc3471 */
65*b636d99dSDavid van Moolenbroek const struct tok gmpls_encoding_values[] = {
66*b636d99dSDavid van Moolenbroek     { 1,    "Packet"},
67*b636d99dSDavid van Moolenbroek     { 2,    "Ethernet V2/DIX"},
68*b636d99dSDavid van Moolenbroek     { 3,    "ANSI/ETSI PDH"},
69*b636d99dSDavid van Moolenbroek     { 4,    "Reserved"},
70*b636d99dSDavid van Moolenbroek     { 5,    "SDH ITU-T G.707/SONET ANSI T1.105"},
71*b636d99dSDavid van Moolenbroek     { 6,    "Reserved"},
72*b636d99dSDavid van Moolenbroek     { 7,    "Digital Wrapper"},
73*b636d99dSDavid van Moolenbroek     { 8,    "Lambda (photonic)"},
74*b636d99dSDavid van Moolenbroek     { 9,    "Fiber"},
75*b636d99dSDavid van Moolenbroek     { 10,   "Reserved"},
76*b636d99dSDavid van Moolenbroek     { 11,   "FiberChannel"},
77*b636d99dSDavid van Moolenbroek     { 0, NULL }
78*b636d99dSDavid van Moolenbroek };
79*b636d99dSDavid van Moolenbroek 
80*b636d99dSDavid van Moolenbroek /* rfc3471 */
81*b636d99dSDavid van Moolenbroek const struct tok gmpls_payload_values[] = {
82*b636d99dSDavid van Moolenbroek     {  0,   "Unknown"},
83*b636d99dSDavid van Moolenbroek     {  1,   "Reserved"},
84*b636d99dSDavid van Moolenbroek     {  2,   "Reserved"},
85*b636d99dSDavid van Moolenbroek     {  3,   "Reserved"},
86*b636d99dSDavid van Moolenbroek     {  4,   "Reserved"},
87*b636d99dSDavid van Moolenbroek     {  5,   "Asynchronous mapping of E4"},
88*b636d99dSDavid van Moolenbroek     {  6,   "Asynchronous mapping of DS3/T3"},
89*b636d99dSDavid van Moolenbroek     {  7,   "Asynchronous mapping of E3"},
90*b636d99dSDavid van Moolenbroek     {  8,   "Bit synchronous mapping of E3"},
91*b636d99dSDavid van Moolenbroek     {  9,   "Byte synchronous mapping of E3"},
92*b636d99dSDavid van Moolenbroek     { 10,   "Asynchronous mapping of DS2/T2"},
93*b636d99dSDavid van Moolenbroek     { 11,   "Bit synchronous mapping of DS2/T2"},
94*b636d99dSDavid van Moolenbroek     { 12,   "Reserved"},
95*b636d99dSDavid van Moolenbroek     { 13,   "Asynchronous mapping of E1"},
96*b636d99dSDavid van Moolenbroek     { 14,   "Byte synchronous mapping of E1"},
97*b636d99dSDavid van Moolenbroek     { 15,   "Byte synchronous mapping of 31 * DS0"},
98*b636d99dSDavid van Moolenbroek     { 16,   "Asynchronous mapping of DS1/T1"},
99*b636d99dSDavid van Moolenbroek     { 17,   "Bit synchronous mapping of DS1/T1"},
100*b636d99dSDavid van Moolenbroek     { 18,   "Byte synchronous mapping of DS1/T1"},
101*b636d99dSDavid van Moolenbroek     { 19,   "VC-11 in VC-12"},
102*b636d99dSDavid van Moolenbroek     { 20,   "Reserved"},
103*b636d99dSDavid van Moolenbroek     { 21,   "Reserved"},
104*b636d99dSDavid van Moolenbroek     { 22,   "DS1 SF Asynchronous"},
105*b636d99dSDavid van Moolenbroek     { 23,   "DS1 ESF Asynchronous"},
106*b636d99dSDavid van Moolenbroek     { 24,   "DS3 M23 Asynchronous"},
107*b636d99dSDavid van Moolenbroek     { 25,   "DS3 C-Bit Parity Asynchronous"},
108*b636d99dSDavid van Moolenbroek     { 26,   "VT/LOVC"},
109*b636d99dSDavid van Moolenbroek     { 27,   "STS SPE/HOVC"},
110*b636d99dSDavid van Moolenbroek     { 28,   "POS - No Scrambling, 16 bit CRC"},
111*b636d99dSDavid van Moolenbroek     { 29,   "POS - No Scrambling, 32 bit CRC"},
112*b636d99dSDavid van Moolenbroek     { 30,   "POS - Scrambling, 16 bit CRC"},
113*b636d99dSDavid van Moolenbroek     { 31,   "POS - Scrambling, 32 bit CRC"},
114*b636d99dSDavid van Moolenbroek     { 32,   "ATM mapping"},
115*b636d99dSDavid van Moolenbroek     { 33,   "Ethernet PHY"},
116*b636d99dSDavid van Moolenbroek     { 34,   "SONET/SDH"},
117*b636d99dSDavid van Moolenbroek     { 35,   "Reserved (SONET deprecated)"},
118*b636d99dSDavid van Moolenbroek     { 36,   "Digital Wrapper"},
119*b636d99dSDavid van Moolenbroek     { 37,   "Lambda"},
120*b636d99dSDavid van Moolenbroek     { 38,   "ANSI/ETSI PDH"},
121*b636d99dSDavid van Moolenbroek     { 39,   "Reserved"},
122*b636d99dSDavid van Moolenbroek     { 40,   "Link Access Protocol SDH (X.85 and X.86)"},
123*b636d99dSDavid van Moolenbroek     { 41,   "FDDI"},
124*b636d99dSDavid van Moolenbroek     { 42,   "DQDB (ETSI ETS 300 216)"},
125*b636d99dSDavid van Moolenbroek     { 43,   "FiberChannel-3 (Services)"},
126*b636d99dSDavid van Moolenbroek     { 44,   "HDLC"},
127*b636d99dSDavid van Moolenbroek     { 45,   "Ethernet V2/DIX (only)"},
128*b636d99dSDavid van Moolenbroek     { 46,   "Ethernet 802.3 (only)"},
129*b636d99dSDavid van Moolenbroek /* draft-ietf-ccamp-gmpls-g709-04.txt */
130*b636d99dSDavid van Moolenbroek     { 47,   "G.709 ODUj"},
131*b636d99dSDavid van Moolenbroek     { 48,   "G.709 OTUk(v)"},
132*b636d99dSDavid van Moolenbroek     { 49,   "CBR/CBRa"},
133*b636d99dSDavid van Moolenbroek     { 50,   "CBRb"},
134*b636d99dSDavid van Moolenbroek     { 51,   "BSOT"},
135*b636d99dSDavid van Moolenbroek     { 52,   "BSNT"},
136*b636d99dSDavid van Moolenbroek     { 53,   "IP/PPP (GFP)"},
137*b636d99dSDavid van Moolenbroek     { 54,   "Ethernet MAC (framed GFP)"},
138*b636d99dSDavid van Moolenbroek     { 55,   "Ethernet PHY (transparent GFP)"},
139*b636d99dSDavid van Moolenbroek     { 56,   "ESCON"},
140*b636d99dSDavid van Moolenbroek     { 57,   "FICON"},
141*b636d99dSDavid van Moolenbroek     { 58,   "Fiber Channel"},
142*b636d99dSDavid van Moolenbroek     { 0, NULL }
143*b636d99dSDavid van Moolenbroek };
144*b636d99dSDavid van Moolenbroek 
145*b636d99dSDavid van Moolenbroek /*
146*b636d99dSDavid van Moolenbroek  * Link Type values used by LMP Service Discovery (specifically, the Client
147*b636d99dSDavid van Moolenbroek  * Port Service Attributes Object). See UNI 1.0 section 9.4.2 for details.
148*b636d99dSDavid van Moolenbroek  */
149*b636d99dSDavid van Moolenbroek const struct tok lmp_sd_service_config_cpsa_link_type_values[] = {
150*b636d99dSDavid van Moolenbroek     { 5, "SDH ITU-T G.707"},
151*b636d99dSDavid van Moolenbroek     { 6, "SONET ANSI T1.105"},
152*b636d99dSDavid van Moolenbroek     { 0, NULL}
153*b636d99dSDavid van Moolenbroek };
154*b636d99dSDavid van Moolenbroek 
155*b636d99dSDavid van Moolenbroek /*
156*b636d99dSDavid van Moolenbroek  * Signal Type values for SDH links used by LMP Service Discovery (specifically,
157*b636d99dSDavid van Moolenbroek  * the Client Port Service Attributes Object). See UNI 1.0 section 9.4.2 for
158*b636d99dSDavid van Moolenbroek  * details.
159*b636d99dSDavid van Moolenbroek  */
160*b636d99dSDavid van Moolenbroek const struct tok lmp_sd_service_config_cpsa_signal_type_sdh_values[] = {
161*b636d99dSDavid van Moolenbroek     { 5,  "VC-3"},
162*b636d99dSDavid van Moolenbroek     { 6,  "VC-4"},
163*b636d99dSDavid van Moolenbroek     { 7,  "STM-0"},
164*b636d99dSDavid van Moolenbroek     { 8,  "STM-1"},
165*b636d99dSDavid van Moolenbroek     { 9,  "STM-4"},
166*b636d99dSDavid van Moolenbroek     { 10, "STM-16"},
167*b636d99dSDavid van Moolenbroek     { 11, "STM-64"},
168*b636d99dSDavid van Moolenbroek     { 12, "STM-256"},
169*b636d99dSDavid van Moolenbroek     { 0, NULL}
170*b636d99dSDavid van Moolenbroek };
171*b636d99dSDavid van Moolenbroek 
172*b636d99dSDavid van Moolenbroek /*
173*b636d99dSDavid van Moolenbroek  * Signal Type values for SONET links used by LMP Service Discovery (specifically,
174*b636d99dSDavid van Moolenbroek  * the Client Port Service Attributes Object). See UNI 1.0 section 9.4.2 for
175*b636d99dSDavid van Moolenbroek  * details.
176*b636d99dSDavid van Moolenbroek  */
177*b636d99dSDavid van Moolenbroek const struct tok lmp_sd_service_config_cpsa_signal_type_sonet_values[] = {
178*b636d99dSDavid van Moolenbroek     { 5,  "STS-1 SPE"},
179*b636d99dSDavid van Moolenbroek     { 6,  "STS-3c SPE"},
180*b636d99dSDavid van Moolenbroek     { 7,  "STS-1"},
181*b636d99dSDavid van Moolenbroek     { 8,  "STM-3"},
182*b636d99dSDavid van Moolenbroek     { 9,  "STM-12"},
183*b636d99dSDavid van Moolenbroek     { 10, "STM-48"},
184*b636d99dSDavid van Moolenbroek     { 11, "STM-192"},
185*b636d99dSDavid van Moolenbroek     { 12, "STM-768"},
186*b636d99dSDavid van Moolenbroek     { 0, NULL}
187*b636d99dSDavid van Moolenbroek };
188*b636d99dSDavid van Moolenbroek 
189*b636d99dSDavid van Moolenbroek #define DIFFSERV_BC_MODEL_RDM           0   /* draft-ietf-tewg-diff-te-proto-07 */
190*b636d99dSDavid van Moolenbroek #define DIFFSERV_BC_MODEL_MAM           1   /* draft-ietf-tewg-diff-te-proto-07 */
191*b636d99dSDavid van Moolenbroek #define DIFFSERV_BC_MODEL_EXTD_MAM      254 /* experimental */
192*b636d99dSDavid van Moolenbroek 
193*b636d99dSDavid van Moolenbroek const struct tok diffserv_te_bc_values[] = {
194*b636d99dSDavid van Moolenbroek     {  DIFFSERV_BC_MODEL_RDM, "Russian dolls"},
195*b636d99dSDavid van Moolenbroek     {  DIFFSERV_BC_MODEL_MAM, "Maximum allocation"},
196*b636d99dSDavid van Moolenbroek     {  DIFFSERV_BC_MODEL_EXTD_MAM, "Maximum allocation with E-LSP support"},
197*b636d99dSDavid van Moolenbroek     { 0, NULL }
198*b636d99dSDavid van Moolenbroek };
199