xref: /original-bsd/sys/net/if_slvar.h (revision 333da485)
1 /*-
2  * Copyright (c) 1991, 1993
3  *	The Regents of the University of California.  All rights reserved.
4  *
5  * %sccs.include.redist.c%
6  *
7  *	@(#)if_slvar.h	8.2 (Berkeley) 01/07/94
8  *
9  * $Header: if_slvar.h,v 1.3 89/05/31 02:25:18 van Exp $
10  */
11 
12 /*
13  * Definitions for SLIP interface data structures
14  *
15  * (This exists so programs like slstats can get at the definition
16  *  of sl_softc.)
17  */
18 struct sl_softc {
19 	struct	ifnet sc_if;		/* network-visible interface */
20 	struct	ifqueue sc_fastq;	/* interactive output queue */
21 	struct	tty *sc_ttyp;		/* pointer to tty structure */
22 	u_char	*sc_mp;			/* pointer to next available buf char */
23 	u_char	*sc_ep;			/* pointer to last available buf char */
24 	u_char	*sc_buf;		/* input buffer */
25 	u_int	sc_flags;		/* see below */
26 	u_int	sc_escape;	/* =1 if last char input was FRAME_ESCAPE */
27 	long	sc_lasttime;		/* last time a char arrived */
28 	long	sc_abortcount;		/* number of abort esacpe chars */
29 	long	sc_starttime;		/* time of first abort in window */
30 #ifdef INET				/* XXX */
31 	struct	slcompress sc_comp;	/* tcp compression data */
32 #endif
33 	caddr_t	sc_bpf;			/* BPF data */
34 };
35 
36 /* internal flags */
37 #define	SC_ERROR	0x0001		/* had an input error */
38 
39 /* visible flags */
40 #define	SC_COMPRESS	IFF_LINK0	/* compress TCP traffic */
41 #define	SC_NOICMP	IFF_LINK1	/* supress ICMP traffic */
42 #define	SC_AUTOCOMP	IFF_LINK2	/* auto-enable TCP compression */
43 
44 /* this stuff doesn't belong here... */
45 #define	SLIOCGUNIT	_IOR('t', 88, int)	/* get slip unit number */
46 
47 /*
48  * definitions of the pseudo- link-level header attached to slip
49  * packets grabbed by the packet filter (bpf) traffic monitor.
50  * These definitions pulled from BPF's "slip.h" by cgd.
51  */
52 #define	SLIP_HDRLEN	16		/* BPF SLIP header length */
53 
54 /* offsets into BPF SLIP header */
55 #define	SLX_DIR		0		/* direction; see below */
56 #define	SLX_CHDR	1		/* compressed header data */
57 #define	CHDR_LEN	15		/* length of compressed header data */
58 
59 #define	SLIPDIR_IN	0		/* incoming */
60 #define	SLIPDIR_OUT	1		/* outgoing */
61 
62 #ifdef KERNEL
63 void	slattach __P((void));
64 void	slclose __P((struct tty *));
65 void	slinput __P((int, struct tty *));
66 int	slioctl __P((struct ifnet *, int, caddr_t));
67 int	slopen __P((dev_t, struct tty *));
68 int	sloutput __P((struct ifnet *,
69 	    struct mbuf *, struct sockaddr *, struct rtentry *));
70 void	slstart __P((struct tty *));
71 int	sltioctl __P((struct tty *, int, caddr_t, int));
72 #endif /* KERNEL */
73