1 /* pptp_quirks.h ...... various options to fix quirks found in buggy adsl modems
2  *                      mulix <mulix@actcom.co.il>
3  *
4  * $Id: pptp_quirks.h,v 1.2 2011/12/19 07:15:03 quozl Exp $
5  */
6 
7 #ifndef INC_PPTP_QUIRKS_H
8 #define INC_PPTP_QUIRKS_H
9 
10 /* isp defs - correspond to slots in the fixups table */
11 #define BEZEQ_ISRAEL "BEZEQ_ISRAEL"
12 
13 /* vendor defs */
14 
15 #define ORCKIT 1
16 #define ALCATEL 2
17 
18 /* device defs */
19 
20 #define ORCKIT_ATUR2 1
21 #define ORCKIT_ATUR3 2
22 
23 #include "pptp_msg.h"
24 #include "pptp_ctrl.h"
25 
26 struct pptp_fixup {
27     const char* isp;    /* which isp? e.g. Bezeq in Israel */
28     int vendor; /* which vendor? e.g. Orckit */
29     int device; /* which device? e.g. Orckit Atur3 */
30 
31     /* use this hook to build your own out call request packet */
32     int (*out_call_rqst_hook)(struct pptp_out_call_rqst* packet);
33 
34     /* use this hook to build your own start control connection packet */
35     /* note that this hook is called from two different places, depending
36        on whether this is a request or reply */
37     int (*start_ctrl_conn)(struct pptp_start_ctrl_conn* packet);
38 
39     /* use this hook if you need to send a 'set_link' packet once
40        the connection is established */
41     int (*set_link_hook)(struct pptp_set_link_info* packet,
42 			 int peer_call_id);
43 };
44 
45 extern struct pptp_fixup pptp_fixups[];
46 
47 /* find the index for this isp in the quirks table */
48 /* return the index on success, -1 if not found */
49 int find_quirk(const char* isp_name);
50 
51 /* set the global quirk index. return 0 on success, non 0 otherwise */
52 int set_quirk_index(int index);
53 
54 /* get the global quirk index. return the index on success,
55    -1 if no quirk is defined */
56 int get_quirk_index(void);
57 
58 
59 #endif /* INC_PPTP_QUIRKS_H */
60