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