xref: /csrg-svn/sys/net/if_slvar.h (revision 65578)
149284Sbostic /*-
263211Sbostic  * Copyright (c) 1991, 1993
363211Sbostic  *	The Regents of the University of California.  All rights reserved.
449284Sbostic  *
549284Sbostic  * %sccs.include.redist.c%
649284Sbostic  *
7*65578Scgd  *	@(#)if_slvar.h	8.2 (Berkeley) 01/07/94
849284Sbostic  *
949284Sbostic  * $Header: if_slvar.h,v 1.3 89/05/31 02:25:18 van Exp $
1049284Sbostic  */
1138367Skarels 
1238367Skarels /*
1338368Skarels  * Definitions for SLIP interface data structures
1438368Skarels  *
1549284Sbostic  * (This exists so programs like slstats can get at the definition
1638368Skarels  *  of sl_softc.)
1738367Skarels  */
1838367Skarels struct sl_softc {
1938367Skarels 	struct	ifnet sc_if;		/* network-visible interface */
2038368Skarels 	struct	ifqueue sc_fastq;	/* interactive output queue */
2138367Skarels 	struct	tty *sc_ttyp;		/* pointer to tty structure */
2238368Skarels 	u_char	*sc_mp;			/* pointer to next available buf char */
2338368Skarels 	u_char	*sc_ep;			/* pointer to last available buf char */
2438368Skarels 	u_char	*sc_buf;		/* input buffer */
2538368Skarels 	u_int	sc_flags;		/* see below */
2638368Skarels 	u_int	sc_escape;	/* =1 if last char input was FRAME_ESCAPE */
2738368Skarels 	long	sc_lasttime;		/* last time a char arrived */
2838368Skarels 	long	sc_abortcount;		/* number of abort esacpe chars */
2952203Skarels 	long	sc_starttime;		/* time of first abort in window */
3038378Skarels #ifdef INET				/* XXX */
3138368Skarels 	struct	slcompress sc_comp;	/* tcp compression data */
3238378Skarels #endif
33*65578Scgd 	caddr_t	sc_bpf;			/* BPF data */
3438367Skarels };
3538367Skarels 
36*65578Scgd /* internal flags */
37*65578Scgd #define	SC_ERROR	0x0001		/* had an input error */
38*65578Scgd 
3939947Ssam /* visible flags */
4052203Skarels #define	SC_COMPRESS	IFF_LINK0	/* compress TCP traffic */
4152203Skarels #define	SC_NOICMP	IFF_LINK1	/* supress ICMP traffic */
4252203Skarels #define	SC_AUTOCOMP	IFF_LINK2	/* auto-enable TCP compression */
4338367Skarels 
4438367Skarels /* this stuff doesn't belong here... */
4546548Skarels #define	SLIOCGUNIT	_IOR('t', 88, int)	/* get slip unit number */
4661364Sbostic 
47*65578Scgd /*
48*65578Scgd  * definitions of the pseudo- link-level header attached to slip
49*65578Scgd  * packets grabbed by the packet filter (bpf) traffic monitor.
50*65578Scgd  * These definitions pulled from BPF's "slip.h" by cgd.
51*65578Scgd  */
52*65578Scgd #define	SLIP_HDRLEN	16		/* BPF SLIP header length */
53*65578Scgd 
54*65578Scgd /* offsets into BPF SLIP header */
55*65578Scgd #define	SLX_DIR		0		/* direction; see below */
56*65578Scgd #define	SLX_CHDR	1		/* compressed header data */
57*65578Scgd #define	CHDR_LEN	15		/* length of compressed header data */
58*65578Scgd 
59*65578Scgd #define	SLIPDIR_IN	0		/* incoming */
60*65578Scgd #define	SLIPDIR_OUT	1		/* outgoing */
61*65578Scgd 
6261364Sbostic #ifdef KERNEL
63*65578Scgd void	slattach __P((void));
64*65578Scgd void	slclose __P((struct tty *));
65*65578Scgd void	slinput __P((int, struct tty *));
66*65578Scgd int	slioctl __P((struct ifnet *, int, caddr_t));
67*65578Scgd int	slopen __P((dev_t, struct tty *));
68*65578Scgd int	sloutput __P((struct ifnet *,
6961364Sbostic 	    struct mbuf *, struct sockaddr *, struct rtentry *));
70*65578Scgd void	slstart __P((struct tty *));
71*65578Scgd int	sltioctl __P((struct tty *, int, caddr_t, int));
72*65578Scgd #endif /* KERNEL */
73