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