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