diff options
-rw-r--r-- | FILES | 2 | ||||
-rw-r--r-- | ppp.h | 4 | ||||
-rw-r--r-- | print-chdlc.c | 26 | ||||
-rw-r--r-- | print-ppp.c | 15 | ||||
-rw-r--r-- | print-sl.c | 51 | ||||
-rw-r--r-- | print-vjc.c | 24 | ||||
-rw-r--r-- | slcompress.h | 88 | ||||
-rw-r--r-- | slip.h | 34 |
8 files changed, 143 insertions, 101 deletions
@@ -160,6 +160,8 @@ savestr.h send-ack.awk setsignal.c setsignal.h +slip.h +slcompress.h smb.h smbutil.c stime.awk @@ -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 @@ -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) @@ -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 |