[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     ! 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