]> The Tcpdump Group git mirrors - libpcap/commitdiff
New DLT_MPLS link-layer type, for MPLS packets with an MPLS label as the
authorguy <guy>
Sun, 21 Dec 2008 19:29:49 +0000 (19:29 +0000)
committerguy <guy>
Sun, 21 Dec 2008 19:29:49 +0000 (19:29 +0000)
link-layer header.

gencode.c
pcap.c
pcap/bpf.h
savefile.c

index 41057ba8cb12a98c5dae50f795be0634a809473d..554240b09fd41b69b1df0d30ca441e46f773a609 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.290.2.16 2008-09-22 20:16:01 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/gencode.c,v 1.290.2.17 2008-12-21 19:29:49 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -1497,6 +1497,16 @@ init_linktype(p)
                off_nl = -1;
                off_nl_nosnap = -1;
                return;
+
+       case DLT_MPLS:
+               /*
+                * Currently, only raw "link[N:M]" filtering is supported.
+                */
+               off_linktype = -1;
+               off_macpl = -1;
+               off_nl = -1;
+               off_nl_nosnap = -1;
+               return;
        }
        bpf_error("unknown data link type %d", linktype);
        /* NOTREACHED */
diff --git a/pcap.c b/pcap.c
index 925764db8ddfa18dc634046638a074df2083f526..ad4cc3134f621292ef9c3318133666fa9144c65e 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.112.2.13 2008-12-14 19:43:15 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/pcap.c,v 1.112.2.14 2008-12-21 19:29:49 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -623,6 +623,7 @@ static struct dlt_choice dlt_choices[] = {
        DLT_CHOICE(DLT_BLUETOOTH_HCI_H4_WITH_PHDR, "Bluetooth HCI UART transport layer plus pseudo-header"),
        DLT_CHOICE(DLT_AX25_KISS, "AX.25 with KISS header"),
        DLT_CHOICE(DLT_IEEE802_15_4_NONASK_PHY, "IEEE 802.15.4 with non-ASK PHY data"),
+       DLT_CHOICE(DLT_MPLS, "MPLS with label as link-layer header"),
        DLT_CHOICE_SENTINEL
 };
 
index da5209484e2bcee93b9238bf7a24e94df796c8be..d14e86d2f0307378881f18b7570b2b92a6d6cba1 100644 (file)
@@ -37,7 +37,7 @@
  *
  *      @(#)bpf.h       7.1 (Berkeley) 5/7/91
  *
- * @(#) $Header: /tcpdump/master/libpcap/pcap/bpf.h,v 1.19.2.10 2008-11-27 19:48:24 guy Exp $ (LBL)
+ * @(#) $Header: /tcpdump/master/libpcap/pcap/bpf.h,v 1.19.2.11 2008-12-21 19:29:49 guy Exp $ (LBL)
  */
 
 /*
@@ -827,15 +827,22 @@ struct bpf_version {
  * is used to communicate keystrokes and mouse movements from the
  * Linux kernel to display systems, such as Xorg. 
  */
-#define DLT_LINUX_EVDEV                        216
+#define DLT_LINUX_EVDEV                216
 
 /*
  * GSM Um and Abis interfaces, preceded by a "gsmtap" header.
  *
  * Requested by Harald Welte <[email protected]>.
  */
-#define DLT_GSMTAP_UM                  217
-#define DLT_GSMTAP_ABIS                        218
+#define DLT_GSMTAP_UM          217
+#define DLT_GSMTAP_ABIS                218
+
+/*
+ * MPLS, with an MPLS label as the link-layer header.
+ * Requested by Michele Marchetto <[email protected]> on behalf
+ * of OpenBSD.
+ */
+#define DLT_MPLS               219
 
 
 /*
index 36db3afabb5e0ddb5fa5745cc375c93ebcbf16cf..e9eceaf3b7080a5eec4432702b13af1c6bc093b4 100644 (file)
@@ -30,7 +30,7 @@
 
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/libpcap/savefile.c,v 1.168.2.12 2008-11-27 19:48:24 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/libpcap/savefile.c,v 1.168.2.13 2008-12-21 19:29:49 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -663,6 +663,13 @@ static const char rcsid[] _U_ =
 #define LINKTYPE_GSMTAP_UM                     217
 #define LINKTYPE_GSMTAP_ABIS                   218
 
+/*
+ * MPLS, with an MPLS label as the link-layer header.
+ * Requested by Michele Marchetto <[email protected]> on behalf
+ * of OpenBSD.
+ */
+#define LINKTYPE_MPLS                          219
+
 
 static struct linktype_map {
        int     dlt;
@@ -975,6 +982,9 @@ static struct linktype_map {
        { DLT_GSMTAP_UM,        LINKTYPE_GSMTAP_UM },
        { DLT_GSMTAP_ABIS,      LINKTYPE_GSMTAP_ABIS },
 
+       /* MPLS, with an MPLS label as the link-layer header */
+       { DLT_MPLS,             LINKTYPE_MPLS },
+
        { -1,                   -1 }
 };