]> The Tcpdump Group git mirrors - tcpdump/commitdiff
Pull the "linux-include" versions of "slip.h" and "slcompress.h" up to
authorguy <guy>
Mon, 9 Oct 2000 01:53:19 +0000 (01:53 +0000)
committerguy <guy>
Mon, 9 Oct 2000 01:53:19 +0000 (01:53 +0000)
the top-level directory, remove from them all stuff not needed by
tcpdump, include them rather than the system's header files, and get rid
of assorted unnecessary include files.

This means you don't need to check for "slip.h" when building
"print-sl.c", stubbing it out on systems that don't have "slip.h".  We
also don't need to build the stuff in "print-vjc.c" only on BSD/OS.

Use "u_int32_t" and "u_int16_t" rather than "u_int" and "u_short" for
structure members in "print-chdlc.c".

Move PPP_HDRLEN from "print-ppp.c" to "ppp.h", as per the XXX comment in
"print-ppp.c".

FILES
ppp.h
print-chdlc.c
print-ppp.c
print-sl.c
print-vjc.c
slcompress.h [new file with mode: 0644]
slip.h [new file with mode: 0644]

diff --git a/FILES b/FILES
index 9a63b24aaa87b7f05066713d53d28d4c78f2878e..5dcdecf7ff11d567d025689b5a0b42114340faf0 100644 (file)
--- a/FILES
+++ b/FILES
@@ -160,6 +160,8 @@ savestr.h
 send-ack.awk
 setsignal.c
 setsignal.h
+slip.h
+slcompress.h
 smb.h
 smbutil.c
 stime.awk
diff --git a/ppp.h b/ppp.h
index b33961d2c78c79c165145654a0f9d3e83ce3c0d9..dfaa5040055ac3e2776099e582b9a4c397f63085 100644 (file)
--- a/ppp.h
+++ b/ppp.h
@@ -1,4 +1,4 @@
-/* @(#) $Header: /tcpdump/master/tcpdump/ppp.h,v 1.10 2000-08-18 07:44:45 itojun Exp $ (LBL) */
+/* @(#) $Header: /tcpdump/master/tcpdump/ppp.h,v 1.11 2000-10-09 01:53:19 guy Exp $ (LBL) */
 /*
  * Point to Point Protocol (PPP) RFC1331
  *
@@ -15,6 +15,8 @@
  * suitability of this software for any purpose.  It is provided "as is"
  * without express or implied warranty.
  */
+#define PPP_HDRLEN     4       /* length of PPP header */
+
 #define PPP_ADDRESS    0xff    /* The address byte value */
 #define PPP_CONTROL    0x03    /* The control byte value */
 
index 3f6cf2056c60d002cdfd4386ac736cbd9bebe694..aa1b330d24a1db2b672a5ed7c0bb3d49e1a90484 100644 (file)
@@ -22,7 +22,7 @@
 
 #ifndef lint
 static const char rcsid[] =
-    "@(#) $Header: /tcpdump/master/tcpdump/print-chdlc.c,v 1.10 2000-09-29 05:33:48 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/tcpdump/print-chdlc.c,v 1.11 2000-10-09 01:53:19 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -31,12 +31,6 @@ static const char rcsid[] =
 
 #include <sys/param.h>
 #include <sys/time.h>
-#include <sys/socket.h>
-#include <sys/file.h>
-#include <sys/ioctl.h>
-
-struct mbuf;
-struct rtentry;
 
 #include <netinet/in.h>
 
@@ -44,10 +38,6 @@ struct rtentry;
 #include <netdb.h>
 #include <pcap.h>
 #include <stdio.h>
-#ifdef __bsdi__
-#include <net/slcompress.h>
-#include <net/if_ppp.h>
-#endif
 
 #include "interface.h"
 #include "addrtoname.h"
@@ -125,7 +115,7 @@ out:
 }
 
 struct cisco_slarp {
-       u_int code;
+       u_int32_t code;
 #define SLARP_REQUEST  0
 #define SLARP_REPLY    1
 #define SLARP_KEEPALIVE        2
@@ -133,14 +123,14 @@ struct cisco_slarp {
                struct {
                        struct in_addr addr;
                        struct in_addr mask;
-                       u_short unused[3];
+                       u_int16_t unused[3];
                } addr;
                struct {
-                       u_int myseq;
-                       u_int yourseq;
-                       u_short rel;
-                       u_short t1;
-                       u_short t2;
+                       u_int32_t myseq;
+                       u_int32_t yourseq;
+                       u_int16_t rel;
+                       u_int16_t t1;
+                       u_int16_t t2;
                } keep;
        } un;
 };
index c695699c14a30a5fd5ccf7e9a7e3e59e2025ab33..ff7ac829e44a49826d4a22dbb1aa78f070f00e27 100644 (file)
@@ -31,7 +31,7 @@
 
 #ifndef lint
 static const char rcsid[] =
