summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FILES2
-rw-r--r--ppp.h4
-rw-r--r--print-chdlc.c26
-rw-r--r--print-ppp.c15
-rw-r--r--print-sl.c51
-rw-r--r--print-vjc.c24
-rw-r--r--slcompress.h88
-rw-r--r--slip.h34
8 files changed, 143 insertions, 101 deletions
diff --git a/FILES b/FILES
index 9a63b24a..5dcdecf7 100644
--- 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 b33961d2..dfaa5040 100644
--- 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 */
diff --git a/print-chdlc.c b/print-chdlc.c
index 3f6cf205..aa1b330d 100644
--- a/print-chdlc.c
+++ b/print-chdlc.c
@@ -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;
};
diff --git a/print-ppp.c b/print-ppp.c
index c695699c..ff7ac829 100644
--- a/print-ppp.c
+++ b/print-ppp.c
@@ -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
diff --git a/print-sl.c b/print-sl.c
index 25c1199c..4419f11c 100644
--- a/print-sl.c
+++ b/print-sl.c
@@ -21,24 +21,15 @@
#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
diff --git a/print-vjc.c b/print-vjc.c
index d307d900..6936e531 100644
--- a/print-vjc.c
+++ b/print-vjc.c
@@ -23,21 +23,13 @@
#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
index 00000000..f57167a8
--- /dev/null
+++ b/slcompress.h
@@ -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 (van@ee.lbl.gov), 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
index 00000000..aa6402c3
--- /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