⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 print-juniper.c

📁 TCPDUMP的C语言源代码,是在数据链路层的应用
💻 C
📖 第 1 页 / 共 4 页
字号:
/*     NetBSD: print-juniper.c,v 1.2 2007/07/24 11:53:45 drochner Exp        *//*  * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that: (1) source code * distributions retain the above copyright notice and this paragraph * in its entirety, and (2) distributions including binary code include * the above copyright notice and this paragraph in its entirety in * the documentation or other materials provided with the distribution. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND * WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT * LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE. * * Original code by Hannes Gredler (hannes@juniper.net) */#ifndef lintstatic const char rcsid[] _U_ =    "@(#) $Header: /tcpdump/master/tcpdump/print-juniper.c,v 1.34 2007-08-29 02:31:44 mcr Exp $ (LBL)";#else__RCSID("NetBSD: print-juniper.c,v 1.3 2007/07/25 06:31:32 dogcow Exp ");#endif#ifdef HAVE_CONFIG_H#include "config.h"#endif#include <tcpdump-stdinc.h>#include <pcap.h>#include <stdio.h>#include "interface.h"#include "addrtoname.h"#include "extract.h"#include "ppp.h"#include "llc.h"#include "nlpid.h"#include "ethertype.h"#include "atm.h"#define JUNIPER_BPF_OUT           0       /* Outgoing packet */#define JUNIPER_BPF_IN            1       /* Incoming packet */#define JUNIPER_BPF_PKT_IN        0x1     /* Incoming packet */#define JUNIPER_BPF_NO_L2         0x2     /* L2 header stripped */#define JUNIPER_BPF_IIF           0x4     /* IIF is valid */#define JUNIPER_BPF_FILTER        0x40    /* BPF filtering is supported */#define JUNIPER_BPF_EXT           0x80    /* extensions present */#define JUNIPER_MGC_NUMBER        0x4d4743 /* = "MGC" */#define JUNIPER_LSQ_COOKIE_RE         (1 << 3)#define JUNIPER_LSQ_COOKIE_DIR        (1 << 2)#define JUNIPER_LSQ_L3_PROTO_SHIFT     4#define JUNIPER_LSQ_L3_PROTO_MASK     (0x17 << JUNIPER_LSQ_L3_PROTO_SHIFT)#define JUNIPER_LSQ_L3_PROTO_IPV4     (0 << JUNIPER_LSQ_L3_PROTO_SHIFT)#define JUNIPER_LSQ_L3_PROTO_IPV6     (1 << JUNIPER_LSQ_L3_PROTO_SHIFT)#define JUNIPER_LSQ_L3_PROTO_MPLS     (2 << JUNIPER_LSQ_L3_PROTO_SHIFT)#define JUNIPER_LSQ_L3_PROTO_ISO      (3 << JUNIPER_LSQ_L3_PROTO_SHIFT)#define AS_PIC_COOKIE_LEN 8#define JUNIPER_IPSEC_O_ESP_ENCRYPT_ESP_AUTHEN_TYPE 1#define JUNIPER_IPSEC_O_ESP_ENCRYPT_AH_AUTHEN_TYPE 2#define JUNIPER_IPSEC_O_ESP_AUTHENTICATION_TYPE 3#define JUNIPER_IPSEC_O_AH_AUTHENTICATION_TYPE 4#define JUNIPER_IPSEC_O_ESP_ENCRYPTION_TYPE 5static struct tok juniper_ipsec_type_values[] = {    { JUNIPER_IPSEC_O_ESP_ENCRYPT_ESP_AUTHEN_TYPE, "ESP ENCR-AUTH" },    { JUNIPER_IPSEC_O_ESP_ENCRYPT_AH_AUTHEN_TYPE, "ESP ENCR-AH AUTH" },    { JUNIPER_IPSEC_O_ESP_AUTHENTICATION_TYPE, "ESP AUTH" },    { JUNIPER_IPSEC_O_AH_AUTHENTICATION_TYPE, "AH AUTH" },    { JUNIPER_IPSEC_O_ESP_ENCRYPTION_TYPE, "ESP ENCR" },    { 0, NULL}};static struct tok juniper_direction_values[] = {    { JUNIPER_BPF_IN,  "In"},    { JUNIPER_BPF_OUT, "Out"},    { 0, NULL}};/* codepoints for encoding extensions to a .pcap file */enum {    JUNIPER_EXT_TLV_IFD_IDX = 1,    JUNIPER_EXT_TLV_IFD_NAME = 2,    JUNIPER_EXT_TLV_IFD_MEDIATYPE = 3,    JUNIPER_EXT_TLV_IFL_IDX = 4,    JUNIPER_EXT_TLV_IFL_UNIT = 5,    JUNIPER_EXT_TLV_IFL_ENCAPS = 6,     JUNIPER_EXT_TLV_TTP_IFD_MEDIATYPE = 7,      JUNIPER_EXT_TLV_TTP_IFL_ENCAPS = 8};/* 1 byte type and 1-byte length */#define JUNIPER_EXT_TLV_OVERHEAD 2struct tok jnx_ext_tlv_values[] = {    { JUNIPER_EXT_TLV_IFD_IDX, "Device Interface Index" },    { JUNIPER_EXT_TLV_IFD_NAME,"Device Interface Name" },    { JUNIPER_EXT_TLV_IFD_MEDIATYPE, "Device Media Type" },    { JUNIPER_EXT_TLV_IFL_IDX, "Logical Interface Index" },    { JUNIPER_EXT_TLV_IFL_UNIT,"Logical Unit Number" },    { JUNIPER_EXT_TLV_IFL_ENCAPS, "Logical Interface Encapsulation" },    { JUNIPER_EXT_TLV_TTP_IFD_MEDIATYPE, "TTP derived Device Media Type" },    { JUNIPER_EXT_TLV_TTP_IFL_ENCAPS, "TTP derived Logical Interface Encapsulation" },    { 0, NULL }};struct tok jnx_flag_values[] = {    { JUNIPER_BPF_EXT, "Ext" },    { JUNIPER_BPF_FILTER, "Filter" },    { JUNIPER_BPF_IIF, "IIF" },    { JUNIPER_BPF_NO_L2, "no-L2" },    { JUNIPER_BPF_PKT_IN, "In" },    { 0, NULL }};#define JUNIPER_IFML_ETHER              1#define JUNIPER_IFML_FDDI               2#define JUNIPER_IFML_TOKENRING          3#define JUNIPER_IFML_PPP                4#define JUNIPER_IFML_FRAMERELAY         5#define JUNIPER_IFML_CISCOHDLC          6#define JUNIPER_IFML_SMDSDXI            7#define JUNIPER_IFML_ATMPVC             8#define JUNIPER_IFML_PPP_CCC            9#define JUNIPER_IFML_FRAMERELAY_CCC     10#define JUNIPER_IFML_IPIP               11#define JUNIPER_IFML_GRE                12#define JUNIPER_IFML_PIM                13#define JUNIPER_IFML_PIMD               14#define JUNIPER_IFML_CISCOHDLC_CCC      15#define JUNIPER_IFML_VLAN_CCC           16#define JUNIPER_IFML_MLPPP              17#define JUNIPER_IFML_MLFR               18#define JUNIPER_IFML_ML                 19#define JUNIPER_IFML_LSI                20#define JUNIPER_IFML_DFE                21#define JUNIPER_IFML_ATM_CELLRELAY_CCC  22#define JUNIPER_IFML_CRYPTO             23#define JUNIPER_IFML_GGSN               24#define JUNIPER_IFML_LSI_PPP            25#define JUNIPER_IFML_LSI_CISCOHDLC      26#define JUNIPER_IFML_PPP_TCC            27#define JUNIPER_IFML_FRAMERELAY_TCC     28#define JUNIPER_IFML_CISCOHDLC_TCC      29#define JUNIPER_IFML_ETHERNET_CCC       30#define JUNIPER_IFML_VT                 31#define JUNIPER_IFML_EXTENDED_VLAN_CCC  32#define JUNIPER_IFML_ETHER_OVER_ATM     33#define JUNIPER_IFML_MONITOR            34#define JUNIPER_IFML_ETHERNET_TCC       35#define JUNIPER_IFML_VLAN_TCC           36#define JUNIPER_IFML_EXTENDED_VLAN_TCC  37#define JUNIPER_IFML_CONTROLLER         38#define JUNIPER_IFML_MFR                39#define JUNIPER_IFML_LS                 40#define JUNIPER_IFML_ETHERNET_VPLS      41#define JUNIPER_IFML_ETHERNET_VLAN_VPLS 42#define JUNIPER_IFML_ETHERNET_EXTENDED_VLAN_VPLS 43#define JUNIPER_IFML_LT                 44#define JUNIPER_IFML_SERVICES           45#define JUNIPER_IFML_ETHER_VPLS_OVER_ATM 46#define JUNIPER_IFML_FR_PORT_CCC        47#define JUNIPER_IFML_FRAMERELAY_EXT_CCC 48#define JUNIPER_IFML_FRAMERELAY_EXT_TCC 49#define JUNIPER_IFML_FRAMERELAY_FLEX    50#define JUNIPER_IFML_GGSNI              51#define JUNIPER_IFML_ETHERNET_FLEX      52#define JUNIPER_IFML_COLLECTOR          53#define JUNIPER_IFML_AGGREGATOR         54#define JUNIPER_IFML_LAPD               55#define JUNIPER_IFML_PPPOE              56#define JUNIPER_IFML_PPP_SUBORDINATE    57#define JUNIPER_IFML_CISCOHDLC_SUBORDINATE  58#define JUNIPER_IFML_DFC                59#define JUNIPER_IFML_PICPEER            60struct tok juniper_ifmt_values[] = {    { JUNIPER_IFML_ETHER, "Ethernet" },    { JUNIPER_IFML_FDDI, "FDDI" },    { JUNIPER_IFML_TOKENRING, "Token-Ring" },    { JUNIPER_IFML_PPP, "PPP" },    { JUNIPER_IFML_PPP_SUBORDINATE, "PPP-Subordinate" },    { JUNIPER_IFML_FRAMERELAY, "Frame-Relay" },    { JUNIPER_IFML_CISCOHDLC, "Cisco-HDLC" },    { JUNIPER_IFML_SMDSDXI, "SMDS-DXI" },    { JUNIPER_IFML_ATMPVC, "ATM-PVC" },    { JUNIPER_IFML_PPP_CCC, "PPP-CCC" },    { JUNIPER_IFML_FRAMERELAY_CCC, "Frame-Relay-CCC" },    { JUNIPER_IFML_FRAMERELAY_EXT_CCC, "Extended FR-CCC" },    { JUNIPER_IFML_IPIP, "IP-over-IP" },    { JUNIPER_IFML_GRE, "GRE" },    { JUNIPER_IFML_PIM, "PIM-Encapsulator" },    { JUNIPER_IFML_PIMD, "PIM-Decapsulator" },    { JUNIPER_IFML_CISCOHDLC_CCC, "Cisco-HDLC-CCC" },    { JUNIPER_IFML_VLAN_CCC, "VLAN-CCC" },    { JUNIPER_IFML_EXTENDED_VLAN_CCC, "Extended-VLAN-CCC" },    { JUNIPER_IFML_MLPPP, "Multilink-PPP" },    { JUNIPER_IFML_MLFR, "Multilink-FR" },    { JUNIPER_IFML_MFR, "Multilink-FR-UNI-NNI" },    { JUNIPER_IFML_ML, "Multilink" },    { JUNIPER_IFML_LS, "LinkService" },    { JUNIPER_IFML_LSI, "LSI" },    { JUNIPER_IFML_ATM_CELLRELAY_CCC, "ATM-CCC-Cell-Relay" },    { JUNIPER_IFML_CRYPTO, "IPSEC-over-IP" },    { JUNIPER_IFML_GGSN, "GGSN" },    { JUNIPER_IFML_PPP_TCC, "PPP-TCC" },    { JUNIPER_IFML_FRAMERELAY_TCC, "Frame-Relay-TCC" },    { JUNIPER_IFML_FRAMERELAY_EXT_TCC, "Extended FR-TCC" },    { JUNIPER_IFML_CISCOHDLC_TCC, "Cisco-HDLC-TCC" },    { JUNIPER_IFML_ETHERNET_CCC, "Ethernet-CCC" },    { JUNIPER_IFML_VT, "VPN-Loopback-tunnel" },    { JUNIPER_IFML_ETHER_OVER_ATM, "Ethernet-over-ATM" },    { JUNIPER_IFML_ETHER_VPLS_OVER_ATM, "Ethernet-VPLS-over-ATM" },    { JUNIPER_IFML_MONITOR, "Monitor" },    { JUNIPER_IFML_ETHERNET_TCC, "Ethernet-TCC" },    { JUNIPER_IFML_VLAN_TCC, "VLAN-TCC" },    { JUNIPER_IFML_EXTENDED_VLAN_TCC, "Extended-VLAN-TCC" },    { JUNIPER_IFML_CONTROLLER, "Controller" },    { JUNIPER_IFML_ETHERNET_VPLS, "VPLS" },    { JUNIPER_IFML_ETHERNET_VLAN_VPLS, "VLAN-VPLS" },    { JUNIPER_IFML_ETHERNET_EXTENDED_VLAN_VPLS, "Extended-VLAN-VPLS" },    { JUNIPER_IFML_LT, "Logical-tunnel" },    { JUNIPER_IFML_SERVICES, "General-Services" },    { JUNIPER_IFML_PPPOE, "PPPoE" },    { JUNIPER_IFML_ETHERNET_FLEX, "Flexible-Ethernet-Services" },    { JUNIPER_IFML_FRAMERELAY_FLEX, "Flexible-FrameRelay" },    { JUNIPER_IFML_COLLECTOR, "Flow-collection" },    { JUNIPER_IFML_PICPEER, "PIC Peer" },    { JUNIPER_IFML_DFC, "Dynamic-Flow-Capture" },    {0,                    NULL}};#define JUNIPER_IFLE_ATM_SNAP           2#define JUNIPER_IFLE_ATM_NLPID          3#define JUNIPER_IFLE_ATM_VCMUX          4#define JUNIPER_IFLE_ATM_LLC            5#define JUNIPER_IFLE_ATM_PPP_VCMUX      6#define JUNIPER_IFLE_ATM_PPP_LLC        7#define JUNIPER_IFLE_ATM_PPP_FUNI       8#define JUNIPER_IFLE_ATM_CCC            9#define JUNIPER_IFLE_FR_NLPID           10#define JUNIPER_IFLE_FR_SNAP            11#define JUNIPER_IFLE_FR_PPP             12#define JUNIPER_IFLE_FR_CCC             13#define JUNIPER_IFLE_ENET2              14#define JUNIPER_IFLE_IEEE8023_SNAP      15#define JUNIPER_IFLE_IEEE8023_LLC       16#define JUNIPER_IFLE_PPP                17#define JUNIPER_IFLE_CISCOHDLC          18#define JUNIPER_IFLE_PPP_CCC            19#define JUNIPER_IFLE_IPIP_NULL          20#define JUNIPER_IFLE_PIM_NULL           21#define JUNIPER_IFLE_GRE_NULL           22#define JUNIPER_IFLE_GRE_PPP            23#define JUNIPER_IFLE_PIMD_DECAPS        24#define JUNIPER_IFLE_CISCOHDLC_CCC      25#define JUNIPER_IFLE_ATM_CISCO_NLPID    26#define JUNIPER_IFLE_VLAN_CCC           27#define JUNIPER_IFLE_MLPPP              28#define JUNIPER_IFLE_MLFR               29#define JUNIPER_IFLE_LSI_NULL           30#define JUNIPER_IFLE_AGGREGATE_UNUSED   31#define JUNIPER_IFLE_ATM_CELLRELAY_CCC  32#define JUNIPER_IFLE_CRYPTO             33#define JUNIPER_IFLE_GGSN               34#define JUNIPER_IFLE_ATM_TCC            35#define JUNIPER_IFLE_FR_TCC             36#define JUNIPER_IFLE_PPP_TCC            37#define JUNIPER_IFLE_CISCOHDLC_TCC      38#define JUNIPER_IFLE_ETHERNET_CCC       39#define JUNIPER_IFLE_VT                 40#define JUNIPER_IFLE_ATM_EOA_LLC        41#define JUNIPER_IFLE_EXTENDED_VLAN_CCC          42#define JUNIPER_IFLE_ATM_SNAP_TCC       43#define JUNIPER_IFLE_MONITOR            44#define JUNIPER_IFLE_ETHERNET_TCC       45#define JUNIPER_IFLE_VLAN_TCC           46#define JUNIPER_IFLE_EXTENDED_VLAN_TCC  47#define JUNIPER_IFLE_MFR                48#define JUNIPER_IFLE_ETHERNET_VPLS      49#define JUNIPER_IFLE_ETHERNET_VLAN_VPLS 50#define JUNIPER_IFLE_ETHERNET_EXTENDED_VLAN_VPLS 51#define JUNIPER_IFLE_SERVICES           52#define JUNIPER_IFLE_ATM_ETHER_VPLS_ATM_LLC                53#define JUNIPER_IFLE_FR_PORT_CCC        54#define JUNIPER_IFLE_ATM_MLPPP_LLC      55#define JUNIPER_IFLE_ATM_EOA_CCC        56#define JUNIPER_IFLE_LT_VLAN            57#define JUNIPER_IFLE_COLLECTOR          58#define JUNIPER_IFLE_AGGREGATOR         59#define JUNIPER_IFLE_LAPD               60#define JUNIPER_IFLE_ATM_PPPOE_LLC          61#define JUNIPER_IFLE_ETHERNET_PPPOE         62#define JUNIPER_IFLE_PPPOE                  63#define JUNIPER_IFLE_PPP_SUBORDINATE        64#define JUNIPER_IFLE_CISCOHDLC_SUBORDINATE  65#define JUNIPER_IFLE_DFC                    66#define JUNIPER_IFLE_PICPEER                67struct tok juniper_ifle_values[] = {    { JUNIPER_IFLE_AGGREGATOR, "Aggregator" },    { JUNIPER_IFLE_ATM_CCC, "CCC over ATM" },    { JUNIPER_IFLE_ATM_CELLRELAY_CCC, "ATM CCC Cell Relay" },    { JUNIPER_IFLE_ATM_CISCO_NLPID, "CISCO compatible NLPID" },    { JUNIPER_IFLE_ATM_EOA_CCC, "Ethernet over ATM CCC" },    { JUNIPER_IFLE_ATM_EOA_LLC, "Ethernet over ATM LLC" },    { JUNIPER_IFLE_ATM_ETHER_VPLS_ATM_LLC, "Ethernet VPLS over ATM LLC" },    { JUNIPER_IFLE_ATM_LLC, "ATM LLC" },    { JUNIPER_IFLE_ATM_MLPPP_LLC, "MLPPP over ATM LLC" },    { JUNIPER_IFLE_ATM_NLPID, "ATM NLPID" },    { JUNIPER_IFLE_ATM_PPPOE_LLC, "PPPoE over ATM LLC" },    { JUNIPER_IFLE_ATM_PPP_FUNI, "PPP over FUNI" },    { JUNIPER_IFLE_ATM_PPP_LLC, "PPP over ATM LLC" },    { JUNIPER_IFLE_ATM_PPP_VCMUX, "PPP over ATM VCMUX" },    { JUNIPER_IFLE_ATM_SNAP, "ATM SNAP" },    { JUNIPER_IFLE_ATM_SNAP_TCC, "ATM SNAP TCC" },    { JUNIPER_IFLE_ATM_TCC, "ATM VCMUX TCC" },    { JUNIPER_IFLE_ATM_VCMUX, "ATM VCMUX" },    { JUNIPER_IFLE_CISCOHDLC, "C-HDLC" },    { JUNIPER_IFLE_CISCOHDLC_CCC, "C-HDLC CCC" },    { JUNIPER_IFLE_CISCOHDLC_SUBORDINATE, "C-HDLC via dialer" },    { JUNIPER_IFLE_CISCOHDLC_TCC, "C-HDLC TCC" },    { JUNIPER_IFLE_COLLECTOR, "Collector" },    { JUNIPER_IFLE_CRYPTO, "Crypto" },    { JUNIPER_IFLE_ENET2, "Ethernet" },    { JUNIPER_IFLE_ETHERNET_CCC, "Ethernet CCC" },    { JUNIPER_IFLE_ETHERNET_EXTENDED_VLAN_VPLS, "Extended VLAN VPLS" },    { JUNIPER_IFLE_ETHERNET_PPPOE, "PPPoE over Ethernet" },    { JUNIPER_IFLE_ETHERNET_TCC, "Ethernet TCC" },    { JUNIPER_IFLE_ETHERNET_VLAN_VPLS, "VLAN VPLS" },    { JUNIPER_IFLE_ETHERNET_VPLS, "VPLS" },    { JUNIPER_IFLE_EXTENDED_VLAN_CCC, "Extended VLAN CCC" },    { JUNIPER_IFLE_EXTENDED_VLAN_TCC, "Extended VLAN TCC" },    { JUNIPER_IFLE_FR_CCC, "FR CCC" },    { JUNIPER_IFLE_FR_NLPID, "FR NLPID" },    { JUNIPER_IFLE_FR_PORT_CCC, "FR CCC" },    { JUNIPER_IFLE_FR_PPP, "FR PPP" },    { JUNIPER_IFLE_FR_SNAP, "FR SNAP" },    { JUNIPER_IFLE_FR_TCC, "FR TCC" },    { JUNIPER_IFLE_GGSN, "GGSN" },    { JUNIPER_IFLE_GRE_NULL, "GRE NULL" },    { JUNIPER_IFLE_GRE_PPP, "PPP over GRE" },    { JUNIPER_IFLE_IPIP_NULL, "IPIP" },    { JUNIPER_IFLE_LAPD, "LAPD" },    { JUNIPER_IFLE_LSI_NULL, "LSI Null" },    { JUNIPER_IFLE_LT_VLAN, "LT VLAN" },    { JUNIPER_IFLE_MFR, "MFR" },    { JUNIPER_IFLE_MLFR, "MLFR" },    { JUNIPER_IFLE_MLPPP, "MLPPP" },    { JUNIPER_IFLE_MONITOR, "Monitor" },    { JUNIPER_IFLE_PIMD_DECAPS, "PIMd" },    { JUNIPER_IFLE_PIM_NULL, "PIM Null" },    { JUNIPER_IFLE_PPP, "PPP" },    { JUNIPER_IFLE_PPPOE, "PPPoE" },    { JUNIPER_IFLE_PPP_CCC, "PPP CCC" },    { JUNIPER_IFLE_PPP_SUBORDINATE, "" },    { JUNIPER_IFLE_PPP_TCC, "PPP TCC" },    { JUNIPER_IFLE_SERVICES, "General Services" },    { JUNIPER_IFLE_VLAN_CCC, "VLAN CCC" },    { JUNIPER_IFLE_VLAN_TCC, "VLAN TCC" },    { JUNIPER_IFLE_VT, "VT" },    {0,                    NULL}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -