Skip to content

Commit

Permalink
Pull the "linux-include" versions of "slip.h" and "slcompress.h" up to
Browse files Browse the repository at this point in the history
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".
  • Loading branch information
yuguy committed Oct 9, 2000
1 parent 46f6e51 commit f685a42
Show file tree
Hide file tree
Showing 8 changed files with 143 additions and 101 deletions.
2 changes: 2 additions & 0 deletions FILES
Expand Up @@ -160,6 +160,8 @@ savestr.h
send-ack.awk
setsignal.c
setsignal.h
slip.h
slcompress.h
smb.h
smbutil.c
stime.awk
Expand Down
4 changes: 3 additions & 1 deletion 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
*
Expand All @@ -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 */

Expand Down
26 changes: 8 additions & 18 deletions print-chdlc.c
Expand Up @@ -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
Expand All @@ -31,23 +31,13 @@ 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>

#include <ctype.h>
#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"
Expand Down Expand Up @@ -125,22 +115,22 @@ chdlc_if_print(u_char *user, const struct pcap_pkthdr *h,
}

struct cisco_slarp {
u_int code;
u_int32_t code;
#define SLARP_REQUEST 0
#define SLARP_REPLY 1
#define SLARP_KEEPALIVE 2
union {
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;
};
Expand Down
15 changes: 1 addition & 14 deletions print-ppp.c
Expand Up @@ -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
Expand All @@ -40,23 +40,13 @@ 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>

#include <ctype.h>
#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"
Expand All @@ -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
Expand Down
51 changes: 3 additions & 48 deletions print-sl.c
Expand Up @@ -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>

Expand All @@ -53,26 +44,15 @@ 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;

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)
{
Expand Down Expand Up @@ -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
24 changes: 4 additions & 20 deletions print-vjc.c
Expand Up @@ -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>

Expand All @@ -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)
{
Expand Down Expand Up @@ -95,4 +80,3 @@ vjc_print(register const char *bp, register u_int length, u_short proto)
return -1;
}
}
#endif /* defined(__bsdi__) || defined(__NetBSD__) */
88 changes: 88 additions & 0 deletions 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)
34 changes: 34 additions & 0 deletions 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

0 comments on commit f685a42

Please sign in to comment.