]> The Tcpdump Group git mirrors - libpcap/commitdiff
add basic support for DLT_JUNIPER_{GGSN,ES,MONITOR,SERVICES}
authorhannes <hannes>
Thu, 19 May 2005 10:05:31 +0000 (10:05 +0000)
committerhannes <hannes>
Thu, 19 May 2005 10:05:31 +0000 (10:05 +0000)
gencode.c
pcap.c

index 3b1937e59d705259a4ffefd4de6d5e2be570d41f..4f7c392621ee9b5ab0ce454d2cd42076d3ec2754 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.19 2005-05-12 07:06:14 hannes Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/gencode.c,v 1.221.2.20 2005-05-19 10:05:31 hannes Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -1126,6 +1126,30 @@ init_linktype(p)
             off_nl_nosnap = -1;     /* no 802.2 LLC */
             return;
 
+        case DLT_JUNIPER_GGSN:
+            off_linktype = 6;
+            off_nl = 12;
+            off_nl_nosnap = -1;     /* no 802.2 LLC */
+            return;
+
+        case DLT_JUNIPER_ES:
+            off_linktype = 6;
+            off_nl = -1;            /* not really a network layer but raw IP adresses */
+            off_nl_nosnap = -1;     /* no 802.2 LLC */
+            return;
+
+        case DLT_JUNIPER_MONITOR:
+            off_linktype = 12;
+            off_nl = 12;            /* raw IP/IP6 header */
+            off_nl_nosnap = -1;     /* no 802.2 LLC */
+            return;
+
+        case DLT_JUNIPER_SERVICES:
+            off_linktype = 12;
+            off_nl = -1;            /* L3 proto location dep. on cookie type */
+            off_nl_nosnap = -1;     /* no 802.2 LLC */
+            return;
+
 #ifdef DLT_PFSYNC
        case DLT_PFSYNC:
                off_linktype = -1;
@@ -2192,6 +2216,10 @@ gen_linktype(proto)
        case DLT_JUNIPER_ATM2:
        case DLT_JUNIPER_PPPOE:
        case DLT_JUNIPER_PPPOE_ATM:
+        case DLT_JUNIPER_GGSN:
+        case DLT_JUNIPER_ES:
+        case DLT_JUNIPER_MONITOR:
+        case DLT_JUNIPER_SERVICES:
                /* 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
@@ -5931,6 +5959,10 @@ gen_inbound(dir)
        case DLT_JUNIPER_ATM2:
        case DLT_JUNIPER_PPPOE:
        case DLT_JUNIPER_PPPOE_ATM:
+        case DLT_JUNIPER_GGSN:
+        case DLT_JUNIPER_ES:
+        case DLT_JUNIPER_MONITOR:
+        case DLT_JUNIPER_SERVICES:
                /* juniper flags (including direction) are stored
                 * the byte after the 3-byte magic number */
                if (dir) {
diff --git a/pcap.c b/pcap.c
index 13267323af0334123a1a62c9b3bf8513cd7bdaad..1635c2b49aba2b10299e6f22350af285fe95fd2f 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.1 2005-05-03 18:54:39 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/pcap.c,v 1.88.2.2 2005-05-19 10:05:32 hannes Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -369,6 +369,10 @@ static struct dlt_choice dlt_choices[] = {
        DLT_CHOICE(DLT_JUNIPER_MLFR, "Juniper Multi-Link Frame Relay"),
        DLT_CHOICE(DLT_ERF_ETH, "Ethernet with Endace ERF header"),
        DLT_CHOICE(DLT_ERF_POS, "Packet-over-SONET with Endace ERF header"),
+        DLT_CHOICE(DLT_JUNIPER_GGSN, "Juniper GGSN PIC"),
+        DLT_CHOICE(DLT_JUNIPER_ES, "Juniper Encryption Services PIC"),
+        DLT_CHOICE(DLT_JUNIPER_MONITOR, "Juniper Passive Monitor PIC"),
+        DLT_CHOICE(DLT_JUNIPER_SERVICES, "Juniper Advanced Services PIC"),
        DLT_CHOICE_SENTINEL
 };