| 1 | 1325 | phoenix | /*      From: if_ppp.h,v 1.3 1995/06/12 11:36:50 paulus Exp */
 | 
      
         | 2 |  |  |  
 | 
      
         | 3 |  |  | /*
 | 
      
         | 4 |  |  |  * if_ppp.h - Point-to-Point Protocol definitions.
 | 
      
         | 5 |  |  |  *
 | 
      
         | 6 |  |  |  * Copyright (c) 1989 Carnegie Mellon University.
 | 
      
         | 7 |  |  |  * All rights reserved.
 | 
      
         | 8 |  |  |  *
 | 
      
         | 9 |  |  |  * Redistribution and use in source and binary forms are permitted
 | 
      
         | 10 |  |  |  * provided that the above copyright notice and this paragraph are
 | 
      
         | 11 |  |  |  * duplicated in all such forms and that any documentation,
 | 
      
         | 12 |  |  |  * advertising materials, and other materials related to such
 | 
      
         | 13 |  |  |  * distribution and use acknowledge that the software was developed
 | 
      
         | 14 |  |  |  * by Carnegie Mellon University.  The name of the
 | 
      
         | 15 |  |  |  * University may not be used to endorse or promote products derived
 | 
      
         | 16 |  |  |  * from this software without specific prior written permission.
 | 
      
         | 17 |  |  |  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
 | 
      
         | 18 |  |  |  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
 | 
      
         | 19 |  |  |  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 | 
      
         | 20 |  |  |  *
 | 
      
         | 21 |  |  |  */
 | 
      
         | 22 |  |  |  
 | 
      
         | 23 |  |  | /*
 | 
      
         | 24 |  |  |  *  ==FILEVERSION 960926==
 | 
      
         | 25 |  |  |  *
 | 
      
         | 26 |  |  |  *  NOTE TO MAINTAINERS:
 | 
      
         | 27 |  |  |  *     If you modify this file at all, please set the above date.
 | 
      
         | 28 |  |  |  *     if_ppp.h is shipped with a PPP distribution as well as with the kernel;
 | 
      
         | 29 |  |  |  *     if everyone increases the FILEVERSION number above, then scripts
 | 
      
         | 30 |  |  |  *     can do the right thing when deciding whether to install a new if_ppp.h
 | 
      
         | 31 |  |  |  *     file.  Don't change the format of that line otherwise, so the
 | 
      
         | 32 |  |  |  *     installation script can recognize it.
 | 
      
         | 33 |  |  |  */
 | 
      
         | 34 |  |  |  
 | 
      
         | 35 |  |  |  
 | 
      
         | 36 |  |  | #ifndef __NET_IF_PPP_H
 | 
      
         | 37 |  |  | #define __NET_IF_PPP_H 1
 | 
      
         | 38 |  |  |  
 | 
      
         | 39 |  |  | #include <sys/types.h>
 | 
      
         | 40 |  |  | #include <sys/cdefs.h>
 | 
      
         | 41 |  |  |  
 | 
      
         | 42 |  |  | #include <net/if.h>
 | 
      
         | 43 |  |  | #include <sys/ioctl.h>
 | 
      
         | 44 |  |  | #include <net/ppp_defs.h>
 | 
      
         | 45 |  |  |  
 | 
      
         | 46 |  |  | __BEGIN_DECLS
 | 
      
         | 47 |  |  |  
 | 
      
         | 48 |  |  | /*
 | 
      
         | 49 |  |  |  * Packet sizes
 | 
      
         | 50 |  |  |  */
 | 
      
         | 51 |  |  |  
 | 
      
         | 52 |  |  | #define PPP_MTU         1500    /* Default MTU (size of Info field) */
 | 
      
         | 53 |  |  | #define PPP_MAXMRU      65000   /* Largest MRU we allow */
 | 
      
         | 54 |  |  | #define PPP_VERSION     "2.2.0"
 | 
      
         | 55 |  |  | #define PPP_MAGIC       0x5002  /* Magic value for the ppp structure */
 | 
      
         | 56 |  |  | #define PROTO_IPX       0x002b  /* protocol numbers */
 | 
      
         | 57 |  |  | #define PROTO_DNA_RT    0x0027  /* DNA Routing */
 | 
      
         | 58 |  |  |  
 | 
      
         | 59 |  |  |  
 | 
      
         | 60 |  |  | /*
 | 
      
         | 61 |  |  |  * Bit definitions for flags.
 | 
      
         | 62 |  |  |  */
 | 
      
         | 63 |  |  |  
 | 
      
         | 64 |  |  | #define SC_COMP_PROT    0x00000001      /* protocol compression (output) */
 | 
      
         | 65 |  |  | #define SC_COMP_AC      0x00000002      /* header compression (output) */
 | 
      
         | 66 |  |  | #define SC_COMP_TCP     0x00000004      /* TCP (VJ) compression (output) */
 | 
      
         | 67 |  |  | #define SC_NO_TCP_CCID  0x00000008      /* disable VJ connection-id comp. */
 | 
      
         | 68 |  |  | #define SC_REJ_COMP_AC  0x00000010      /* reject adrs/ctrl comp. on input */
 | 
      
         | 69 |  |  | #define SC_REJ_COMP_TCP 0x00000020      /* reject TCP (VJ) comp. on input */
 | 
      
         | 70 |  |  | #define SC_CCP_OPEN     0x00000040      /* Look at CCP packets */
 | 
      
         | 71 |  |  | #define SC_CCP_UP       0x00000080      /* May send/recv compressed packets */
 | 
      
         | 72 |  |  | #define SC_ENABLE_IP    0x00000100      /* IP packets may be exchanged */
 | 
      
         | 73 |  |  | #define SC_COMP_RUN     0x00001000      /* compressor has been inited */
 | 
      
         | 74 |  |  | #define SC_DECOMP_RUN   0x00002000      /* decompressor has been inited */
 | 
      
         | 75 |  |  | #define SC_DEBUG        0x00010000      /* enable debug messages */
 | 
      
         | 76 |  |  | #define SC_LOG_INPKT    0x00020000      /* log contents of good pkts recvd */
 | 
      
         | 77 |  |  | #define SC_LOG_OUTPKT   0x00040000      /* log contents of pkts sent */
 | 
      
         | 78 |  |  | #define SC_LOG_RAWIN    0x00080000      /* log all chars received */
 | 
      
         | 79 |  |  | #define SC_LOG_FLUSH    0x00100000      /* log all chars flushed */
 | 
      
         | 80 |  |  | #define SC_MASK         0x0fE0ffff      /* bits that user can change */
 | 
      
         | 81 |  |  |  
 | 
      
         | 82 |  |  | /* state bits */
 | 
      
         | 83 |  |  | #define SC_ESCAPED      0x80000000      /* saw a PPP_ESCAPE */
 | 
      
         | 84 |  |  | #define SC_FLUSH        0x40000000      /* flush input until next PPP_FLAG */
 | 
      
         | 85 |  |  | #define SC_VJ_RESET     0x20000000      /* Need to reset the VJ decompressor */
 | 
      
         | 86 |  |  | #define SC_XMIT_BUSY    0x10000000      /* ppp_write_wakeup is active */
 | 
      
         | 87 |  |  | #define SC_RCV_ODDP     0x08000000      /* have rcvd char with odd parity */
 | 
      
         | 88 |  |  | #define SC_RCV_EVNP     0x04000000      /* have rcvd char with even parity */
 | 
      
         | 89 |  |  | #define SC_RCV_B7_1     0x02000000      /* have rcvd char with bit 7 = 1 */
 | 
      
         | 90 |  |  | #define SC_RCV_B7_0     0x01000000      /* have rcvd char with bit 7 = 0 */
 | 
      
         | 91 |  |  | #define SC_DC_FERROR    0x00800000      /* fatal decomp error detected */
 | 
      
         | 92 |  |  | #define SC_DC_ERROR     0x00400000      /* non-fatal decomp error detected */
 | 
      
         | 93 |  |  |  
 | 
      
         | 94 |  |  | /*
 | 
      
         | 95 |  |  |  * Ioctl definitions.
 | 
      
         | 96 |  |  |  */
 | 
      
         | 97 |  |  |  
 | 
      
         | 98 |  |  | struct npioctl {
 | 
      
         | 99 |  |  |     int         protocol;       /* PPP protocol, e.g. PPP_IP */
 | 
      
         | 100 |  |  |     enum NPmode mode;
 | 
      
         | 101 |  |  | };
 | 
      
         | 102 |  |  |  
 | 
      
         | 103 |  |  | /* Structure describing a CCP configuration option, for PPPIOCSCOMPRESS */
 | 
      
         | 104 |  |  | struct ppp_option_data {
 | 
      
         | 105 |  |  |         u_int8_t  *ptr;
 | 
      
         | 106 |  |  |         u_int32_t length;
 | 
      
         | 107 |  |  |         int       transmit;
 | 
      
         | 108 |  |  | };
 | 
      
         | 109 |  |  |  
 | 
      
         | 110 |  |  | struct ifpppstatsreq {
 | 
      
         | 111 |  |  |   struct ifreq     b;
 | 
      
         | 112 |  |  |   struct ppp_stats stats;                       /* statistic information */
 | 
      
         | 113 |  |  | };
 | 
      
         | 114 |  |  |  
 | 
      
         | 115 |  |  | struct ifpppcstatsreq {
 | 
      
         | 116 |  |  |   struct ifreq          b;
 | 
      
         | 117 |  |  |   struct ppp_comp_stats stats;
 | 
      
         | 118 |  |  | };
 | 
      
         | 119 |  |  |  
 | 
      
         | 120 |  |  | #define ifr__name       b.ifr_ifrn.ifrn_name
 | 
      
         | 121 |  |  | #define stats_ptr       b.ifr_ifru.ifru_data
 | 
      
         | 122 |  |  |  
 | 
      
         | 123 |  |  | /*
 | 
      
         | 124 |  |  |  * Ioctl definitions.
 | 
      
         | 125 |  |  |  */
 | 
      
         | 126 |  |  |  
 | 
      
         | 127 |  |  | #define PPPIOCGFLAGS    _IOR('t', 90, int)      /* get configuration flags */
 | 
      
         | 128 |  |  | #define PPPIOCSFLAGS    _IOW('t', 89, int)      /* set configuration flags */
 | 
      
         | 129 |  |  | #define PPPIOCGASYNCMAP _IOR('t', 88, int)      /* get async map */
 | 
      
         | 130 |  |  | #define PPPIOCSASYNCMAP _IOW('t', 87, int)      /* set async map */
 | 
      
         | 131 |  |  | #define PPPIOCGUNIT     _IOR('t', 86, int)      /* get ppp unit number */
 | 
      
         | 132 |  |  | #define PPPIOCGRASYNCMAP _IOR('t', 85, int)     /* get receive async map */
 | 
      
         | 133 |  |  | #define PPPIOCSRASYNCMAP _IOW('t', 84, int)     /* set receive async map */
 | 
      
         | 134 |  |  | #define PPPIOCGMRU      _IOR('t', 83, int)      /* get max receive unit */
 | 
      
         | 135 |  |  | #define PPPIOCSMRU      _IOW('t', 82, int)      /* set max receive unit */
 | 
      
         | 136 |  |  | #define PPPIOCSMAXCID   _IOW('t', 81, int)      /* set VJ max slot ID */
 | 
      
         | 137 |  |  | #define PPPIOCGXASYNCMAP _IOR('t', 80, ext_accm) /* get extended ACCM */
 | 
      
         | 138 |  |  | #define PPPIOCSXASYNCMAP _IOW('t', 79, ext_accm) /* set extended ACCM */
 | 
      
         | 139 |  |  | #define PPPIOCXFERUNIT  _IO('t', 78)            /* transfer PPP unit */
 | 
      
         | 140 |  |  | #define PPPIOCSCOMPRESS _IOW('t', 77, struct ppp_option_data)
 | 
      
         | 141 |  |  | #define PPPIOCGNPMODE   _IOWR('t', 76, struct npioctl) /* get NP mode */
 | 
      
         | 142 |  |  | #define PPPIOCSNPMODE   _IOW('t', 75, struct npioctl)  /* set NP mode */
 | 
      
         | 143 |  |  | #define PPPIOCGDEBUG    _IOR('t', 65, int)      /* Read debug level */
 | 
      
         | 144 |  |  | #define PPPIOCSDEBUG    _IOW('t', 64, int)      /* Set debug level */
 | 
      
         | 145 |  |  | #define PPPIOCGIDLE     _IOR('t', 63, struct ppp_idle) /* get idle time */
 | 
      
         | 146 |  |  |  
 | 
      
         | 147 |  |  | #define SIOCGPPPSTATS   (SIOCDEVPRIVATE + 0)
 | 
      
         | 148 |  |  | #define SIOCGPPPVER     (SIOCDEVPRIVATE + 1)  /* NEVER change this!! */
 | 
      
         | 149 |  |  | #define SIOCGPPPCSTATS  (SIOCDEVPRIVATE + 2)
 | 
      
         | 150 |  |  |  
 | 
      
         | 151 |  |  | #if !defined(ifr_mtu)
 | 
      
         | 152 |  |  | #define ifr_mtu ifr_ifru.ifru_metric
 | 
      
         | 153 |  |  | #endif
 | 
      
         | 154 |  |  |  
 | 
      
         | 155 |  |  | __END_DECLS
 | 
      
         | 156 |  |  |  
 | 
      
         | 157 |  |  | #endif /* net/if_ppp.h */
 |