ACPI: bay: fix build warning
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / include / linux / netfilter / nf_conntrack_pptp.h
blob9d8144a488cd5bfa5a29910b8d1684cb0ace2386
1 /* PPTP constants and structs */
2 #ifndef _NF_CONNTRACK_PPTP_H
3 #define _NF_CONNTRACK_PPTP_H
5 #include <linux/netfilter/nf_conntrack_common.h>
7 /* state of the control session */
8 enum pptp_ctrlsess_state {
9 PPTP_SESSION_NONE, /* no session present */
10 PPTP_SESSION_ERROR, /* some session error */
11 PPTP_SESSION_STOPREQ, /* stop_sess request seen */
12 PPTP_SESSION_REQUESTED, /* start_sess request seen */
13 PPTP_SESSION_CONFIRMED, /* session established */
16 /* state of the call inside the control session */
17 enum pptp_ctrlcall_state {
18 PPTP_CALL_NONE,
19 PPTP_CALL_ERROR,
20 PPTP_CALL_OUT_REQ,
21 PPTP_CALL_OUT_CONF,
22 PPTP_CALL_IN_REQ,
23 PPTP_CALL_IN_REP,
24 PPTP_CALL_IN_CONF,
25 PPTP_CALL_CLEAR_REQ,
28 /* conntrack private data */
29 struct nf_ct_pptp_master {
30 enum pptp_ctrlsess_state sstate; /* session state */
31 enum pptp_ctrlcall_state cstate; /* call state */
32 __be16 pac_call_id; /* call id of PAC */
33 __be16 pns_call_id; /* call id of PNS */
35 /* in pre-2.6.11 this used to be per-expect. Now it is per-conntrack
36 * and therefore imposes a fixed limit on the number of maps */
37 struct nf_ct_gre_keymap *keymap[IP_CT_DIR_MAX];
40 struct nf_nat_pptp {
41 __be16 pns_call_id; /* NAT'ed PNS call id */
42 __be16 pac_call_id; /* NAT'ed PAC call id */
45 #ifdef __KERNEL__
47 #define PPTP_CONTROL_PORT 1723
49 #define PPTP_PACKET_CONTROL 1
50 #define PPTP_PACKET_MGMT 2
52 #define PPTP_MAGIC_COOKIE 0x1a2b3c4d
54 struct pptp_pkt_hdr {
55 __u16 packetLength;
56 __be16 packetType;
57 __be32 magicCookie;
60 /* PptpControlMessageType values */
61 #define PPTP_START_SESSION_REQUEST 1
62 #define PPTP_START_SESSION_REPLY 2
63 #define PPTP_STOP_SESSION_REQUEST 3
64 #define PPTP_STOP_SESSION_REPLY 4
65 #define PPTP_ECHO_REQUEST 5
66 #define PPTP_ECHO_REPLY 6
67 #define PPTP_OUT_CALL_REQUEST 7
68 #define PPTP_OUT_CALL_REPLY 8
69 #define PPTP_IN_CALL_REQUEST 9
70 #define PPTP_IN_CALL_REPLY 10
71 #define PPTP_IN_CALL_CONNECT 11
72 #define PPTP_CALL_CLEAR_REQUEST 12
73 #define PPTP_CALL_DISCONNECT_NOTIFY 13
74 #define PPTP_WAN_ERROR_NOTIFY 14
75 #define PPTP_SET_LINK_INFO 15
77 #define PPTP_MSG_MAX 15
79 /* PptpGeneralError values */
80 #define PPTP_ERROR_CODE_NONE 0
81 #define PPTP_NOT_CONNECTED 1
82 #define PPTP_BAD_FORMAT 2
83 #define PPTP_BAD_VALUE 3
84 #define PPTP_NO_RESOURCE 4
85 #define PPTP_BAD_CALLID 5
86 #define PPTP_REMOVE_DEVICE_ERROR 6
88 struct PptpControlHeader {
89 __be16 messageType;
90 __u16 reserved;
93 /* FramingCapability Bitmap Values */
94 #define PPTP_FRAME_CAP_ASYNC 0x1
95 #define PPTP_FRAME_CAP_SYNC 0x2
97 /* BearerCapability Bitmap Values */
98 #define PPTP_BEARER_CAP_ANALOG 0x1
99 #define PPTP_BEARER_CAP_DIGITAL 0x2
101 struct PptpStartSessionRequest {
102 __be16 protocolVersion;
103 __u16 reserved1;
104 __be32 framingCapability;
105 __be32 bearerCapability;
106 __be16 maxChannels;
107 __be16 firmwareRevision;
108 __u8 hostName[64];
109 __u8 vendorString[64];
112 /* PptpStartSessionResultCode Values */
113 #define PPTP_START_OK 1
114 #define PPTP_START_GENERAL_ERROR 2
115 #define PPTP_START_ALREADY_CONNECTED 3
116 #define PPTP_START_NOT_AUTHORIZED 4
117 #define PPTP_START_UNKNOWN_PROTOCOL 5
119 struct PptpStartSessionReply {
120 __be16 protocolVersion;
121 __u8 resultCode;
122 __u8 generalErrorCode;
123 __be32 framingCapability;
124 __be32 bearerCapability;
125 __be16 maxChannels;
126 __be16 firmwareRevision;
127 __u8 hostName[64];
128 __u8 vendorString[64];
131 /* PptpStopReasons */
132 #define PPTP_STOP_NONE 1
133 #define PPTP_STOP_PROTOCOL 2
134 #define PPTP_STOP_LOCAL_SHUTDOWN 3
136 struct PptpStopSessionRequest {
137 __u8 reason;
138 __u8 reserved1;
139 __u16 reserved2;
142 /* PptpStopSessionResultCode */
143 #define PPTP_STOP_OK 1
144 #define PPTP_STOP_GENERAL_ERROR 2
146 struct PptpStopSessionReply {
147 __u8 resultCode;
148 __u8 generalErrorCode;
149 __u16 reserved1;
152 struct PptpEchoRequest {
153 __be32 identNumber;
156 /* PptpEchoReplyResultCode */
157 #define PPTP_ECHO_OK 1
158 #define PPTP_ECHO_GENERAL_ERROR 2
160 struct PptpEchoReply {
161 __be32 identNumber;
162 __u8 resultCode;
163 __u8 generalErrorCode;
164 __u16 reserved;
167 /* PptpFramingType */
168 #define PPTP_ASYNC_FRAMING 1
169 #define PPTP_SYNC_FRAMING 2
170 #define PPTP_DONT_CARE_FRAMING 3
172 /* PptpCallBearerType */
173 #define PPTP_ANALOG_TYPE 1
174 #define PPTP_DIGITAL_TYPE 2
175 #define PPTP_DONT_CARE_BEARER_TYPE 3
177 struct PptpOutCallRequest {
178 __be16 callID;
179 __be16 callSerialNumber;
180 __be32 minBPS;
181 __be32 maxBPS;
182 __be32 bearerType;
183 __be32 framingType;
184 __be16 packetWindow;
185 __be16 packetProcDelay;
186 __be16 phoneNumberLength;
187 __u16 reserved1;
188 __u8 phoneNumber[64];
189 __u8 subAddress[64];
192 /* PptpCallResultCode */
193 #define PPTP_OUTCALL_CONNECT 1
194 #define PPTP_OUTCALL_GENERAL_ERROR 2
195 #define PPTP_OUTCALL_NO_CARRIER 3
196 #define PPTP_OUTCALL_BUSY 4
197 #define PPTP_OUTCALL_NO_DIAL_TONE 5
198 #define PPTP_OUTCALL_TIMEOUT 6
199 #define PPTP_OUTCALL_DONT_ACCEPT 7
201 struct PptpOutCallReply {
202 __be16 callID;
203 __be16 peersCallID;
204 __u8 resultCode;
205 __u8 generalErrorCode;
206 __be16 causeCode;
207 __be32 connectSpeed;
208 __be16 packetWindow;
209 __be16 packetProcDelay;
210 __be32 physChannelID;
213 struct PptpInCallRequest {
214 __be16 callID;
215 __be16 callSerialNumber;
216 __be32 callBearerType;
217 __be32 physChannelID;
218 __be16 dialedNumberLength;
219 __be16 dialingNumberLength;
220 __u8 dialedNumber[64];
221 __u8 dialingNumber[64];
222 __u8 subAddress[64];
225 /* PptpInCallResultCode */
226 #define PPTP_INCALL_ACCEPT 1
227 #define PPTP_INCALL_GENERAL_ERROR 2
228 #define PPTP_INCALL_DONT_ACCEPT 3
230 struct PptpInCallReply {
231 __be16 callID;
232 __be16 peersCallID;
233 __u8 resultCode;
234 __u8 generalErrorCode;
235 __be16 packetWindow;
236 __be16 packetProcDelay;
237 __u16 reserved;
240 struct PptpInCallConnected {
241 __be16 peersCallID;
242 __u16 reserved;
243 __be32 connectSpeed;
244 __be16 packetWindow;
245 __be16 packetProcDelay;
246 __be32 callFramingType;
249 struct PptpClearCallRequest {
250 __be16 callID;
251 __u16 reserved;
254 struct PptpCallDisconnectNotify {
255 __be16 callID;
256 __u8 resultCode;
257 __u8 generalErrorCode;
258 __be16 causeCode;
259 __u16 reserved;
260 __u8 callStatistics[128];
263 struct PptpWanErrorNotify {
264 __be16 peersCallID;
265 __u16 reserved;
266 __be32 crcErrors;
267 __be32 framingErrors;
268 __be32 hardwareOverRuns;
269 __be32 bufferOverRuns;
270 __be32 timeoutErrors;
271 __be32 alignmentErrors;
274 struct PptpSetLinkInfo {
275 __be16 peersCallID;
276 __u16 reserved;
277 __be32 sendAccm;
278 __be32 recvAccm;
281 union pptp_ctrl_union {
282 struct PptpStartSessionRequest sreq;
283 struct PptpStartSessionReply srep;
284 struct PptpStopSessionRequest streq;
285 struct PptpStopSessionReply strep;
286 struct PptpOutCallRequest ocreq;
287 struct PptpOutCallReply ocack;
288 struct PptpInCallRequest icreq;
289 struct PptpInCallReply icack;
290 struct PptpInCallConnected iccon;
291 struct PptpClearCallRequest clrreq;
292 struct PptpCallDisconnectNotify disc;
293 struct PptpWanErrorNotify wanerr;
294 struct PptpSetLinkInfo setlink;
297 /* crap needed for nf_conntrack_compat.h */
298 struct nf_conn;
299 struct nf_conntrack_expect;
301 extern int
302 (*nf_nat_pptp_hook_outbound)(struct sk_buff **pskb,
303 struct nf_conn *ct, enum ip_conntrack_info ctinfo,
304 struct PptpControlHeader *ctlh,
305 union pptp_ctrl_union *pptpReq);
307 extern int
308 (*nf_nat_pptp_hook_inbound)(struct sk_buff **pskb,
309 struct nf_conn *ct, enum ip_conntrack_info ctinfo,
310 struct PptpControlHeader *ctlh,
311 union pptp_ctrl_union *pptpReq);
313 extern void
314 (*nf_nat_pptp_hook_exp_gre)(struct nf_conntrack_expect *exp_orig,
315 struct nf_conntrack_expect *exp_reply);
317 extern void
318 (*nf_nat_pptp_hook_expectfn)(struct nf_conn *ct,
319 struct nf_conntrack_expect *exp);
321 #endif /* __KERNEL__ */
322 #endif /* _NF_CONNTRACK_PPTP_H */