1/*
2 * pppio.h - ioctl and other misc. definitions for STREAMS modules.
3 *
4 * Copyright (c) 1994 The Australian National University.
5 * All rights reserved.
6 *
7 * Permission to use, copy, modify, and distribute this software and its
8 * documentation is hereby granted, provided that the above copyright
9 * notice appears in all copies.  This software is provided without any
10 * warranty, express or implied. The Australian National University
11 * makes no representations about the suitability of this software for
12 * any purpose.
13 *
14 * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
15 * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
16 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
17 * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
18 * OF SUCH DAMAGE.
19 *
20 * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
21 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
22 * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
23 * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
24 * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
25 * OR MODIFICATIONS.
26 *
27 * $Id: pppio.h 241182 2011-02-17 21:50:03Z $
28 */
29
30#define _PPPIO(n)	(('p' << 8) + (n))
31
32#define PPPIO_NEWPPA	_PPPIO(130)	/* allocate a new PPP unit */
33#define PPPIO_GETSTAT	_PPPIO(131)	/* get PPP statistics */
34#define PPPIO_GETCSTAT	_PPPIO(132)	/* get PPP compression stats */
35#define PPPIO_MTU	_PPPIO(133)	/* set max transmission unit */
36#define PPPIO_MRU	_PPPIO(134)	/* set max receive unit */
37#define PPPIO_CFLAGS	_PPPIO(135)	/* set/clear/get compression flags */
38#define PPPIO_XCOMP	_PPPIO(136)	/* alloc transmit compressor */
39#define PPPIO_RCOMP	_PPPIO(137)	/* alloc receive decompressor */
40#define PPPIO_XACCM	_PPPIO(138)	/* set transmit asyncmap */
41#define PPPIO_RACCM	_PPPIO(139)	/* set receive asyncmap */
42#define PPPIO_VJINIT	_PPPIO(140)	/* initialize VJ comp/decomp */
43#define PPPIO_ATTACH	_PPPIO(141)	/* attach to a ppa (without putmsg) */
44#define PPPIO_LASTMOD	_PPPIO(142)	/* mark last ppp module */
45#define PPPIO_GCLEAN	_PPPIO(143)	/* get 8-bit-clean flags */
46#define PPPIO_DEBUG	_PPPIO(144)	/* request debug information */
47#define PPPIO_BIND	_PPPIO(145)	/* bind to SAP */
48#define PPPIO_NPMODE	_PPPIO(146)	/* set mode for handling data pkts */
49#define PPPIO_GIDLE	_PPPIO(147)	/* get time since last data pkt */
50#define PPPIO_PASSFILT	_PPPIO(148)	/* set filter for packets to pass */
51#define PPPIO_ACTIVEFILT _PPPIO(149)	/* set filter for "link active" pkts */
52
53/*
54 * Values for PPPIO_CFLAGS
55 */
56#define COMP_AC		0x1		/* compress address/control */
57#define DECOMP_AC	0x2		/* decompress address/control */
58#define COMP_PROT	0x4		/* compress PPP protocol */
59#define DECOMP_PROT	0x8		/* decompress PPP protocol */
60
61#define COMP_VJC	0x10		/* compress TCP/IP headers */
62#define COMP_VJCCID	0x20		/* compress connection ID as well */
63#define DECOMP_VJC	0x40		/* decompress TCP/IP headers */
64#define DECOMP_VJCCID	0x80		/* accept compressed connection ID */
65
66#define CCP_ISOPEN	0x100		/* look at CCP packets */
67#define CCP_ISUP	0x200		/* do packet comp/decomp */
68#define CCP_ERROR	0x400		/* (status) error in packet decomp */
69#define CCP_FATALERROR	0x800		/* (status) fatal error ditto */
70#define CCP_COMP_RUN	0x1000		/* (status) seen CCP ack sent */
71#define CCP_DECOMP_RUN	0x2000		/* (status) seen CCP ack rcvd */
72
73/*
74 * Values for 8-bit-clean flags.
75 */
76#define RCV_B7_0	1		/* have rcvd char with bit 7 = 0 */
77#define RCV_B7_1	2		/* have rcvd char with bit 7 = 1 */
78#define RCV_EVNP	4		/* have rcvd char with even parity */
79#define RCV_ODDP	8		/* have rcvd char with odd parity */
80
81/*
82 * Values for the first byte of M_CTL messages passed between
83 * PPP modules.
84 */
85#define PPPCTL_OERROR	0xe0		/* output error [up] */
86#define PPPCTL_IERROR	0xe1		/* input error (e.g. FCS) [up] */
87#define PPPCTL_MTU	0xe2		/* set MTU [down] */
88#define PPPCTL_MRU	0xe3		/* set MRU [down] */
89#define PPPCTL_UNIT	0xe4		/* note PPP unit number [down] */
90
91/*
92 * Values for the integer argument to PPPIO_DEBUG.
93 */
94#define PPPDBG_DUMP	0x10000		/* print out debug info now */
95#define PPPDBG_LOG	0x100		/* log various things */
96#define PPPDBG_DRIVER	0		/* identifies ppp driver as target */
97#define PPPDBG_IF	1		/* identifies ppp network i/f target */
98#define PPPDBG_COMP	2		/* identifies ppp compression target */
99#define PPPDBG_AHDLC	3		/* identifies ppp async hdlc target */
100