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