home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / linux / if_ppp.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  6.4 KB  |  159 lines

  1. /*    $Id: if_ppp.h,v 1.21 2000/03/27 06:03:36 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 20050812==
  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. #ifndef _IF_PPP_H_
  36. #define _IF_PPP_H_
  37.  
  38. #include <linux/compiler.h>
  39.  
  40. /*
  41.  * Packet sizes
  42.  */
  43.  
  44. #define    PPP_MTU        1500    /* Default MTU (size of Info field) */
  45. #define PPP_MAXMRU    65000    /* Largest MRU we allow */
  46. #define PROTO_IPX    0x002b    /* protocol numbers */
  47. #define PROTO_DNA_RT    0x0027  /* DNA Routing */
  48.  
  49.  
  50. /*
  51.  * Bit definitions for flags.
  52.  */
  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_ENABLE_IP    0x00000100    /* IP packets may be exchanged */
  63. #define SC_LOOP_TRAFFIC    0x00000200    /* send traffic to pppd */
  64. #define SC_MULTILINK    0x00000400    /* do multilink encapsulation */
  65. #define SC_MP_SHORTSEQ    0x00000800    /* use short MP sequence numbers */
  66. #define SC_COMP_RUN    0x00001000    /* compressor has been inited */
  67. #define SC_DECOMP_RUN    0x00002000    /* decompressor has been inited */
  68. #define SC_MP_XSHORTSEQ    0x00004000    /* transmit short MP seq numbers */
  69. #define SC_DEBUG    0x00010000    /* enable debug messages */
  70. #define SC_LOG_INPKT    0x00020000    /* log contents of good pkts recvd */
  71. #define SC_LOG_OUTPKT    0x00040000    /* log contents of pkts sent */
  72. #define SC_LOG_RAWIN    0x00080000    /* log all chars received */
  73. #define SC_LOG_FLUSH    0x00100000    /* log all chars flushed */
  74. #define    SC_SYNC        0x00200000    /* synchronous serial mode */
  75. #define    SC_MUST_COMP    0x00400000    /* no uncompressed packets may be sent or received */
  76. #define    SC_MASK        0x0f600fff    /* bits that user can change */
  77.  
  78. /* state bits */
  79. #define SC_XMIT_BUSY    0x10000000    /* (used by isdn_ppp?) */
  80. #define SC_RCV_ODDP    0x08000000    /* have rcvd char with odd parity */
  81. #define SC_RCV_EVNP    0x04000000    /* have rcvd char with even parity */
  82. #define SC_RCV_B7_1    0x02000000    /* have rcvd char with bit 7 = 1 */
  83. #define SC_RCV_B7_0    0x01000000    /* have rcvd char with bit 7 = 0 */
  84. #define SC_DC_FERROR    0x00800000    /* fatal decomp error detected */
  85. #define SC_DC_ERROR    0x00400000    /* non-fatal decomp error detected */
  86.  
  87. /*
  88.  * Ioctl definitions.
  89.  */
  90.  
  91. struct npioctl {
  92.     int        protocol;    /* PPP protocol, e.g. PPP_IP */
  93.     enum NPmode    mode;
  94. };
  95.  
  96. /* Structure describing a CCP configuration option, for PPPIOCSCOMPRESS */
  97. struct ppp_option_data {
  98.     __u8    __user *ptr;
  99.     __u32    length;
  100.     int    transmit;
  101. };
  102.  
  103. struct ifpppstatsreq {
  104.     struct ifreq     b;
  105.     struct ppp_stats stats;            /* statistic information */
  106. };
  107.  
  108. struct ifpppcstatsreq {
  109.     struct ifreq          b;
  110.     struct ppp_comp_stats stats;
  111. };
  112.  
  113. #define ifr__name       b.ifr_ifrn.ifrn_name
  114. #define stats_ptr       b.ifr_ifru.ifru_data
  115.  
  116. /*
  117.  * Ioctl definitions.
  118.  */
  119.  
  120. #define    PPPIOCGFLAGS    _IOR('t', 90, int)    /* get configuration flags */
  121. #define    PPPIOCSFLAGS    _IOW('t', 89, int)    /* set configuration flags */
  122. #define    PPPIOCGASYNCMAP    _IOR('t', 88, int)    /* get async map */
  123. #define    PPPIOCSASYNCMAP    _IOW('t', 87, int)    /* set async map */
  124. #define    PPPIOCGUNIT    _IOR('t', 86, int)    /* get ppp unit number */
  125. #define    PPPIOCGRASYNCMAP _IOR('t', 85, int)    /* get receive async map */
  126. #define    PPPIOCSRASYNCMAP _IOW('t', 84, int)    /* set receive async map */
  127. #define    PPPIOCGMRU    _IOR('t', 83, int)    /* get max receive unit */
  128. #define    PPPIOCSMRU    _IOW('t', 82, int)    /* set max receive unit */
  129. #define    PPPIOCSMAXCID    _IOW('t', 81, int)    /* set VJ max slot ID */
  130. #define PPPIOCGXASYNCMAP _IOR('t', 80, ext_accm) /* get extended ACCM */
  131. #define PPPIOCSXASYNCMAP _IOW('t', 79, ext_accm) /* set extended ACCM */
  132. #define PPPIOCXFERUNIT    _IO('t', 78)        /* transfer PPP unit */
  133. #define PPPIOCSCOMPRESS    _IOW('t', 77, struct ppp_option_data)
  134. #define PPPIOCGNPMODE    _IOWR('t', 76, struct npioctl) /* get NP mode */
  135. #define PPPIOCSNPMODE    _IOW('t', 75, struct npioctl)  /* set NP mode */
  136. #define PPPIOCSPASS    _IOW('t', 71, struct sock_fprog) /* set pass filter */
  137. #define PPPIOCSACTIVE    _IOW('t', 70, struct sock_fprog) /* set active filt */
  138. #define PPPIOCGDEBUG    _IOR('t', 65, int)    /* Read debug level */
  139. #define PPPIOCSDEBUG    _IOW('t', 64, int)    /* Set debug level */
  140. #define PPPIOCGIDLE    _IOR('t', 63, struct ppp_idle) /* get idle time */
  141. #define PPPIOCNEWUNIT    _IOWR('t', 62, int)    /* create new ppp unit */
  142. #define PPPIOCATTACH    _IOW('t', 61, int)    /* attach to ppp unit */
  143. #define PPPIOCDETACH    _IOW('t', 60, int)    /* detach from ppp unit/chan */
  144. #define PPPIOCSMRRU    _IOW('t', 59, int)    /* set multilink MRU */
  145. #define PPPIOCCONNECT    _IOW('t', 58, int)    /* connect channel to unit */
  146. #define PPPIOCDISCONN    _IO('t', 57)        /* disconnect channel */
  147. #define PPPIOCATTCHAN    _IOW('t', 56, int)    /* attach to ppp channel */
  148. #define PPPIOCGCHAN    _IOR('t', 55, int)    /* get ppp channel number */
  149.  
  150. #define SIOCGPPPSTATS   (SIOCDEVPRIVATE + 0)
  151. #define SIOCGPPPVER     (SIOCDEVPRIVATE + 1)    /* NEVER change this!! */
  152. #define SIOCGPPPCSTATS  (SIOCDEVPRIVATE + 2)
  153.  
  154. #if !defined(ifr_mtu)
  155. #define ifr_mtu    ifr_ifru.ifru_metric
  156. #endif
  157.  
  158. #endif /* _IF_PPP_H_ */
  159.