]> The Tcpdump Group git mirrors - libpcap/commitdiff
allocate 4 new DLTs on behalf of Juniper Networks, Inc. for
authorhannes <hannes>
Sat, 13 Aug 2005 22:29:44 +0000 (22:29 +0000)
committerhannes <hannes>
Sat, 13 Aug 2005 22:29:44 +0000 (22:29 +0000)
prepending meta-information like interface index, interface name
before a standard Ethernet, PPP, Frame Relay, C-HDLC Frame

gencode.c
pcap-bpf.h
pcap.c
savefile.c

index e3b816592ec96f9124fa569ef8fbda70ea4c47a0..4f240ba0671c737becd4cdd47ada3e7557cf5f18 100644 (file)
--- a/gencode.c
+++ b/gencode.c
@@ -21,7 +21,7 @@
  */
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/libpcap/gencode.c,v 1.221.2.31 2005-08-08 07:25:22 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/gencode.c,v 1.221.2.32 2005-08-13 22:29:44 hannes Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -1121,6 +1121,9 @@ init_linktype(p)
         case DLT_JUNIPER_MFR:
         case DLT_JUNIPER_MLFR:
         case DLT_JUNIPER_MLPPP:
+        case DLT_JUNIPER_PPP:
+        case DLT_JUNIPER_CHDLC:
+        case DLT_JUNIPER_FRELAY:
                 off_linktype = 4;
                off_nl = 4;
                off_nl_nosnap = -1;     /* no 802.2 LLC */
@@ -1141,6 +1144,7 @@ init_linktype(p)
                /* frames captured on a Juniper PPPoE service PIC
                 * contain raw ethernet frames */
        case DLT_JUNIPER_PPPOE:
+        case DLT_JUNIPER_ETHER:
                off_linktype = 16;
                off_nl = 18;            /* Ethernet II */
                off_nl_nosnap = 21;     /* 802.3+802.2 */
@@ -2276,6 +2280,10 @@ gen_linktype(proto)
         case DLT_JUNIPER_ES:
         case DLT_JUNIPER_MONITOR:
         case DLT_JUNIPER_SERVICES:
+        case DLT_JUNIPER_ETHER:
+        case DLT_JUNIPER_PPP:
+        case DLT_JUNIPER_FRELAY:
+        case DLT_JUNIPER_CHDLC:
                /* just lets verify the magic number for now -
                 * on ATM we may have up to 6 different encapsulations on the wire
                 * and need a lot of heuristics to figure out that the payload
@@ -6059,6 +6067,10 @@ gen_inbound(dir)
         case DLT_JUNIPER_ES:
         case DLT_JUNIPER_MONITOR:
         case DLT_JUNIPER_SERVICES:
+        case DLT_JUNIPER_ETHER:
+        case DLT_JUNIPER_PPP:
+        case DLT_JUNIPER_FRELAY:
+        case DLT_JUNIPER_CHDLC:
                /* juniper flags (including direction) are stored
                 * the byte after the 3-byte magic number */
                if (dir) {
index 5144a38ced294eeeff359dc1adb6f5376f7551f0..714dc571f90aea8e3715febb1dbcfcf60b666c89 100644 (file)
@@ -37,7 +37,7 @@
  *
  *      @(#)bpf.h       7.1 (Berkeley) 5/7/91
  *
- * @(#) $Header: /tcpdump/master/libpcap/pcap-bpf.h,v 1.34.2.5 2005-05-27 23:33:00 guy Exp $ (LBL)
+ * @(#) $Header: /tcpdump/master/libpcap/pcap-bpf.h,v 1.34.2.6 2005-08-13 22:29:47 hannes Exp $ (LBL)
  */
 
 /*
@@ -593,6 +593,18 @@ struct bpf_version {
  */
 #define DLT_LINUX_LAPD         177
 
+/*
+ * Juniper-private data link type, as per request from
+ * Hannes Gredler <[email protected]>. 
+ * The DLT_ are used for prepending meta-information
+ * like interface index, interface name
+ * before standard Ethernet, PPP, Frelay & C-HDLC Frames
+ */
+#define DLT_JUNIPER_ETHER       178
+#define DLT_JUNIPER_PPP         179
+#define DLT_JUNIPER_FRELAY      180
+#define DLT_JUNIPER_CHDLC       181
+
 /*
  * The instruction encodings.
  */
diff --git a/pcap.c b/pcap.c
index d9c5700344bc2779821cb8b3f011c01f6b8adce6..7768711bbb39eb18ed1ebd5752c99df135d3d583 100644 (file)
--- a/pcap.c
+++ b/pcap.c
@@ -33,7 +33,7 @@
 
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/libpcap/pcap.c,v 1.88.2.7 2005-07-20 15:26:02 hannes Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/pcap.c,v 1.88.2.8 2005-08-13 22:29:46 hannes Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -374,6 +374,10 @@ static struct dlt_choice dlt_choices[] = {
         DLT_CHOICE(DLT_JUNIPER_MONITOR, "Juniper Passive Monitor PIC"),
         DLT_CHOICE(DLT_JUNIPER_SERVICES, "Juniper Advanced Services PIC"),
        DLT_CHOICE(DLT_JUNIPER_MFR, "Juniper FRF.16 Frame Relay"),
+       DLT_CHOICE(DLT_JUNIPER_ETHER, "Juniper Ethernet"),
+       DLT_CHOICE(DLT_JUNIPER_PPP, "Juniper PPP"),
+       DLT_CHOICE(DLT_JUNIPER_FRELAY, "Juniper Frame Relay"),
+       DLT_CHOICE(DLT_JUNIPER_CHDLC, "Juniper C-HDLC"),
        DLT_CHOICE_SENTINEL
 };
 
index b3edfe7281527c45308152f0946ce194cb005a44..6c47e5f60fb3b62ee45346ab2e558053401c1b60 100644 (file)
@@ -30,7 +30,7 @@
 
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/libpcap/savefile.c,v 1.126.2.11 2005-07-07 02:04:36 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/savefile.c,v 1.126.2.12 2005-08-13 22:29:44 hannes Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -412,6 +412,18 @@ static const char rcsid[] _U_ =
  */
 #define LINKTYPE_LINUX_LAPD    177
 
+/*
+ * Juniper-private data link type, as per request from
+ * Hannes Gredler <[email protected]>. 
+ * The Link Types are used for prepending meta-information
+ * like interface index, interface name
+ * before standard Ethernet, PPP, Frelay & C-HDLC Frames
+ */
+#define LINKTYPE_JUNIPER_ETHER  178
+#define LINKTYPE_JUNIPER_PPP    179
+#define LINKTYPE_JUNIPER_FRELAY 180
+#define LINKTYPE_JUNIPER_CHDLC  181
+
 static struct linktype_map {
        int     dlt;
        int     linktype;
@@ -611,6 +623,13 @@ static struct linktype_map {
        /* viSDN LAPD */
        { DLT_LINUX_LAPD,       LINKTYPE_LINUX_LAPD },
 
+        /* Juniper meta-information before Ether, PPP, Frame Relay, C-HDLC Frames */
+        { DLT_JUNIPER_ETHER, LINKTYPE_JUNIPER_ETHER },
+        { DLT_JUNIPER_PPP, LINKTYPE_JUNIPER_PPP },
+        { DLT_JUNIPER_FRELAY, LINKTYPE_JUNIPER_FRELAY },
+        { DLT_JUNIPER_CHDLC, LINKTYPE_JUNIPER_CHDLC },
+
+
        { -1,                   -1 }
 };