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 /*      $OpenBSD: if_ppp.h,v 1.10 2022/01/02 22:36:03 jsg Exp $ */
    2 /*      $NetBSD: if_ppp.h,v 1.11 1996/03/15 02:28:05 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 /*
   50  * Packet sizes
   51  */
   52 #define PPP_MTU         1500    /* Default MTU (size of Info field) */
   53 #define PPP_MAXMRU      65000   /* Largest MRU we allow */
   54 
   55 /*
   56  * Bit definitions for flags.
   57  */
   58 #define SC_COMP_PROT    0x00000001      /* protocol compression (output) */
   59 #define SC_COMP_AC      0x00000002      /* header compression (output) */
   60 #define SC_COMP_TCP     0x00000004      /* TCP (VJ) compression (output) */
   61 #define SC_NO_TCP_CCID  0x00000008      /* disable VJ connection-id comp. */
   62 #define SC_REJ_COMP_AC  0x00000010      /* reject adrs/ctrl comp. on input */
   63 #define SC_REJ_COMP_TCP 0x00000020      /* reject TCP (VJ) comp. on input */
   64 #define SC_CCP_OPEN     0x00000040      /* Look at CCP packets */
   65 #define SC_CCP_UP       0x00000080      /* May send/recv compressed packets */
   66 #define SC_DEBUG        0x00010000      /* enable debug messages */
   67 #define SC_LOG_INPKT    0x00020000      /* log contents of good pkts recvd */
   68 #define SC_LOG_OUTPKT   0x00040000      /* log contents of pkts sent */
   69 #define SC_LOG_RAWIN    0x00080000      /* log all chars received */
   70 #define SC_LOG_FLUSH    0x00100000      /* log all chars flushed */
   71 #define SC_RCV_B7_0     0x01000000      /* have rcvd char with bit 7 = 0 */
   72 #define SC_RCV_B7_1     0x02000000      /* have rcvd char with bit 7 = 1 */
   73 #define SC_RCV_EVNP     0x04000000      /* have rcvd char with even parity */
   74 #define SC_RCV_ODDP     0x08000000      /* have rcvd char with odd parity */
   75 #define SC_MASK         0x0fff00ff      /* bits that user can change */
   76 
   77 /*
   78  * State bits in sc_flags, not changeable by user.
   79  */
   80 #define SC_TIMEOUT      0x00000400      /* timeout is currently pending */
   81 #define SC_VJ_RESET     0x00000800      /* need to reset VJ decomp */
   82 #define SC_COMP_RUN     0x00001000      /* compressor has been inited */
   83 #define SC_DECOMP_RUN   0x00002000      /* decompressor has been inited */
   84 #define SC_DC_ERROR     0x00004000      /* non-fatal decomp error detected */
   85 #define SC_DC_FERROR    0x00008000      /* fatal decomp error detected */
   86 #define SC_TBUSY        0x10000000      /* xmitter doesn't need a packet yet */
   87 #define SC_PKTLOST      0x20000000      /* have lost or dropped a packet */
   88 #define SC_FLUSH        0x40000000      /* flush input until next PPP_FLAG */
   89 #define SC_ESCAPED      0x80000000      /* saw a PPP_ESCAPE */
   90 
   91 /*
   92  * Ioctl definitions.
   93  */
   94 
   95 struct npioctl {
   96     int         protocol;       /* PPP protocol, e.g. PPP_IP */
   97     enum NPmode mode;
   98 };
   99 
  100 /* Structure describing a CCP configuration option, for PPPIOCSCOMPRESS */
  101 struct ppp_option_data {
  102         u_char  *ptr;
  103         u_int   length;
  104         int     transmit;
  105 };
  106 
  107 struct ifpppstatsreq {
  108     char ifr_name[IFNAMSIZ];
  109     struct ppp_stats stats;
  110 };
  111 
  112 struct ifpppcstatsreq {
  113     char ifr_name[IFNAMSIZ];
  114     struct ppp_comp_stats stats;
  115 };
  116 
  117 /*
  118  * Ioctl definitions.
  119  */
  120 
  121 #define PPPIOCGFLAGS    _IOR('t', 90, int)      /* get configuration flags */
  122 #define PPPIOCSFLAGS    _IOW('t', 89, int)      /* set configuration flags */
  123 #define PPPIOCGASYNCMAP _IOR('t', 88, int)      /* get async map */
  124 #define PPPIOCSASYNCMAP _IOW('t', 87, int)      /* set async map */
  125 #define PPPIOCGUNIT     _IOR('t', 86, int)      /* get ppp unit number */
  126 #define PPPIOCGRASYNCMAP _IOR('t', 85, int)     /* get receive async map */
  127 #define PPPIOCSRASYNCMAP _IOW('t', 84, int)     /* set receive async map */
  128 #define PPPIOCGMRU      _IOR('t', 83, int)      /* get max receive unit */
  129 #define PPPIOCSMRU      _IOW('t', 82, int)      /* set max receive unit */
  130 #define PPPIOCSMAXCID   _IOW('t', 81, int)      /* set VJ max slot ID */
  131 #define PPPIOCGXASYNCMAP _IOR('t', 80, ext_accm) /* get extended ACCM */
  132 #define PPPIOCSXASYNCMAP _IOW('t', 79, ext_accm) /* set extended ACCM */
  133 #define PPPIOCXFERUNIT  _IO('t', 78)            /* transfer PPP unit */
  134 #define PPPIOCSCOMPRESS _IOW('t', 77, struct ppp_option_data)
  135 #define PPPIOCGNPMODE   _IOWR('t', 76, struct npioctl) /* get NP mode */
  136 #define PPPIOCSNPMODE   _IOW('t', 75, struct npioctl)  /* set NP mode */
  137 #define PPPIOCGIDLE     _IOR('t', 74, struct ppp_idle) /* get idle time */
  138 #define PPPIOCSPASS     _IOW('t', 71, struct bpf_program) /* set pass filter */
  139 #define PPPIOCSACTIVE   _IOW('t', 70, struct bpf_program) /* set active filt */
  140 
  141 /*
  142  * These two are interface ioctls so that pppstats can do them on
  143  * a socket without having to open the serial device.
  144  */
  145 #define SIOCGPPPSTATS   _IOWR('i', 123, struct ifpppstatsreq)
  146 #define SIOCGPPPCSTATS  _IOWR('i', 122, struct ifpppcstatsreq)
  147 
  148 #ifdef _KERNEL
  149 void pppattach(void);
  150 int pppoutput(struct ifnet *, struct mbuf *, struct sockaddr *,
  151                    struct rtentry *);
  152 void pppintr(void);
  153 #endif
  154 #endif /* _NET_IF_PPP_H_ */

Cache object: 6c315980e175424543eab8d0a6a2d655


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