The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/net/if_ppp.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*      $NetBSD: if_ppp.h,v 1.27 2015/09/06 06:01:01 dholland Exp $     */
    2 /*      Id: if_ppp.h,v 1.16 1997/04/30 05:46:04 paulus Exp      */
    3 
    4 /*
    5  * if_ppp.h - Point-to-Point Protocol definitions.
    6  *
    7  * Copyright (c) 1984-2000 Carnegie Mellon University. All rights reserved.
    8  *
    9  * Redistribution and use in source and binary forms, with or without
   10  * modification, are permitted provided that the following conditions
   11  * are met:
   12  *
   13  * 1. Redistributions of source code must retain the above copyright
   14  *    notice, this list of conditions and the following disclaimer.
   15  *
   16  * 2. Redistributions in binary form must reproduce the above copyright
   17  *    notice, this list of conditions and the following disclaimer in
   18  *    the documentation and/or other materials provided with the
   19  *    distribution.
   20  *
   21  * 3. The name "Carnegie Mellon University" must not be used to
   22  *    endorse or promote products derived from this software without
   23  *    prior written permission. For permission or any legal
   24  *    details, please contact
   25  *      Office of Technology Transfer
   26  *      Carnegie Mellon University
   27  *      5000 Forbes Avenue
   28  *      Pittsburgh, PA  15213-3890
   29  *      (412) 268-4387, fax: (412) 268-7395
   30  *      tech-transfer@andrew.cmu.edu
   31  *
   32  * 4. Redistributions of any form whatsoever must retain the following
   33  *    acknowledgment:
   34  *    "This product includes software developed by Computing Services
   35  *     at Carnegie Mellon University (http://www.cmu.edu/computing/)."
   36  *
   37  * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
   38  * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
   39  * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
   40  * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
   41  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
   42  * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
   43  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
   44  */
   45 
   46 #ifndef _NET_IF_PPP_H_
   47 #define _NET_IF_PPP_H_
   48 
   49 #include <sys/ioccom.h>
   50 
   51 /*
   52  * Bit definitions for flags.
   53  */
   54 #define SC_COMP_PROT    0x00000001      /* protocol compression (output) */
   55 #define SC_COMP_AC      0x00000002      /* header compression (output) */
   56 #define SC_COMP_TCP     0x00000004      /* TCP (VJ) compression (output) */
   57 #define SC_NO_TCP_CCID  0x00000008      /* disable VJ connection-id comp. */
   58 #define SC_REJ_COMP_AC  0x00000010      /* reject adrs/ctrl comp. on input */
   59 #define SC_REJ_COMP_TCP 0x00000020      /* reject TCP (VJ) comp. on input */
   60 #define SC_CCP_OPEN     0x00000040      /* Look at CCP packets */
   61 #define SC_CCP_UP       0x00000080      /* May send/recv compressed packets */
   62 #define SC_DEBUG        0x00010000      /* enable debug messages */
   63 #define SC_LOG_INPKT    0x00020000      /* log contents of good pkts recvd */
   64 #define SC_LOG_OUTPKT   0x00040000      /* log contents of pkts sent */
   65 #define SC_LOG_RAWIN    0x00080000      /* log all chars received */
   66 #define SC_LOG_FLUSH    0x00100000      /* log all chars flushed */
   67 #define SC_SYNC         0x00200000      /* synchronous HDLC */
   68 #define SC_RCV_B7_0     0x01000000      /* have rcvd char with bit 7 = 0 */
   69 #define SC_RCV_B7_1     0x02000000      /* have rcvd char with bit 7 = 1 */
   70 #define SC_RCV_EVNP     0x04000000      /* have rcvd char with even parity */
   71 #define SC_RCV_ODDP     0x08000000      /* have rcvd char with odd parity */
   72 
   73 #define SC_MASK         0x0fff00ff      /* bits that user can change */
   74 
   75 /*
   76  * State bits in sc_flags, not changeable by user.
   77  */
   78 #define SC_TIMEOUT      0x00000400      /* timeout is currently pending */
   79 #define SC_VJ_RESET     0x00000800      /* need to reset VJ decomp */
   80 #define SC_COMP_RUN     0x00001000      /* compressor has been inited */
   81 #define SC_DECOMP_RUN   0x00002000      /* decompressor has been inited */
   82 #define SC_DC_ERROR     0x00004000      /* non-fatal decomp error detected */
   83 #define SC_DC_FERROR    0x00008000      /* fatal decomp error detected */
   84 #define SC_TBUSY        0x10000000      /* xmitter doesn't need a packet yet */
   85 #define SC_PKTLOST      0x20000000      /* have lost or dropped a packet */
   86 #define SC_FLUSH        0x40000000      /* flush input until next PPP_FLAG */
   87 #define SC_ESCAPED      0x80000000      /* saw a PPP_ESCAPE */
   88 
   89 /*
   90  * Ioctl definitions.
   91  */
   92 
   93 struct npioctl {
   94     int         protocol;       /* PPP procotol, e.g. PPP_IP */
   95     enum NPmode mode;
   96 };
   97 
   98 /* Structure describing a CCP configuration option, for PPPIOCSCOMPRESS */
   99 struct ppp_option_data {
  100         u_char  *ptr;
  101         u_int   length;
  102         int     transmit;
  103 };
  104 
  105 struct ifpppstatsreq {
  106     char ifr_name[IFNAMSIZ];
  107     struct ppp_stats stats;
  108 };
  109 
  110 struct ifpppcstatsreq {
  111     char ifr_name[IFNAMSIZ];
  112     struct ppp_comp_stats stats;
  113 };
  114 
  115 struct ppp_rawin {
  116     u_char buf[63];
  117     u_char count;
  118 };
  119 
  120 /*
  121  * Ioctl definitions.
  122  */
  123 
  124 #define PPPIOCGRAWIN    _IOR('t', 91, struct ppp_rawin) /* get raw input */
  125 #define PPPIOCGFLAGS    _IOR('t', 90, int)      /* get configuration flags */
  126 #define PPPIOCSFLAGS    _IOW('t', 89, int)      /* set configuration flags */
  127 #define PPPIOCGASYNCMAP _IOR('t', 88, int)      /* get async map */
  128 #define PPPIOCSASYNCMAP _IOW('t', 87, int)      /* set async map */
  129 #define PPPIOCGUNIT     _IOR('t', 86, int)      /* get ppp unit number */
  130 #define PPPIOCGRASYNCMAP _IOR('t', 85, int)     /* get receive async map */
  131 #define PPPIOCSRASYNCMAP _IOW('t', 84, int)     /* set receive async map */
  132 #define PPPIOCGMRU      _IOR('t', 83, int)      /* get max receive unit */
  133 #define PPPIOCSMRU      _IOW('t', 82, int)      /* set max receive unit */
  134 #define PPPIOCSMAXCID   _IOW('t', 81, int)      /* set VJ max slot ID */
  135 #define PPPIOCGXASYNCMAP _IOR('t', 80, ext_accm) /* get extended ACCM */
  136 #define PPPIOCSXASYNCMAP _IOW('t', 79, ext_accm) /* set extended ACCM */
  137 #define PPPIOCXFERUNIT  _IO('t', 78)            /* transfer PPP unit */
  138 #define PPPIOCSCOMPRESS _IOW('t', 77, struct ppp_option_data)
  139 #define PPPIOCGNPMODE   _IOWR('t', 76, struct npioctl) /* get NP mode */
  140 #define PPPIOCSNPMODE   _IOW('t', 75, struct npioctl)  /* set NP mode */
  141 #define PPPIOCGIDLE     _IOR('t', 74, struct ppp_idle) /* get idle time */
  142 #ifdef PPP_FILTER
  143 /*
  144  * XXX These are deprecated; they can no longer be used, because they
  145  * XXX don't play well with multiple encaps.  The defs are here so that
  146  * XXX we can return decent errors to old pppds, and so that new pppds
  147  * XXX will work with old kernels.
  148  */
  149 #define PPPIOCSPASS     _IOW('t', 71, struct bpf_program) /* set pass filter */
  150 #define PPPIOCSACTIVE   _IOW('t', 70, struct bpf_program) /* set active filt */
  151 
  152 /*
  153  * Use these instead.
  154  */
  155 #define PPPIOCSIPASS    _IOW('t', 69, struct bpf_program) /* set in pass flt */
  156 #define PPPIOCSOPASS    _IOW('t', 68, struct bpf_program) /* set out pass flt */
  157 #define PPPIOCSIACTIVE  _IOW('t', 67, struct bpf_program) /* set in act flt */
  158 #define PPPIOCSOACTIVE  _IOW('t', 66, struct bpf_program) /* set out act flt */
  159 #endif /* PPP_FILTER */
  160 
  161 /* PPPIOC[GS]MTU are alternatives to SIOC[GS]IFMTU, used under Ultrix */
  162 #define PPPIOCGMTU      _IOR('t', 73, int)      /* get interface MTU */
  163 #define PPPIOCSMTU      _IOW('t', 72, int)      /* set interface MTU */
  164 
  165 /*
  166  * These two are interface ioctls so that pppstats can do them on
  167  * a socket without having to open the serial device.
  168  */
  169 #define SIOCGPPPSTATS   _IOWR('i', 123, struct ifpppstatsreq)
  170 #define SIOCGPPPCSTATS  _IOWR('i', 122, struct ifpppcstatsreq)
  171 
  172 #if !defined(ifr_mtu)
  173 #define ifr_mtu ifr_ifru.ifru_metric
  174 #endif
  175 
  176 #if defined(_KERNEL) || defined(KERNEL)
  177 struct compressor;
  178 int     ppp_register_compressor(struct compressor *, size_t);
  179 int     ppp_unregister_compressor(struct compressor *, size_t);
  180 #endif
  181 #endif /* !_NET_IF_PPP_H_ */

Cache object: 261505cf6a318242975dd45cc30cffbd


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.