Rev 422 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
422 | giacomo | 1 | /* $Id: if_ppp.h,v 1.1 2004-01-28 15:25:35 giacomo Exp $ */ |
2 | |||
3 | /* |
||
4 | * if_ppp.h - Point-to-Point Protocol definitions. |
||
5 | * |
||
6 | * Copyright (c) 1989 Carnegie Mellon University. |
||
7 | * All rights reserved. |
||
8 | * |
||
9 | * Redistribution and use in source and binary forms are permitted |
||
10 | * provided that the above copyright notice and this paragraph are |
||
11 | * duplicated in all such forms and that any documentation, |
||
12 | * advertising materials, and other materials related to such |
||
13 | * distribution and use acknowledge that the software was developed |
||
14 | * by Carnegie Mellon University. The name of the |
||
15 | * University may not be used to endorse or promote products derived |
||
16 | * from this software without specific prior written permission. |
||
17 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR |
||
18 | * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED |
||
19 | * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
||
20 | * |
||
21 | */ |
||
22 | |||
23 | /* |
||
24 | * ==FILEVERSION 20000724== |
||
25 | * |
||
26 | * NOTE TO MAINTAINERS: |
||
27 | * If you modify this file at all, please set the above date. |
||
28 | * if_ppp.h is shipped with a PPP distribution as well as with the kernel; |
||
29 | * if everyone increases the FILEVERSION number above, then scripts |
||
30 | * can do the right thing when deciding whether to install a new if_ppp.h |
||
31 | * file. Don't change the format of that line otherwise, so the |
||
32 | * installation script can recognize it. |
||
33 | */ |
||
34 | |||
35 | #ifndef _IF_PPP_H_ |
||
36 | #define _IF_PPP_H_ |
||
37 | |||
38 | /* |
||
39 | * Packet sizes |
||
40 | */ |
||
41 | |||
42 | #define PPP_MTU 1500 /* Default MTU (size of Info field) */ |
||
43 | #define PPP_MAXMRU 65000 /* Largest MRU we allow */ |
||
44 | #define PROTO_IPX 0x002b /* protocol numbers */ |
||
45 | #define PROTO_DNA_RT 0x0027 /* DNA Routing */ |
||
46 | |||
47 | |||
48 | /* |
||
49 | * Bit definitions for flags. |
||
50 | */ |
||
51 | |||
52 | #define SC_COMP_PROT 0x00000001 /* protocol compression (output) */ |
||
53 | #define SC_COMP_AC 0x00000002 /* header compression (output) */ |
||
54 | #define SC_COMP_TCP 0x00000004 /* TCP (VJ) compression (output) */ |
||
55 | #define SC_NO_TCP_CCID 0x00000008 /* disable VJ connection-id comp. */ |
||
56 | #define SC_REJ_COMP_AC 0x00000010 /* reject adrs/ctrl comp. on input */ |
||
57 | #define SC_REJ_COMP_TCP 0x00000020 /* reject TCP (VJ) comp. on input */ |
||
58 | #define SC_CCP_OPEN 0x00000040 /* Look at CCP packets */ |
||
59 | #define SC_CCP_UP 0x00000080 /* May send/recv compressed packets */ |
||
60 | #define SC_ENABLE_IP 0x00000100 /* IP packets may be exchanged */ |
||
61 | #define SC_LOOP_TRAFFIC 0x00000200 /* send traffic to pppd */ |
||
62 | #define SC_MULTILINK 0x00000400 /* do multilink encapsulation */ |
||
63 | #define SC_MP_SHORTSEQ 0x00000800 /* use short MP sequence numbers */ |
||
64 | #define SC_COMP_RUN 0x00001000 /* compressor has been inited */ |
||
65 | #define SC_DECOMP_RUN 0x00002000 /* decompressor has been inited */ |
||
66 | #define SC_MP_XSHORTSEQ 0x00004000 /* transmit short MP seq numbers */ |
||
67 | #define SC_DEBUG 0x00010000 /* enable debug messages */ |
||
68 | #define SC_LOG_INPKT 0x00020000 /* log contents of good pkts recvd */ |
||
69 | #define SC_LOG_OUTPKT 0x00040000 /* log contents of pkts sent */ |
||
70 | #define SC_LOG_RAWIN 0x00080000 /* log all chars received */ |
||
71 | #define SC_LOG_FLUSH 0x00100000 /* log all chars flushed */ |
||
72 | #define SC_SYNC 0x00200000 /* synchronous serial mode */ |
||
73 | #define SC_MASK 0x0f200fff /* bits that user can change */ |
||
74 | |||
75 | /* state bits */ |
||
76 | #define SC_XMIT_BUSY 0x10000000 /* (used by isdn_ppp?) */ |
||
77 | #define SC_RCV_ODDP 0x08000000 /* have rcvd char with odd parity */ |
||
78 | #define SC_RCV_EVNP 0x04000000 /* have rcvd char with even parity */ |
||
79 | #define SC_RCV_B7_1 0x02000000 /* have rcvd char with bit 7 = 1 */ |
||
80 | #define SC_RCV_B7_0 0x01000000 /* have rcvd char with bit 7 = 0 */ |
||
81 | #define SC_DC_FERROR 0x00800000 /* fatal decomp error detected */ |
||
82 | #define SC_DC_ERROR 0x00400000 /* non-fatal decomp error detected */ |
||
83 | |||
84 | /* |
||
85 | * Ioctl definitions. |
||
86 | */ |
||
87 | |||
88 | struct npioctl { |
||
89 | int protocol; /* PPP protocol, e.g. PPP_IP */ |
||
90 | enum NPmode mode; |
||
91 | }; |
||
92 | |||
93 | /* Structure describing a CCP configuration option, for PPPIOCSCOMPRESS */ |
||
94 | struct ppp_option_data { |
||
95 | __u8 *ptr; |
||
96 | __u32 length; |
||
97 | int transmit; |
||
98 | }; |
||
99 | |||
100 | struct ifpppstatsreq { |
||
101 | struct ifreq b; |
||
102 | struct ppp_stats stats; /* statistic information */ |
||
103 | }; |
||
104 | |||
105 | struct ifpppcstatsreq { |
||
106 | struct ifreq b; |
||
107 | struct ppp_comp_stats stats; |
||
108 | }; |
||
109 | |||
110 | #define ifr__name b.ifr_ifrn.ifrn_name |
||
111 | #define stats_ptr b.ifr_ifru.ifru_data |
||
112 | |||
113 | /* |
||
114 | * Ioctl definitions. |
||
115 | */ |
||
116 | |||
117 | #define PPPIOCGFLAGS _IOR('t', 90, int) /* get configuration flags */ |
||
118 | #define PPPIOCSFLAGS _IOW('t', 89, int) /* set configuration flags */ |
||
119 | #define PPPIOCGASYNCMAP _IOR('t', 88, int) /* get async map */ |
||
120 | #define PPPIOCSASYNCMAP _IOW('t', 87, int) /* set async map */ |
||
121 | #define PPPIOCGUNIT _IOR('t', 86, int) /* get ppp unit number */ |
||
122 | #define PPPIOCGRASYNCMAP _IOR('t', 85, int) /* get receive async map */ |
||
123 | #define PPPIOCSRASYNCMAP _IOW('t', 84, int) /* set receive async map */ |
||
124 | #define PPPIOCGMRU _IOR('t', 83, int) /* get max receive unit */ |
||
125 | #define PPPIOCSMRU _IOW('t', 82, int) /* set max receive unit */ |
||
126 | #define PPPIOCSMAXCID _IOW('t', 81, int) /* set VJ max slot ID */ |
||
127 | #define PPPIOCGXASYNCMAP _IOR('t', 80, ext_accm) /* get extended ACCM */ |
||
128 | #define PPPIOCSXASYNCMAP _IOW('t', 79, ext_accm) /* set extended ACCM */ |
||
129 | #define PPPIOCXFERUNIT _IO('t', 78) /* transfer PPP unit */ |
||
130 | #define PPPIOCSCOMPRESS _IOW('t', 77, struct ppp_option_data) |
||
131 | #define PPPIOCGNPMODE _IOWR('t', 76, struct npioctl) /* get NP mode */ |
||
132 | #define PPPIOCSNPMODE _IOW('t', 75, struct npioctl) /* set NP mode */ |
||
133 | #define PPPIOCSPASS _IOW('t', 71, struct sock_fprog) /* set pass filter */ |
||
134 | #define PPPIOCSACTIVE _IOW('t', 70, struct sock_fprog) /* set active filt */ |
||
135 | #define PPPIOCGDEBUG _IOR('t', 65, int) /* Read debug level */ |
||
136 | #define PPPIOCSDEBUG _IOW('t', 64, int) /* Set debug level */ |
||
137 | #define PPPIOCGIDLE _IOR('t', 63, struct ppp_idle) /* get idle time */ |
||
138 | #define PPPIOCNEWUNIT _IOWR('t', 62, int) /* create new ppp unit */ |
||
139 | #define PPPIOCATTACH _IOW('t', 61, int) /* attach to ppp unit */ |
||
140 | #define PPPIOCDETACH _IOW('t', 60, int) /* detach from ppp unit/chan */ |
||
141 | #define PPPIOCSMRRU _IOW('t', 59, int) /* set multilink MRU */ |
||
142 | #define PPPIOCCONNECT _IOW('t', 58, int) /* connect channel to unit */ |
||
143 | #define PPPIOCDISCONN _IO('t', 57) /* disconnect channel */ |
||
144 | #define PPPIOCATTCHAN _IOW('t', 56, int) /* attach to ppp channel */ |
||
145 | #define PPPIOCGCHAN _IOR('t', 55, int) /* get ppp channel number */ |
||
146 | |||
147 | #define SIOCGPPPSTATS (SIOCDEVPRIVATE + 0) |
||
148 | #define SIOCGPPPVER (SIOCDEVPRIVATE + 1) /* NEVER change this!! */ |
||
149 | #define SIOCGPPPCSTATS (SIOCDEVPRIVATE + 2) |
||
150 | |||
151 | #if !defined(ifr_mtu) |
||
152 | #define ifr_mtu ifr_ifru.ifru_metric |
||
153 | #endif |
||
154 | |||
155 | #endif /* _IF_PPP_H_ */ |