root/net/if_slvar.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


    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_ */

/* [<][>][^][v][top][bottom][index][help] */