home *** CD-ROM | disk | FTP | other *** search
/ Big Green CD 8 / BGCD_8_Dev.iso / NEXTSTEP / Connectivity / GateKeeper-2.1 / net / if_ppp.h next >
Encoding:
C/C++ Source or Header  |  1995-04-23  |  5.1 KB  |  131 lines

  1. /*    $Id: if_ppp.h,v 1.12 1995/04/24 02:40:23 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. #ifndef _IF_PPP_H_
  23. #define _IF_PPP_H_
  24.  
  25. /*
  26.  * Packet sizes
  27.  */
  28. #define    PPP_MTU        1500    /* Default MTU (size of Info field) */
  29. #define PPP_MAXMRU    65000    /* Largest MRU we allow */
  30.  
  31. /*
  32.  * Bit definitions for flags.
  33.  */
  34. #define SC_COMP_PROT    0x00000001    /* protocol compression (output) */
  35. #define SC_COMP_AC    0x00000002    /* header compression (output) */
  36. #define    SC_COMP_TCP    0x00000004    /* TCP (VJ) compression (output) */
  37. #define SC_NO_TCP_CCID    0x00000008    /* disable VJ connection-id comp. */
  38. #define SC_REJ_COMP_AC    0x00000010    /* reject adrs/ctrl comp. on input */
  39. #define SC_REJ_COMP_TCP    0x00000020    /* reject TCP (VJ) comp. on input */
  40. #define SC_CCP_OPEN    0x00000040    /* Look at CCP packets */
  41. #define SC_CCP_UP    0x00000080    /* May send/recv compressed packets */
  42. #define SC_DEBUG    0x00010000    /* enable debug messages */
  43. #define SC_LOG_INPKT    0x00020000    /* log contents of good pkts recvd */
  44. #define SC_LOG_OUTPKT    0x00040000    /* log contents of pkts sent */
  45. #define SC_LOG_RAWIN    0x00080000    /* log all chars received */
  46. #define SC_LOG_FLUSH    0x00100000    /* log all chars flushed */
  47. #define SC_RCV_B7_0    0x01000000    /* have rcvd char with bit 7 = 0 */
  48. #define SC_RCV_B7_1    0x02000000    /* have rcvd char with bit 7 = 1 */
  49. #define SC_RCV_EVNP    0x04000000    /* have rcvd char with even parity */
  50. #define SC_RCV_ODDP    0x08000000    /* have rcvd char with odd parity */
  51. #define    SC_MASK        0x0fff00ff    /* bits that user can change */
  52.  
  53. /*
  54.  * State bits in sc_flags, not changeable by user.
  55.  */
  56. #define SC_TIMEOUT    0x00000400    /* timeout is currently pending */
  57. #define SC_VJ_RESET    0x00000800    /* need to reset VJ decomp */
  58. #define SC_COMP_RUN    0x00001000    /* compressor has been inited */
  59. #define SC_DECOMP_RUN    0x00002000    /* decompressor has been inited */
  60. #define SC_DC_ERROR    0x00004000    /* non-fatal decomp error detected */
  61. #define SC_DC_FERROR    0x00008000    /* fatal decomp error detected */
  62. #define SC_TBUSY    0x10000000    /* xmitter doesn't need a packet yet */
  63. #define SC_PKTLOST    0x20000000    /* have lost or dropped a packet */
  64. #define    SC_FLUSH    0x40000000    /* flush input until next PPP_FLAG */
  65. #define    SC_ESCAPED    0x80000000    /* saw a PPP_ESCAPE */
  66.  
  67. /*
  68.  * Ioctl definitions.
  69.  */
  70.  
  71. struct npioctl {
  72.     int        protocol;    /* PPP procotol, e.g. PPP_IP */
  73.     enum NPmode    mode;
  74. };
  75.  
  76. /* Structure describing a CCP configuration option, for PPPIOCSCOMPRESS */
  77. struct ppp_option_data {
  78.     u_char    *ptr;
  79.     u_int    length;
  80.     int    transmit;
  81. };
  82.  
  83. struct ifpppstatsreq {
  84.     char ifr_name[IFNAMSIZ];
  85.     struct ppp_stats stats;
  86. };
  87.  
  88. struct ifpppcstatsreq {
  89.     char ifr_name[IFNAMSIZ];
  90.     struct ppp_comp_stats stats;
  91. };
  92.  
  93. /*
  94.  * Ioctl definitions.
  95.  */
  96.  
  97. #define    PPPIOCGFLAGS    _IOR('t', 90, int)    /* get configuration flags */
  98. #define    PPPIOCSFLAGS    _IOW('t', 89, int)    /* set configuration flags */
  99. #define    PPPIOCGASYNCMAP    _IOR('t', 88, int)    /* get async map */
  100. #define    PPPIOCSASYNCMAP    _IOW('t', 87, int)    /* set async map */
  101. #define    PPPIOCGUNIT    _IOR('t', 86, int)    /* get ppp unit number */
  102. #define    PPPIOCGRASYNCMAP _IOR('t', 85, int)    /* get receive async map */
  103. #define    PPPIOCSRASYNCMAP _IOW('t', 84, int)    /* set receive async map */
  104. #define    PPPIOCGMRU    _IOR('t', 83, int)    /* get max receive unit */
  105. #define    PPPIOCSMRU    _IOW('t', 82, int)    /* set max receive unit */
  106. #define    PPPIOCSMAXCID    _IOW('t', 81, int)    /* set VJ max slot ID */
  107. #define PPPIOCGXASYNCMAP _IOR('t', 80, ext_accm) /* get extended ACCM */
  108. #define PPPIOCSXASYNCMAP _IOW('t', 79, ext_accm) /* set extended ACCM */
  109. #define PPPIOCXFERUNIT    _IO('t', 78)        /* transfer PPP unit */
  110. #define PPPIOCSCOMPRESS    _IOW('t', 77, struct ppp_option_data)
  111. #define PPPIOCGNPMODE    _IOWR('t', 76, struct npioctl) /* get NP mode */
  112. #define PPPIOCSNPMODE    _IOW('t', 75, struct npioctl)  /* set NP mode */
  113. #define PPPIOCGIDLE    _IOR('t', 74, struct ppp_idle) /* get idle time */
  114.  
  115. /* PPPIOC[GS]MTU are alternatives to SIOC[GS]IFMTU, used under Ultrix */
  116. #define PPPIOCGMTU    _IOR('t', 73, int)    /* get interface MTU */
  117. #define PPPIOCSMTU    _IOW('t', 72, int)    /* set interface MTU */
  118.  
  119. /*
  120.  * These two are interface ioctls so that pppstats can do them on
  121.  * a socket without having to open the serial device.
  122.  */
  123. #define SIOCGPPPSTATS    _IOWR('i', 123, struct ifpppstatsreq)
  124. #define SIOCGPPPCSTATS    _IOWR('i', 122, struct ifpppcstatsreq)
  125.  
  126. #if !defined(ifr_mtu)
  127. #define ifr_mtu    ifr_ifru.ifru_metric
  128. #endif
  129.  
  130. #endif /* _IF_PPP_H_ */
  131.