1/*
2 * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23
24
25#ifndef __PPP_OPTIONS__
26#define __PPP_OPTIONS__
27
28
29/* PATHS definitions for PPP */
30
31#define DIR_KEXT		"/System/Library/Extensions/"
32#define DIR_LOGS		"/var/log/ppp/"
33#define DIR_TTYS		"/dev/"
34#define PATH_PPPD 		"/usr/sbin/pppd"
35#define PPPD_PRGM 		"pppd"
36
37/* Device default values */
38
39#define OPT_DEV_NAME_DEF 		"modem"
40#define OPT_DEV_NAME_PPPoE_DEF 		"en0"
41#define OPT_DEV_SPEED_DEF 		0	// use the default tty speed, CCL will set the speed
42#define OPT_DEV_CONNECTSCRIPT_DEF	"Apple Internal 56K Modem (v.34)"
43#define OPT_DEV_SPEAKER_DEF		1
44#define OPT_DEV_DIALMODE_DEF		0 // Normal mode
45#define OPT_DEV_PULSE_DEF		0
46
47/* Comm default values */
48
49#define OPT_COMM_IDLETIMER_DEF 		0	// no idle timer
50#define OPT_COMM_SESSIONTIMER_DEF 	0	// no session timer
51#define OPT_COMM_CONNECTDELAY_DEF 	0 	// delay to wait after link is connected (in seconds)
52#define OPT_COMM_REMINDERTIMER_DEF 	0	// no reminder timer
53
54#define OPT_COMM_TERMINALMODE_DEF	PPP_COMM_TERM_NONE
55
56/* LCP default values */
57
58#define OPT_LCP_ACCOMP_DEF 		1	// address and control fields compression activated
59#define OPT_LCP_PCOMP_DEF 		1	// protocol field compression activated
60#define OPT_LCP_RCACCM_DEF 		PPP_LCP_ACCM_NONE	// default asyncmap value
61#define OPT_LCP_TXACCM_DEF 		PPP_LCP_ACCM_NONE	// default asyncmap value
62#define OPT_LCP_MRU_DEF 		1500
63#define OPT_LCP_MRU_PPPoE_DEF 		1492	/* use standart PPPoE MTU */
64#define OPT_LCP_MRU_PPTP_DEF 		1500	/* use standart PPP MTU */
65#define OPT_LCP_MRU_L2TP_DEF 		1500    /* use standart PPP MTU */
66#define OPT_LCP_MTU_DEF 		1500
67#define OPT_LCP_MTU_PPPoE_DEF 		1492	/* use standart PPPoE MTU */
68#define OPT_LCP_MTU_PPTP_DEF 		1448	/* avoid fragmentation */
69                                                /* 1500-IPHdr(20)-GRE(16)-PPP/MPPE(8)-PPPoE(8) */
70#define OPT_LCP_MTU_L2TP_DEF 		1280	/* avoid fragmentation */
71#define OPT_LCP_ECHOINTERVAL_DEF	10
72#define OPT_LCP_ECHOFAILURE_DEF		4
73
74/* IPCP default values */
75
76#define OPT_IPCP_HDRCOMP_DEF 		PPP_IPCP_HDRCOMP_VJ	// tcp vj compression activated
77#define OPT_IPCP_USESERVERDNS_DEF 	1	// acquire DNS from server
78#define OPT_HOSTNAME_DEF 		"localhost"
79#define OPT_ALERT_DEF 			PPP_ALERT_ENABLEALL
80
81/* AUTH default values */
82
83#define OPT_AUTH_PROTO_DEF 		PPP_AUTH_PAPCHAP	// do any auth proposed by server
84
85/* Misc default values */
86
87#define OPT_VERBOSELOG_DEF	0	// quiet log by default
88#define OPT_LOGFILE_DEF		""	// no logs by default (suggested name "ppp.log")
89#define OPT_AUTOCONNECT_DEF 	0	// dial on demand not activated
90#define OPT_DISCLOGOUT_DEF 	1	// disconnect on logout by default
91
92// pppd error codes (bits 0..7 of lastcause key)
93// error codes are in pppd/pppd.h
94
95// ppp serial error codes (bits 8..15 of last cause key)
96#define EXIT_PPPSERIAL_NOCARRIER  	1
97#define EXIT_PPPSERIAL_NONUMBER  	2
98#define EXIT_PPPSERIAL_BUSY	  	3
99#define EXIT_PPPSERIAL_NODIALTONE  	4
100#define EXIT_PPPSERIAL_ERROR	  	5
101#define EXIT_PPPSERIAL_NOANSWER	  	6
102#define EXIT_PPPSERIAL_HANGUP	  	7
103#define EXIT_PPPSERIAL_MODEMSCRIPTNOTFOUND  	8
104#define EXIT_PPPSERIAL_BADSCRIPT  	9
105
106
107#define OPT_STR_LEN 256
108
109
110int ppp_getoptval(struct service *serv, CFDictionaryRef opts, CFDictionaryRef setup,
111        u_int32_t otype, void *pdata, u_int32_t pdatasiz, u_int32_t *plen);
112u_long get_addr_option (struct service *serv, CFStringRef entity, CFStringRef property,
113        CFDictionaryRef optsdict, CFDictionaryRef setupdict, u_int32_t *opt, u_int32_t defaultval);
114u_long get_int_option (struct service *serv, CFStringRef entity, CFStringRef property,
115        CFDictionaryRef optsdict, CFDictionaryRef setupdict, u_int32_t *opt, u_int32_t defaultval);
116int get_str_option (struct service *serv, CFStringRef entity, CFStringRef property,
117        CFDictionaryRef optsdict, CFDictionaryRef setupdict, u_char *opt, u_int32_t optsiz, u_int32_t *outlen, u_char *defaultval);
118CFTypeRef get_cf_option (CFStringRef entity, CFStringRef property, CFTypeID type,
119        CFDictionaryRef options, CFDictionaryRef setup, CFTypeRef defaultval);
120
121
122#endif
123