1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
|
/*
* pppio.h - ioctl and other misc. definitions for STREAMS modules.
*
* Copyright 2004 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*
* Copyright (c) 1994 The Australian National University.
* All rights reserved.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation is hereby granted, provided that the above copyright
* notice appears in all copies. This software is provided without any
* warranty, express or implied. The Australian National University
* makes no representations about the suitability of this software for
* any purpose.
*
* IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
* PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
* ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
* THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
* OF SUCH DAMAGE.
*
* THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
* ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
* OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
* OR MODIFICATIONS.
*
* $Id: pppio.h,v 1.8 1996/08/28 06:36:51 paulus Exp $
*/
#ifndef __PPPIO_H
#define __PPPIO_H
#pragma ident "%Z%%M% %I% %E% SMI"
#ifdef __cplusplus
extern "C" {
#endif
#define _PPPIO(n) (('p' << 8) + (n))
#define PPPIO_NEWPPA _PPPIO(130) /* allocate a new PPP unit */
#define PPPIO_GETSTAT _PPPIO(131) /* get PPP statistics */
#define PPPIO_GETCSTAT _PPPIO(132) /* get PPP compression stats */
#define PPPIO_MTU _PPPIO(133) /* set max transmission unit */
#define PPPIO_MRU _PPPIO(134) /* set max receive unit */
#define PPPIO_CFLAGS _PPPIO(135) /* set/clear/get compression flags */
#define PPPIO_XCOMP _PPPIO(136) /* alloc transmit compressor */
#define PPPIO_RCOMP _PPPIO(137) /* alloc receive decompressor */
#define PPPIO_XACCM _PPPIO(138) /* set transmit asyncmap */
#define PPPIO_RACCM _PPPIO(139) /* set receive asyncmap */
#define PPPIO_VJINIT _PPPIO(140) /* initialize VJ comp/decomp */
#define PPPIO_ATTACH _PPPIO(141) /* attach to a ppa (without putmsg) */
#define PPPIO_LASTMOD _PPPIO(142) /* mark last ppp module */
#define PPPIO_GCLEAN _PPPIO(143) /* get 8-bit-clean flags */
#define PPPIO_DEBUG _PPPIO(144) /* request debug information */
#define PPPIO_BIND _PPPIO(145) /* bind to SAP */
#define PPPIO_NPMODE _PPPIO(146) /* set mode for handling data pkts */
#define PPPIO_GIDLE _PPPIO(147) /* get time since last data pkt */
#define PPPIO_PASSFILT _PPPIO(148) /* set filter for packets to pass */
#define PPPIO_ACTIVEFILT _PPPIO(149) /* set filter for "link active" pkts */
#define PPPIO_USETIMESTAMP _PPPIO(150) /* enable packet time-stamp */
#define PPPIO_DETACH _PPPIO(151) /* detach from a ppa (w/o putmsg ) */
#define PPPIO_XFCS _PPPIO(152) /* set transmit FCS type */
#define PPPIO_RFCS _PPPIO(153) /* set receive FCS type */
#define PPPIO_COMPLEV _PPPIO(154) /* set compression effort level */
#define PPPIO_GTYPE _PPPIO(155) /* get existing driver type */
#define PPPIO_MUX _PPPIO(156) /* multiplexed frame */
#define PPPIO_GETSTAT64 _PPPIO(157) /* get PPP 64-bit statistics */
#define PPPIO_BLOCKNP _PPPIO(158) /* block pkts with proto np in kernel */
#define PPPIO_UNBLOCKNP _PPPIO(159) /* unblock pkts with proto np */
/* Values for PPPIO_MUX FLAGS */
#define X_MUXMASK 0x10 /* transmit muxed frame option */
#define R_MUXMASK 0x20 /* receive muxed frame option */
/*
* Values for PPPIO_CFLAGS. Data sent in is u_int32_t val[2], where
* result is newflags = val[0] | (oldflags & ~val[1]). Returned data
* is a single u_int32_t, containing the current flags.
*/
#define COMP_AC 0x1 /* compress address/control */
#define DECOMP_AC 0x2 /* decompress address/control */
#define COMP_PROT 0x4 /* compress PPP protocol */
#define DECOMP_PROT 0x8 /* decompress PPP protocol */
#define COMP_VJC 0x10 /* compress TCP/IP headers */
#define COMP_VJCCID 0x20 /* compress connection ID as well */
#define DECOMP_VJC 0x40 /* decompress TCP/IP headers */
#define DECOMP_VJCCID 0x80 /* accept compressed connection ID */
#define CCP_ISOPEN 0x100 /* look at CCP packets */
#define CCP_ISUP 0x200 /* do packet comp/decomp */
#define CCP_ERROR 0x400 /* (status) error in packet decomp */
#define CCP_FATALERROR 0x800 /* (status) fatal error ditto */
#define CCP_COMP_RUN 0x1000 /* (status) seen CCP ack sent */
#define CCP_DECOMP_RUN 0x2000 /* (status) seen CCP ack rcvd */
/*
* Values for PPPIO_XFCS/PPPIO_RFCS. (Note that we don't support
* simultaneous use of 16 bit and 32 bit CRCs.)
*/
#define PPPFCS_16 0 /* The default, usually; CRC-16 */
#define PPPFCS_32 1 /* CRC-32 */
#define PPPFCS_NONE 2 /* No CRC */
/*
* Values for 8-bit-clean flags.
*/
#define RCV_B7_0 1 /* have rcvd char with bit 7 = 0 */
#define RCV_B7_1 2 /* have rcvd char with bit 7 = 1 */
#define RCV_EVNP 4 /* have rcvd char with even parity */
#define RCV_ODDP 8 /* have rcvd char with odd parity */
/*
* Values for the first byte of M_CTL messages passed between
* PPP modules.
*/
#define PPPCTL_OERROR 0xe0 /* output error [up] */
#define PPPCTL_IERROR 0xe1 /* input error (e.g. FCS) [up] */
#define PPPCTL_MTU 0xe2 /* set MTU [down] */
#define PPPCTL_MRU 0xe3 /* set MRU [down] */
#define PPPCTL_UNIT 0xe4 /* note PPP unit number [down] */
/*
* Values for the u_int32_t argument to PPPIO_DEBUG.
*/
#define PPPDBG_DUMP 0x10000 /* print out debug info now */
#define PPPDBG_LOG 0x100 /* log various things */
#define PPPDBG_DRIVER 0 /* identifies ppp driver as target */
#define PPPDBG_IF 1 /* identifies ppp network i/f target */
#define PPPDBG_COMP 2 /* identifies ppp compression target */
#define PPPDBG_AHDLC 3 /* identifies ppp async hdlc target */
/*
* Values for the u_int32_t return from PPPIO_GTYPE. Only lastmod
* should respond. Current modules return PPPTYP_AHDLC (async
* module), PPPTYP_HC (compression module) and PPPTYP_MUX (PPP
* interface driver).
*/
#define PPPTYP_HDLC 0 /* raw HDLC I/O; no PPP handling */
#define PPPTYP_AHDLC 1 /* async HDLC; has [XR]ACCM */
#define PPPTYP_HC 2 /* HDLC with ACFC and PFC support */
#define PPPTYP_AHC 3 /* async with ACFC and PFC */
#define PPPTYP_MUX 4 /* multiplexor */
#ifdef SOL2
/* Officially allocated module numbers */
#define PPP_MOD_ID 2101 /* PPP multiplexor */
#define COMP_MOD_ID 2102 /* Data and header compression */
#define AHDLC_MOD_ID 2103 /* Asynchronous HDLC-like encapsulation */
#define TUN_MOD_ID 2104 /* Tunneling protocols */
#define MP_MOD_ID 2105 /* Multilink PPP */
#define PPP_DRV_NAME "sppp"
#define AHDLC_MOD_NAME "spppasyn"
#define COMP_MOD_NAME "spppcomp"
#define TUN_MOD_NAME "sppptun"
#define MP_MOD_NAME "spppmp"
#else
#define PPP_MOD_ID 0xb1a6
#define COMP_MOD_ID 0xbadf
#define AHDLC_MOD_ID 0x7d23
#define PPP_DRV_NAME "ppp"
#define AHDLC_MOD_NAME "ppp_ahdl"
#define COMP_MOD_NAME "ppp_comp"
#endif
#define PPP_DEV_NAME "/dev/" PPP_DRV_NAME
#ifdef __cplusplus
}
#endif
#endif /* __PPPIO_H */
|