-    "@(#) $Header: /tcpdump/master/tcpdump/print-ppp.c,v 1.53 2000-10-06 04:25:59 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/tcpdump/print-ppp.c,v 1.54 2000-10-09 01:53:20 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -40,12 +40,6 @@ static const char rcsid[] =
 
 #include <sys/param.h>
 #include <sys/time.h>
-#include <sys/socket.h>
-#include <sys/file.h>
-#include <sys/ioctl.h>
-
-struct mbuf;
-struct rtentry;
 
 #include <netinet/in.h>
 
@@ -53,10 +47,6 @@ struct rtentry;
 #include <netdb.h>
 #include <pcap.h>
 #include <stdio.h>
-#ifdef __bsdi__
-#include <net/slcompress.h>
-#include <net/if_ppp.h>
-#endif
 
 #include "interface.h"
 #include "extract.h"
@@ -65,9 +55,6 @@ struct rtentry;
 #include "chdlc.h"
 #include "ethertype.h"
 
-/* XXX This goes somewhere else. */
-#define PPP_HDRLEN 4
-
 /*
  * The following constatns are defined by IANA. Please refer to
  *    http://www.isi.edu/in-notes/iana/assignments/ppp-numbers
index 25c1199c3fc950c93b9c6d9ee66e421c7eb4af74..4419f11cc0f6c8db7229784d4478c2c4d667c0c8 100644 (file)
 
 #ifndef lint
 static const char rcsid[] =
-    "@(#) $Header: /tcpdump/master/tcpdump/print-sl.c,v 1.54 2000-10-03 02:55:01 itojun Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/tcpdump/print-sl.c,v 1.55 2000-10-09 01:53:20 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
 
-#ifdef HAVE_NET_SLIP_H
 #include <sys/param.h>
 #include <sys/time.h>
-#include <sys/timeb.h>
-#include <sys/file.h>
-#include <sys/ioctl.h>
-#include <sys/mbuf.h>
-#include <sys/socket.h>
-
-struct mbuf;
-struct rtentry;
 
 #include <netinet/in.h>
 
@@ -53,9 +44,8 @@ struct rtentry;
 
 #include "ip.h"
 #include "tcp.h"
-
-#include <net/slcompress.h>
-#include <net/slip.h>
+#include "slip.h"
+#include "slcompress.h"
 
 static u_int lastlen[2][256];
 static u_int lastconn = 255;
@@ -63,16 +53,6 @@ static u_int lastconn = 255;
 static void sliplink_print(const u_char *, const struct ip *, u_int);
 static void compressed_sl_print(const u_char *, const struct ip *, u_int, int);
 
-/* XXX BSD/OS 2.1 compatibility */
-#if !defined(SLIP_HDRLEN) && defined(SLC_BPFHDR)
-#define SLIP_HDRLEN SLC_BPFHDR
-#define SLX_DIR 0
-#define SLX_CHDR (SLC_BPFHDRLEN - 1)
-#define CHDR_LEN (SLC_BPFHDR - SLC_BPFHDRLEN)
-#endif
-
-/* XXX needs more hacking to work right */
-
 void
 sl_if_print(u_char *user, const struct pcap_pkthdr *h, const u_char *p)
 {
@@ -287,28 +267,3 @@ compressed_sl_print(const u_char *chdr, const struct ip *ip,
        lastlen[dir][lastconn] = length - (hlen << 2);
        printf(" %d (%d)", lastlen[dir][lastconn], cp - chdr);
 }
-#else
-#include <sys/types.h>
-#include <sys/time.h>
-
-#include <pcap.h>
-#include <stdio.h>
-
-#include "interface.h"
-
-void
-sl_if_print(u_char *user, const struct pcap_pkthdr *h, const u_char *p)
-{
-
-       error("not configured for slip");
-       /* NOTREACHED */
-}
-
-void
-sl_bsdos_if_print(u_char *user, const struct pcap_pkthdr *h, const u_char *p)
-{
-
-       error("not configured for slip");
-       /* NOTREACHED */
-}
-#endif
index d307d900aaef01cab90bf33a5d985d983922c63c..6936e531efca4f02ae9ad80f020572a270557091 100644 (file)
 #include "config.h"
 #endif
 
-#if defined(__bsdi__)
-
 #ifndef lint
 static const char rcsid[] =
-    "@(#) $Header: /tcpdump/master/tcpdump/print-vjc.c,v 1.8 2000-09-29 04:58:52 guy Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/tcpdump/print-vjc.c,v 1.9 2000-10-09 01:53:21 guy Exp $ (LBL)";
 #endif
 
 #include <sys/param.h>
 #include <sys/time.h>
-#include <sys/socket.h>
-#include <sys/file.h>
-#include <sys/ioctl.h>
-
-struct mbuf;
-struct rtentry;
 
 #include <netinet/in.h>
 
@@ -46,19 +38,12 @@ struct rtentry;
 #include <pcap.h>
 #include <stdio.h>
 
-#if defined(__NetBSD__)
-#include <sys/mbuf.h>
-#include <net/ppp_defs.h>
-#endif
-
-#if defined(__bsdi__) || defined(__NetBSD__)
-#include <net/if_ppp.h>
-#include <net/slcompress.h>
-#endif
-
 #include "interface.h"
 #include "addrtoname.h"
 
+#include "slcompress.h"
+#include "ppp.h"
+
 int
 vjc_print(register const char *bp, register u_int length, u_short proto)
 {
@@ -95,4 +80,3 @@ vjc_print(register const char *bp, register u_int length, u_short proto)
                return -1;
        }
 }
