protect against multiple inclusion; add more protocols
[ppp.git] / include / net / ppp_str.h
1 /*
2   ppp_str.h - streams version include file
3
4   Copyright (C) 1990 Brad K. Clements, All Rights Reserved,
5   See copyright statement in NOTES
6 */
7
8 #include        <sys/ioccom.h>
9
10 /*
11  * Packet sizes
12  */
13 #define PPP_MTU         1500    /* Default MTU (size of Info field) */
14 #define PPP_MAXMRU      65000   /* Largest MRU we allow */
15
16 /*
17  * Definitions for ioctls.
18  */
19 struct npioctl {
20     int         protocol;       /* PPP procotol, e.g. PPP_IP */
21     enum NPmode mode;
22 };
23
24 /* Structure describing a CCP configuration option, for SIOCSCOMPRESS */
25 #define MAX_PPP_OPTION  32
26 struct ppp_option_data {
27         u_int   length;
28         int     transmit;
29         u_char  opt_data[MAX_PPP_OPTION];
30 };
31
32 struct ifpppstatsreq {
33     char ifr_name[IFNAMSIZ];
34     struct ppp_stats stats;
35 };
36
37 /*
38  * Ioctl definitions.
39  */
40
41 #ifdef  __STDC__
42 #define SIOCSIFCOMPAC   _IOW('p', 130, char)
43 #define SIOCSIFCOMPPROT _IOW('p', 131, char)
44 #define SIOCSIFMRU      _IOW('p', 132, int)     /* set max receive unit */
45 #define SIOCGIFMRU      _IOR('p', 133, int)     /* get max receive unit */
46 #define SIOCGIFASYNCMAP _IOR('p', 134, u_int32_t) /* get transmit async map */
47 #define SIOCSIFASYNCMAP _IOW('p', 135, u_int32_t) /* set transmit async map */
48 #define SIOCGETU        _IOR('p', 136, int)     /* get unit number */
49 #define SIOCSIFVJCOMP   _IOW('p', 137, char)    /* enable/disable VJ comp */
50 #define SIOCGIFDEBUG    _IOR('p', 138, int)     /* get debug flags */
51 #define SIOCSIFDEBUG    _IOW('p', 139, int)     /* set debug flags */
52 #define SIOCGIFRASYNCMAP _IOR('p', 140, u_int32_t) /* get receive async map */
53 #define SIOCSIFRASYNCMAP _IOW('p', 141, u_int32_t) /* set receive async map */
54 #define SIOCGIFXASYNCMAP _IOR('p', 142, ext_accm)  /* get extended xmit map */
55 #define SIOCSIFXASYNCMAP _IOW('p', 143, ext_accm)  /* set extended xmit map */
56 #define SIOCSETU        _IOW('p', 144, int)     /* set unit number */
57 #define SIOCSETNPMODE   _IOW('p', 145, struct npioctl)  /* set NP mode */
58 #define SIOCGETNPMODE   _IOWR('p', 146, struct npioctl) /* get NP mode */
59 #define SIOCGIFCOMP     _IOR('p', 148, int)     /* get CCP kernel flags */
60 #define SIOCSIFCOMP     _IOW('p', 149, int)     /* set CCP closed/open/up */
61 #define SIOCSCOMPRESS   _IOW('p', 150, struct ppp_option_data)
62
63 #define SIOCGPPPSTATS   _IOWR('i', 123, struct ifpppstatsreq)
64
65 #else
66 /* traditional C compiler */
67 #define SIOCSIFCOMPAC   _IOW(p, 130, char)
68 #define SIOCSIFCOMPPROT _IOW(p, 131, char)
69 #define SIOCSIFMRU      _IOW(p, 132, int)       /* set max receive unit */
70 #define SIOCGIFMRU      _IOR(p, 133, int)       /* get max receive unit */
71 #define SIOCGIFASYNCMAP _IOR(p, 134, u_int32_t) /* get transmit async map */
72 #define SIOCSIFASYNCMAP _IOW(p, 135, u_int32_t) /* set transmit async map */
73 #define SIOCGETU        _IOR(p, 136, int)       /* get unit number */
74 #define SIOCSIFVJCOMP   _IOW(p, 137, char)      /* enable/disable VJ comp */
75 #define SIOCGIFDEBUG    _IOR(p, 138, int)       /* get debug flags */
76 #define SIOCSIFDEBUG    _IOW(p, 139, int)       /* set debug flags */
77 #define SIOCGIFRASYNCMAP _IOR(p, 140, u_int32_t) /* get receive async map */
78 #define SIOCSIFRASYNCMAP _IOW(p, 141, u_int32_t) /* set receive async map */
79 #define SIOCGIFXASYNCMAP _IOR(p, 142, ext_accm) /* get extended xmit map */
80 #define SIOCSIFXASYNCMAP _IOW(p, 143, ext_accm) /* set extended xmit map */
81 #define SIOCSETU        _IOW(p, 144, int)       /* set unit number */
82 #define SIOCSETNPMODE   _IOW(p, 145, struct npioctl)    /* set NP mode */
83 #define SIOCGETNPMODE   _IOWR(p, 146, struct npioctl)   /* get NP mode */
84 #define SIOCGIFCOMP     _IOR(p, 148, int)       /* get CCP kernel flags */
85 #define SIOCSIFCOMP     _IOW(p, 149, int)       /* set CCP closed/open/up */
86 #define SIOCSCOMPRESS   _IOW(p, 150, struct ppp_option_data)
87
88 #define SIOCGPPPSTATS   _IOWR(i, 123, struct ifpppstatsreq)
89 #endif
90
91 /*
92  * Note on SIOCSIFVJCOMP: the parameter is now encoded as follows.
93  * Bit 0 = overall VJ enable, bit 1 = don't compress connection ID,
94  * bit 2 = receiver rejects VJ compression,
95  * bits 4--7 = maximum slot ID (0 => use default (15)).
96  */
97
98 /* Bits for SIOCGIFDEBUG */
99 #define PAI_FLAGS_B7_0          0x100
100 #define PAI_FLAGS_B7_1          0x200
101 #define PAI_FLAGS_PAR_EVEN      0x400
102 #define PAI_FLAGS_PAR_ODD       0x800
103 #define PAI_FLAGS_HIBITS        0xF00
104
105 /* Bit definitions for SIOC[GS]IFCOMP. */
106 #define CCP_ISOPEN      1
107 #define CCP_ISUP        2
108 #define CCP_COMP_RUN    4
109 #define CCP_DECOMP_RUN  8
110 #define CCP_ERROR       0x10
111 #define CCP_FATALERROR  0x20
112
113 /* defines for streams modules */
114 #define       IF_INPUT_ERROR  0xe1
115 #define       IF_OUTPUT_ERROR 0xe2