pppd: Fix compilation with older glibc or kernel headers (#248)
[ppp.git] / include / net / pppio.h
1 /*
2  * pppio.h - ioctl and other misc. definitions for STREAMS modules.
3  *
4  * Copyright (c) 1994 Paul Mackerras. All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  *
10  * 1. Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  *
13  * 2. Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in
15  *    the documentation and/or other materials provided with the
16  *    distribution.
17  *
18  * 3. The name(s) of the authors of this software must not be used to
19  *    endorse or promote products derived from this software without
20  *    prior written permission.
21  *
22  * 4. Redistributions of any form whatsoever must retain the following
23  *    acknowledgment:
24  *    "This product includes software developed by Paul Mackerras
25  *     <paulus@samba.org>".
26  *
27  * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO
28  * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
29  * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
30  * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
31  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
32  * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
33  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
34  *
35  * $Id: pppio.h,v 1.9 2002/12/06 09:49:15 paulus Exp $
36  */
37
38 #define _PPPIO(n)       (('p' << 8) + (n))
39
40 #define PPPIO_NEWPPA    _PPPIO(130)     /* allocate a new PPP unit */
41 #define PPPIO_GETSTAT   _PPPIO(131)     /* get PPP statistics */
42 #define PPPIO_GETCSTAT  _PPPIO(132)     /* get PPP compression stats */
43 #define PPPIO_MTU       _PPPIO(133)     /* set max transmission unit */
44 #define PPPIO_MRU       _PPPIO(134)     /* set max receive unit */
45 #define PPPIO_CFLAGS    _PPPIO(135)     /* set/clear/get compression flags */
46 #define PPPIO_XCOMP     _PPPIO(136)     /* alloc transmit compressor */
47 #define PPPIO_RCOMP     _PPPIO(137)     /* alloc receive decompressor */
48 #define PPPIO_XACCM     _PPPIO(138)     /* set transmit asyncmap */
49 #define PPPIO_RACCM     _PPPIO(139)     /* set receive asyncmap */
50 #define PPPIO_VJINIT    _PPPIO(140)     /* initialize VJ comp/decomp */
51 #define PPPIO_ATTACH    _PPPIO(141)     /* attach to a ppa (without putmsg) */
52 #define PPPIO_LASTMOD   _PPPIO(142)     /* mark last ppp module */
53 #define PPPIO_GCLEAN    _PPPIO(143)     /* get 8-bit-clean flags */
54 #define PPPIO_DEBUG     _PPPIO(144)     /* request debug information */
55 #define PPPIO_BIND      _PPPIO(145)     /* bind to SAP */
56 #define PPPIO_NPMODE    _PPPIO(146)     /* set mode for handling data pkts */
57 #define PPPIO_GIDLE     _PPPIO(147)     /* get time since last data pkt */
58 #define PPPIO_PASSFILT  _PPPIO(148)     /* set filter for packets to pass */
59 #define PPPIO_ACTIVEFILT _PPPIO(149)    /* set filter for "link active" pkts */
60
61 /*
62  * Values for PPPIO_CFLAGS
63  */
64 #define COMP_AC         0x1             /* compress address/control */
65 #define DECOMP_AC       0x2             /* decompress address/control */
66 #define COMP_PROT       0x4             /* compress PPP protocol */
67 #define DECOMP_PROT     0x8             /* decompress PPP protocol */
68
69 #define COMP_VJC        0x10            /* compress TCP/IP headers */
70 #define COMP_VJCCID     0x20            /* compress connection ID as well */
71 #define DECOMP_VJC      0x40            /* decompress TCP/IP headers */
72 #define DECOMP_VJCCID   0x80            /* accept compressed connection ID */
73
74 #define CCP_ISOPEN      0x100           /* look at CCP packets */
75 #define CCP_ISUP        0x200           /* do packet comp/decomp */
76 #define CCP_ERROR       0x400           /* (status) error in packet decomp */
77 #define CCP_FATALERROR  0x800           /* (status) fatal error ditto */
78 #define CCP_COMP_RUN    0x1000          /* (status) seen CCP ack sent */
79 #define CCP_DECOMP_RUN  0x2000          /* (status) seen CCP ack rcvd */
80
81 /*
82  * Values for 8-bit-clean flags.
83  */
84 #define RCV_B7_0        1               /* have rcvd char with bit 7 = 0 */
85 #define RCV_B7_1        2               /* have rcvd char with bit 7 = 1 */
86 #define RCV_EVNP        4               /* have rcvd char with even parity */
87 #define RCV_ODDP        8               /* have rcvd char with odd parity */
88
89 /*
90  * Values for the first byte of M_CTL messages passed between
91  * PPP modules.
92  */
93 #define PPPCTL_OERROR   0xe0            /* output error [up] */
94 #define PPPCTL_IERROR   0xe1            /* input error (e.g. FCS) [up] */
95 #define PPPCTL_MTU      0xe2            /* set MTU [down] */
96 #define PPPCTL_MRU      0xe3            /* set MRU [down] */
97 #define PPPCTL_UNIT     0xe4            /* note PPP unit number [down] */
98
99 /*
100  * Values for the integer argument to PPPIO_DEBUG.
101  */
102 #define PPPDBG_DUMP     0x10000         /* print out debug info now */
103 #define PPPDBG_LOG      0x100           /* log various things */
104 #define PPPDBG_DRIVER   0               /* identifies ppp driver as target */
105 #define PPPDBG_IF       1               /* identifies ppp network i/f target */
106 #define PPPDBG_COMP     2               /* identifies ppp compression target */
107 #define PPPDBG_AHDLC    3               /* identifies ppp async hdlc target */