-#endif /* defined(__bsdi__) || defined(__NetBSD__) */
diff --git a/slcompress.h b/slcompress.h
new file mode 100644 (file)
index 0000000..f57167a
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+ * Definitions for tcp compression routines.
+ *
+ * @(#) $Header: /tcpdump/master/tcpdump/slcompress.h,v 1.1 2000-10-09 01:53:21 guy Exp $ (LBL)
+ *
+ * Copyright (c) 1989, 1990, 1992, 1993 Regents of the University of
+ * California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the University of California, Berkeley.  The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ *     Van Jacobson ([email protected]), Dec 31, 1989:
+ *     - Initial distribution.
+ */
+
+#define MAX_STATES 16          /* must be > 2 and < 256 */
+#define MAX_HDR MLEN           /* XXX 4bsd-ism: should really be 128 */
+
+/*
+ * Compressed packet format:
+ *
+ * The first octet contains the packet type (top 3 bits), TCP
+ * 'push' bit, and flags that indicate which of the 4 TCP sequence
+ * numbers have changed (bottom 5 bits).  The next octet is a
+ * conversation number that associates a saved IP/TCP header with
+ * the compressed packet.  The next two octets are the TCP checksum
+ * from the original datagram.  The next 0 to 15 octets are
+ * sequence number changes, one change per bit set in the header
+ * (there may be no changes and there are two special cases where
+ * the receiver implicitly knows what changed -- see below).
+ *
+ * There are 5 numbers which can change (they are always inserted
+ * in the following order): TCP urgent pointer, window,
+ * acknowlegement, sequence number and IP ID.  (The urgent pointer
+ * is different from the others in that its value is sent, not the
+ * change in value.)  Since typical use of SLIP links is biased
+ * toward small packets (see comments on MTU/MSS below), changes
+ * use a variable length coding with one octet for numbers in the
+ * range 1 - 255 and 3 octets (0, MSB, LSB) for numbers in the
+ * range 256 - 65535 or 0.  (If the change in sequence number or
+ * ack is more than 65535, an uncompressed packet is sent.)
+ */
+
+/*
+ * Packet types (must not conflict with IP protocol version)
+ *
+ * The top nibble of the first octet is the packet type.  There are
+ * three possible types: IP (not proto TCP or tcp with one of the
+ * control flags set); uncompressed TCP (a normal IP/TCP packet but
+ * with the 8-bit protocol field replaced by an 8-bit connection id --
+ * this type of packet syncs the sender & receiver); and compressed
+ * TCP (described above).
+ *
+ * LSB of 4-bit field is TCP "PUSH" bit (a worthless anachronism) and
+ * is logically part of the 4-bit "changes" field that follows.  Top
+ * three bits are actual packet type.  For backward compatibility
+ * and in the interest of conserving bits, numbers are chosen so the
+ * IP protocol version number (4) which normally appears in this nibble
+ * means "IP packet".
+ */
+
+/* packet types */
+#define TYPE_IP 0x40
+#define TYPE_UNCOMPRESSED_TCP 0x70
+#define TYPE_COMPRESSED_TCP 0x80
+#define TYPE_ERROR 0x00
+
+/* Bits in first octet of compressed packet */
+#define NEW_C  0x40    /* flag bits for what changed in a packet */
+#define NEW_I  0x20
+#define NEW_S  0x08
+#define NEW_A  0x04
+#define NEW_W  0x02
+#define NEW_U  0x01
+
+/* reserved, special-case values of above */
+#define SPECIAL_I (NEW_S|NEW_W|NEW_U)          /* echoed interactive traffic */
+#define SPECIAL_D (NEW_S|NEW_A|NEW_W|NEW_U)    /* unidirectional data */
+#define SPECIALS_MASK (NEW_S|NEW_A|NEW_W|NEW_U)
diff --git a/slip.h b/slip.h
new file mode 100644 (file)
index 0000000..aa6402c
--- /dev/null
+++ b/slip.h
@@ -0,0 +1,34 @@
+/*
+ * Definitions that user level programs might need to know to interact
+ * with serial line IP (slip) lines.
+ *
+ * @(#) $Header: /tcpdump/master/tcpdump/slip.h,v 1.1 2000-10-09 01:53:21 guy Exp $
+ *
+ * Copyright (c) 1990 Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the University of California, Berkeley.  The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+/*
+ * definitions of the pseudo- link-level header attached to slip
+ * packets grabbed by the packet filter (bpf) traffic monitor.
+ */
+#define SLIP_HDRLEN 16
+
+#define SLX_DIR 0
+#define SLX_CHDR 1
+#define CHDR_LEN 15
+
+#define SLIPDIR_IN 0
+#define SLIPDIR_OUT 1