12949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/*
22949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Redistribution and use in source and binary forms, with or without
32949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * modification, are permitted provided that: (1) source code
42949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * distributions retain the above copyright notice and this paragraph
52949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * in its entirety, and (2) distributions including binary code include
62949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * the above copyright notice and this paragraph in its entirety in
72949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * the documentation or other materials provided with the distribution.
82949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * THIS SOFTWARE IS PROVIDED ``AS IS'' AND
92949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
102949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
112949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * FOR A PARTICULAR PURPOSE.
122949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project *
132949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Original code by Hannes Gredler (hannes@juniper.net)
142949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */
152949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
162949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef lint
172949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectstatic const char rcsid[] _U_ =
182949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    "@(#) $Header: /tcpdump/master/tcpdump/gmpls.c,v 1.5.2.1 2005/05/19 06:44:02 guy Exp $ (LBL)";
192949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
202949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
212949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifdef HAVE_CONFIG_H
222949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include "config.h"
232949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
242949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
252949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include <tcpdump-stdinc.h>
262949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
272949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include "interface.h"
282949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
292949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* rfc3471 */
302949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectstruct tok gmpls_link_prot_values[] = {
312949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 0x01, "Extra Traffic"},
322949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 0x02, "Unprotected"},
332949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 0x04, "Shared"},
342949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 0x08, "Dedicated 1:1"},
352949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 0x10, "Dedicated 1+1"},
362949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 0x20, "Enhanced"},
372949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 0x40, "Reserved"},
382949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 0x80, "Reserved"},
392949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 0, NULL }
402949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project};
412949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
422949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* rfc3471 */
432949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectstruct tok gmpls_switch_cap_values[] = {
442949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 1,	"Packet-Switch Capable-1"},
452949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 2,	"Packet-Switch Capable-2"},
462949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 3,	"Packet-Switch Capable-3"},
472949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 4,	"Packet-Switch Capable-4"},
482949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 51,	"Layer-2 Switch Capable"},
492949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 100,	"Time-Division-Multiplex"},
502949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 150,	"Lambda-Switch Capable"},
512949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 200,	"Fiber-Switch Capable"},
522949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 0, NULL }
532949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project};
542949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
552949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* rfc3471 */
562949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectstruct tok gmpls_encoding_values[] = {
572949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 1,    "Packet"},
582949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 2,    "Ethernet V2/DIX"},
592949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 3,    "ANSI/ETSI PDH"},
602949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 4,    "Reserved"},
612949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 5,    "SDH ITU-T G.707/SONET ANSI T1.105"},
622949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 6,    "Reserved"},
632949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 7,    "Digital Wrapper"},
642949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 8,    "Lambda (photonic)"},
652949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 9,    "Fiber"},
662949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 10,   "Reserved"},
672949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 11,   "FiberChannel"},
682949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 0, NULL }
692949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project};
702949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
712949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* rfc3471 */
722949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectstruct tok gmpls_payload_values[] = {
732949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    {  0,   "Unknown"},
742949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    {  1,   "Reserved"},
752949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    {  2,   "Reserved"},
762949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    {  3,   "Reserved"},
772949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    {  4,   "Reserved"},
782949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    {  5,   "Asynchronous mapping of E4"},
792949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    {  6,   "Asynchronous mapping of DS3/T3"},
802949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    {  7,   "Asynchronous mapping of E3"},
812949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    {  8,   "Bit synchronous mapping of E3"},
822949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    {  9,   "Byte synchronous mapping of E3"},
832949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 10,   "Asynchronous mapping of DS2/T2"},
842949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 11,   "Bit synchronous mapping of DS2/T2"},
852949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 12,   "Reserved"},
862949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 13,   "Asynchronous mapping of E1"},
872949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 14,   "Byte synchronous mapping of E1"},
882949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 15,   "Byte synchronous mapping of 31 * DS0"},
892949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 16,   "Asynchronous mapping of DS1/T1"},
902949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 17,   "Bit synchronous mapping of DS1/T1"},
912949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 18,   "Byte synchronous mapping of DS1/T1"},
922949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 19,   "VC-11 in VC-12"},
932949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 20,   "Reserved"},
942949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 21,   "Reserved"},
952949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 22,   "DS1 SF Asynchronous"},
962949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 23,   "DS1 ESF Asynchronous"},
972949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 24,   "DS3 M23 Asynchronous"},
982949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 25,   "DS3 C-Bit Parity Asynchronous"},
992949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 26,   "VT/LOVC"},
1002949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 27,   "STS SPE/HOVC"},
1012949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 28,   "POS - No Scrambling, 16 bit CRC"},
1022949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 29,   "POS - No Scrambling, 32 bit CRC"},
1032949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 30,   "POS - Scrambling, 16 bit CRC"},
1042949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 31,   "POS - Scrambling, 32 bit CRC"},
1052949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 32,   "ATM mapping"},
1062949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 33,   "Ethernet PHY"},
1072949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 34,   "SONET/SDH"},
1082949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 35,   "Reserved (SONET deprecated)"},
1092949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 36,   "Digital Wrapper"},
1102949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 37,   "Lambda"},
1112949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 38,   "ANSI/ETSI PDH"},
1122949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 39,   "Reserved"},
1132949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 40,   "Link Access Protocol SDH (X.85 and X.86)"},
1142949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 41,   "FDDI"},
1152949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 42,   "DQDB (ETSI ETS 300 216)"},
1162949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 43,   "FiberChannel-3 (Services)"},
1172949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 44,   "HDLC"},
1182949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 45,   "Ethernet V2/DIX (only)"},
1192949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 46,   "Ethernet 802.3 (only)"},
1202949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* draft-ietf-ccamp-gmpls-g709-04.txt */
1212949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 47,   "G.709 ODUj"},
1222949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 48,   "G.709 OTUk(v)"},
1232949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 49,   "CBR/CBRa"},
1242949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 50,   "CBRb"},
1252949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 51,   "BSOT"},
1262949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 52,   "BSNT"},
1272949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 53,   "IP/PPP (GFP)"},
1282949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 54,   "Ethernet MAC (framed GFP)"},
1292949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 55,   "Ethernet PHY (transparent GFP)"},
1302949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 56,   "ESCON"},
1312949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 57,   "FICON"},
1322949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 58,   "Fiber Channel"},
1332949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 0, NULL }
1342949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project};
1352949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
1362949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/*
1372949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Link Type values used by LMP Service Discovery (specifically, the Client
1382949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Port Service Attributes Object). See UNI 1.0 section 9.4.2 for details.
1392949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */
1402949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectstruct tok lmp_sd_service_config_cpsa_link_type_values[] = {
1412949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 5, "SDH ITU-T G.707"},
1422949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 6, "SONET ANSI T1.105"},
1432949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 0, NULL}
1442949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project};
1452949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
1462949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/*
1472949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Signal Type values for SDH links used by LMP Service Discovery (specifically,
1482949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * the Client Port Service Attributes Object). See UNI 1.0 section 9.4.2 for
1492949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * details.
1502949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */
1512949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectstruct tok lmp_sd_service_config_cpsa_signal_type_sdh_values[] = {
1522949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 5,  "VC-3"},
1532949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 6,  "VC-4"},
1542949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 7,  "STM-0"},
1552949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 8,  "STM-1"},
1562949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 9,  "STM-4"},
1572949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 10, "STM-16"},
1582949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 11, "STM-64"},
1592949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 12, "STM-256"},
1602949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 0, NULL}
1612949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project};
1622949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
1632949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/*
1642949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Signal Type values for SONET links used by LMP Service Discovery (specifically,
1652949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * the Client Port Service Attributes Object). See UNI 1.0 section 9.4.2 for
1662949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * details.
1672949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */
1682949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectstruct tok lmp_sd_service_config_cpsa_signal_type_sonet_values[] = {
1692949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 5,  "STS-1 SPE"},
1702949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 6,  "STS-3c SPE"},
1712949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 7,  "STS-1"},
1722949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 8,  "STM-3"},
1732949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 9,  "STM-12"},
1742949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 10, "STM-48"},
1752949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 11, "STM-192"},
1762949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 12, "STM-768"},
1772949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 0, NULL}
1782949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project};
1792949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
1802949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define DIFFSERV_BC_MODEL_RDM           0   /* draft-ietf-tewg-diff-te-proto-07 */
1812949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define DIFFSERV_BC_MODEL_MAM           1   /* draft-ietf-tewg-diff-te-proto-07 */
1822949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define DIFFSERV_BC_MODEL_EXTD_MAM      254 /* experimental */
1832949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
1842949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectstruct tok diffserv_te_bc_values[] = {
1852949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    {  DIFFSERV_BC_MODEL_RDM, "Russian dolls"},
1862949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    {  DIFFSERV_BC_MODEL_MAM, "Maximum allocation"},
1872949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    {  DIFFSERV_BC_MODEL_EXTD_MAM, "Maximum allocation with E-LSP support"},
1882949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    { 0, NULL }
1892949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project};
190