[BACK]Return to if_slvar.h CVS log [TXT][DIR] Up to [local] / sys / net

Annotation of sys/net/if_slvar.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: if_slvar.h,v 1.12 2003/12/07 15:41:27 markus Exp $    */
                      2: /*     $NetBSD: if_slvar.h,v 1.16 1996/05/07 02:40:46 thorpej Exp $    */
                      3:
                      4: /*-
                      5:  * Copyright (c) 1991, 1993
                      6:  *     The Regents of the University of California.  All rights reserved.
                      7:  *
                      8:  * Redistribution and use in source and binary forms, with or without
                      9:  * modification, are permitted provided that the following conditions
                     10:  * are met:
                     11:  * 1. Redistributions of source code must retain the above copyright
                     12:  *    notice, this list of conditions and the following disclaimer.
                     13:  * 2. Redistributions in binary form must reproduce the above copyright
                     14:  *    notice, this list of conditions and the following disclaimer in the
                     15:  *    documentation and/or other materials provided with the distribution.
                     16:  * 3. Neither the name of the University nor the names of its contributors
                     17:  *    may be used to endorse or promote products derived from this software
                     18:  *    without specific prior written permission.
                     19:  *
                     20:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
                     21:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     22:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     23:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
                     24:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     25:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     26:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     27:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     28:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     29:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     30:  * SUCH DAMAGE.
                     31:  *
                     32:  *     @(#)if_slvar.h  8.3 (Berkeley) 2/1/94
                     33:  */
                     34:
                     35: #ifndef _NET_IF_SLVAR_H_
                     36: #define _NET_IF_SLVAR_H_
                     37:
                     38: /*
                     39:  * Definitions for SLIP interface data structures
                     40:  *
                     41:  * (This exists so programs like slstats can get at the definition
                     42:  *  of sl_softc.)
                     43:  */
                     44: struct sl_softc {
                     45:        struct  ifnet sc_if;            /* network-visible interface */
                     46:        int     sc_unit;                /* XXX unit number */
                     47:        struct  ifqueue sc_fastq;       /* interactive output queue */
                     48:        struct  tty *sc_ttyp;           /* pointer to tty structure */
                     49:        u_char  *sc_mp;                 /* pointer to next available buf char */
                     50:        u_char  *sc_ep;                 /* pointer to last available buf char */
                     51:        u_char  *sc_pktstart;           /* pointer to beginning of packet */
                     52:        struct mbuf *sc_mbuf;           /* input buffer */
                     53:        u_int   sc_flags;               /* see below */
                     54:        u_int   sc_escape;      /* =1 if last char input was FRAME_ESCAPE */
                     55:        long    sc_lasttime;            /* last time a char arrived */
                     56:        long    sc_abortcount;          /* number of abort esacpe chars */
                     57:        long    sc_starttime;           /* time of first abort in window */
                     58:        long    sc_oqlen;               /* previous output queue size */
                     59:        long    sc_otimeout;            /* number of times output's stalled */
                     60: #if defined(__NetBSD__) || defined(__OpenBSD__)
                     61:        int     sc_oldbufsize;          /* previous output buffer size */
                     62:        int     sc_oldbufquot;          /* previous output buffer quoting */
                     63: #endif
                     64: #ifdef INET                            /* XXX */
                     65:        struct  slcompress sc_comp;     /* tcp compression data */
                     66: #endif
                     67:        caddr_t sc_bpf;                 /* BPF data */
                     68:        struct timeval sc_lastpacket;   /* for watchdog */
                     69:        LIST_ENTRY(sl_softc) sc_list;   /* all slip interfaces */
                     70: };
                     71:
                     72: /*
                     73:  * Statistics.
                     74:  */
                     75: struct slstat  {
                     76:        u_int   sl_ibytes;      /* bytes received */
                     77:        u_int   sl_ipackets;    /* packets received */
                     78:        u_int   sl_obytes;      /* bytes sent */
                     79:        u_int   sl_opackets;    /* packets sent */
                     80: };
                     81:
                     82: struct vjstat {
                     83:        u_int   vjs_packets;    /* outbound packets */
                     84:        u_int   vjs_compressed; /* outbound compressed packets */
                     85:        u_int   vjs_searches;   /* searches for connection state */
                     86:        u_int   vjs_misses;     /* times couldn't find conn. state */
                     87:        u_int   vjs_uncompressedin; /* inbound uncompressed packets */
                     88:        u_int   vjs_compressedin;   /* inbound compressed packets */
                     89:        u_int   vjs_errorin;    /* inbound unknown type packets */
                     90:        u_int   vjs_tossed;     /* inbound packets tossed because of error */
                     91: };
                     92:
                     93: struct sl_stats {
                     94:        struct slstat   sl;     /* basic PPP statistics */
                     95:        struct vjstat   vj;     /* VJ header compression statistics */
                     96: };
                     97:
                     98: struct ifslstatsreq {
                     99:        char ifr_name[IFNAMSIZ];
                    100:        struct sl_stats stats;
                    101: };
                    102:
                    103: /* internal flags */
                    104: #define        SC_ERROR        0x0001          /* had an input error */
                    105:
                    106: /* visible flags */
                    107: #define        SC_COMPRESS     IFF_LINK0       /* compress TCP traffic */
                    108: #define        SC_NOICMP       IFF_LINK1       /* supress ICMP traffic */
                    109: #define        SC_AUTOCOMP     IFF_LINK2       /* auto-enable TCP compression */
                    110:
                    111: /*
                    112:  * These two are interface ioctls so that pppstats can do them on
                    113:  * a socket without having to open the serial device.
                    114:  */
                    115: #define SIOCGSLSTATS   _IOWR('i', 123, struct ifslstatsreq)
                    116:
                    117: #ifdef _KERNEL
                    118: void   slattach(int);
                    119: void   slclose(struct tty *);
                    120: void   slinput(int, struct tty *);
                    121: int    slioctl(struct ifnet *, u_long, caddr_t);
                    122: int    slopen(dev_t, struct tty *);
                    123: int    sloutput(struct ifnet *,
                    124:            struct mbuf *, struct sockaddr *, struct rtentry *);
                    125: void   slstart(struct tty *);
                    126: int    sltioctl(struct tty *, u_long, caddr_t, int);
                    127: #endif /* _KERNEL */
                    128: #endif /* _NET_IF_SLVAR_H_ */

CVSweb