add packages_10.03.2 in preparation for the 10.03.2 interim release
[10.03/packages.git] / net / openl2tp / src / l2tp_rpc.h
1 /*
2  * Please do not edit this file.
3  * It was generated using rpcgen.
4  */
5
6 #ifndef _L2TP_RPC_H_RPCGEN
7 #define _L2TP_RPC_H_RPCGEN
8
9 #include <rpc/rpc.h>
10
11 #include <pthread.h>
12
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16
17 #define L2TP_APP_COPYRIGHT_INFO "(c) Copyright 2004-2010"
18 #define L2TP_APP_VENDOR_INFO "Katalix Systems Ltd."
19 #define L2TP_APP_MAJOR_VERSION 1
20 #define L2TP_APP_MINOR_VERSION 8
21 #define L2TP_DEBUG_PROTOCOL 1
22 #define L2TP_DEBUG_FSM 2
23 #define L2TP_DEBUG_API 4
24 #define L2TP_DEBUG_AVP 8
25 #define L2TP_DEBUG_AVP_HIDE 16
26 #define L2TP_DEBUG_AVP_DATA 32
27 #define L2TP_DEBUG_FUNC 64
28 #define L2TP_DEBUG_XPRT 128
29 #define L2TP_DEBUG_DATA 256
30 #define L2TP_DEBUG_SYSTEM 512
31 #define L2TP_DEBUG_PPP 1024
32 #define L2TP_ERR_BASE 500
33 #define L2TP_ERR_PARAM_NOT_MODIFIABLE 500
34 #define L2TP_ERR_PEER_ADDRESS_MISSING 501
35 #define L2TP_ERR_PEER_NOT_FOUND 502
36 #define L2TP_ERR_PEER_PROFILE_NOT_FOUND 503
37 #define L2TP_ERR_PPP_PROFILE_NOT_FOUND 504
38 #define L2TP_ERR_PROFILE_ALREADY_EXISTS 505
39 #define L2TP_ERR_PROFILE_NAME_ILLEGAL 506
40 #define L2TP_ERR_PROFILE_NAME_MISSING 507
41 #define L2TP_ERR_SESSION_ALREADY_EXISTS 508
42 #define L2TP_ERR_SESSION_ID_ALLOC_FAILURE 509
43 #define L2TP_ERR_SESSION_LIMIT_EXCEEDED 510
44 #define L2TP_ERR_SESSION_NOT_FOUND 511
45 #define L2TP_ERR_SESSION_PROFILE_NOT_FOUND 512
46 #define L2TP_ERR_SESSION_SPEC_MISSING 513
47 #define L2TP_ERR_SESSION_TYPE_BAD 514
48 #define L2TP_ERR_SESSION_TYPE_ILLEGAL_FOR_TUNNEL 515
49 #define L2TP_ERR_TUNNEL_ADD_ADMIN_DISABLED 516
50 #define L2TP_ERR_TUNNEL_CREATE_ADMIN_DISABLED 517
51 #define L2TP_ERR_TUNNEL_ALREADY_EXISTS 518
52 #define L2TP_ERR_TUNNEL_ID_ALLOC_FAILURE 519
53 #define L2TP_ERR_TUNNEL_NOT_FOUND 520
54 #define L2TP_ERR_TUNNEL_PROFILE_NOT_FOUND 521
55 #define L2TP_ERR_TUNNEL_SPEC_MISSING 522
56 #define L2TP_ERR_TUNNEL_TOO_MANY_SESSIONS 523
57 #define L2TP_ERR_TUNNEL_TOO_MANY_SAME_IP 524
58 #define L2TP_ERR_TUNNEL_LIMIT_EXCEEDED 525
59 #define L2TP_ERR_SESSION_TYPE_NOT_SUPPORTED 526
60 #define L2TP_ERR_TUNNEL_HIDE_AVPS_NEEDS_SECRET 527
61 #define L2TP_ERR_MAX 528
62
63 struct optstring {
64         int valid;
65         union {
66                 char *value;
67         } optstring_u;
68 };
69 typedef struct optstring optstring;
70 #define OPTSTRING(_var) _var.optstring_u.value
71 #define OPTSTRING_PTR(_var) ((_var.valid == 1) ? _var.optstring_u.value : NULL)
72
73 enum l2tp_api_tunnel_auth_mode {
74         L2TP_API_TUNNEL_AUTH_MODE_NONE = 0,
75         L2TP_API_TUNNEL_AUTH_MODE_SIMPLE = 1,
76         L2TP_API_TUNNEL_AUTH_MODE_CHALLENGE = 2,
77 };
78 typedef enum l2tp_api_tunnel_auth_mode l2tp_api_tunnel_auth_mode;
79
80 enum l2tp_api_tunnel_mode {
81         L2TP_API_TUNNEL_MODE_LACLNS = 0,
82         L2TP_API_TUNNEL_MODE_LAC = 1,
83         L2TP_API_TUNNEL_MODE_LNS = 2,
84 };
85 typedef enum l2tp_api_tunnel_mode l2tp_api_tunnel_mode;
86
87 struct l2tp_api_ip_addr {
88         uint32_t s_addr;
89 };
90 typedef struct l2tp_api_ip_addr l2tp_api_ip_addr;
91 #define L2TP_API_APP_FEATURE_LOCAL_CONF_FILE 1
92 #define L2TP_API_APP_FEATURE_LAC_SUPPORT 2
93 #define L2TP_API_APP_FEATURE_LNS_SUPPORT 4
94 #define L2TP_API_APP_FEATURE_RPC_MANAGEMENT 8
95 #define L2TP_API_APP_FEATURE_LAIC_SUPPORT 16
96 #define L2TP_API_APP_FEATURE_LAOC_SUPPORT 32
97 #define L2TP_API_APP_FEATURE_LNIC_SUPPORT 64
98 #define L2TP_API_APP_FEATURE_LNOC_SUPPORT 128
99 #define L2TP_API_APP_FEATURE_LOCAL_STAT_FILE 256
100
101 struct l2tp_api_app_msg_data {
102         char *build_date;
103         char *build_time;
104         int major;
105         int minor;
106         uint32_t cookie;
107         struct {
108                 u_int patches_len;
109                 int *patches_val;
110         } patches;
111         uint32_t features;
112 };
113 typedef struct l2tp_api_app_msg_data l2tp_api_app_msg_data;
114 #define L2TP_API_CONFIG_FLAG_TRACE_FLAGS 1
115 #define L2TP_API_CONFIG_FLAG_MAX_TUNNELS 2
116 #define L2TP_API_CONFIG_FLAG_DRAIN_TUNNELS 4
117 #define L2TP_API_CONFIG_FLAG_MAX_SESSIONS 8
118 #define L2TP_API_CONFIG_FLAG_TUNNEL_ESTABLISH_TIMEOUT 16
119 #define L2TP_API_CONFIG_FLAG_SESSION_ESTABLISH_TIMEOUT 32
120 #define L2TP_API_CONFIG_FLAG_DENY_LOCAL_TUNNEL_CREATES 64
121 #define L2TP_API_CONFIG_FLAG_DENY_REMOTE_TUNNEL_CREATES 128
122 #define L2TP_API_CONFIG_FLAG_RESET_STATISTICS 256
123 #define L2TP_API_CONFIG_FLAG_TUNNEL_PERSIST_PEND_TIMEOUT 512
124 #define L2TP_API_CONFIG_FLAG_SESSION_PERSIST_PEND_TIMEOUT 1024
125
126 struct l2tp_api_system_config {
127         uint32_t flags;
128         int udp_port;
129         uint32_t trace_flags;
130         uint32_t trace_flags_mask;
131         int max_tunnels;
132         int max_sessions;
133         int drain_tunnels;
134         int tunnel_establish_timeout;
135         int session_establish_timeout;
136         int tunnel_persist_pend_timeout;
137         int session_persist_pend_timeout;
138         bool_t deny_local_tunnel_creates;
139         bool_t deny_remote_tunnel_creates;
140 };
141 typedef struct l2tp_api_system_config l2tp_api_system_config;
142
143 struct l2tp_api_system_msg_stats {
144         uint32_t rx;
145         uint32_t tx;
146         uint32_t rx_bad;
147 };
148 typedef struct l2tp_api_system_msg_stats l2tp_api_system_msg_stats;
149 #define L2TP_API_MSG_TYPE_COUNT 17
150
151 struct l2tp_api_system_stats {
152         uint32_t short_frames;
153         uint32_t wrong_version_frames;
154         uint32_t unexpected_data_frames;
155         uint32_t bad_rcvd_frames;
156         uint32_t total_rcvd_control_frames;
157         uint32_t total_sent_control_frames;
158         uint32_t total_control_frame_send_fails;
159         uint32_t total_retransmitted_control_frames;
160         uint32_t no_control_frame_resources;
161         uint32_t no_peer_resources;
162         uint32_t no_tunnel_resources;
163         uint32_t no_session_resources;
164         uint32_t no_ppp_resources;
165         uint32_t too_many_tunnels;
166         uint32_t too_many_sessions;
167         uint32_t auth_fails;
168         uint32_t no_matching_tunnel_id_discards;
169         uint32_t no_matching_session_id_discards;
170         uint32_t mismatched_tunnel_ids;
171         uint32_t mismatched_session_ids;
172         uint32_t encode_message_fails;
173         uint32_t tunnel_setup_failures;
174         uint32_t session_setup_failures;
175         uint32_t event_queue_full_errors;
176         uint32_t ignored_avps;
177         uint32_t vendor_avps;
178         uint32_t illegal_messages;
179         uint32_t unsupported_messages;
180         struct {
181                 u_int messages_len;
182                 struct l2tp_api_system_msg_stats *messages_val;
183         } messages;
184 };
185 typedef struct l2tp_api_system_stats l2tp_api_system_stats;
186
187 struct l2tp_api_system_status {
188         struct l2tp_api_system_stats stats;
189         uint32_t num_tunnels;
190         uint32_t num_sessions;
191 };
192 typedef struct l2tp_api_system_status l2tp_api_system_status;
193
194 struct l2tp_api_system_msg_data {
195         struct l2tp_api_system_config config;
196         struct l2tp_api_system_status status;
197 };
198 typedef struct l2tp_api_system_msg_data l2tp_api_system_msg_data;
199
200 struct l2tp_api_peer_msg_data {
201         int result_code;
202         struct l2tp_api_ip_addr peer_addr;
203         struct l2tp_api_ip_addr local_addr;
204         int num_tunnels;
205 };
206 typedef struct l2tp_api_peer_msg_data l2tp_api_peer_msg_data;
207
208 struct l2tp_api_peer_list_entry {
209         struct l2tp_api_ip_addr peer_addr;
210         struct l2tp_api_ip_addr local_addr;
211         struct l2tp_api_peer_list_entry *next;
212 };
213 typedef struct l2tp_api_peer_list_entry l2tp_api_peer_list_entry;
214
215 struct l2tp_api_peer_list_msg_data {
216         int result;
217         struct l2tp_api_peer_list_entry *peers;
218 };
219 typedef struct l2tp_api_peer_list_msg_data l2tp_api_peer_list_msg_data;
220 #define L2TP_API_PEER_PROFILE_DEFAULT_PROFILE_NAME "default"
221 #define L2TP_API_PEER_PROFILE_FLAG_LACLNS 1
222 #define L2TP_API_PEER_PROFILE_FLAG_TUNNEL_PROFILE_NAME 2
223 #define L2TP_API_PEER_PROFILE_FLAG_SESSION_PROFILE_NAME 4
224 #define L2TP_API_PEER_PROFILE_FLAG_PPP_PROFILE_NAME 8
225 #define L2TP_API_PEER_PROFILE_FLAG_PEER_IPADDR 16
226 #define L2TP_API_PEER_PROFILE_FLAG_PEER_PORT 32
227 #define L2TP_API_PEER_PROFILE_FLAG_NETMASK 64
228
229 struct l2tp_api_peer_profile_msg_data {
230         uint32_t flags;
231         int result_code;
232         struct l2tp_api_ip_addr peer_addr;
233         uint16_t peer_port;
234         bool_t we_can_be_lac;
235         bool_t we_can_be_lns;
236         char *profile_name;
237         optstring default_tunnel_profile_name;
238         optstring default_session_profile_name;
239         optstring default_ppp_profile_name;
240         struct l2tp_api_ip_addr netmask;
241         int use_count;
242 };
243 typedef struct l2tp_api_peer_profile_msg_data l2tp_api_peer_profile_msg_data;
244
245 struct l2tp_api_peer_profile_list_entry {
246         char *profile_name;
247         struct l2tp_api_peer_profile_list_entry *next;
248 };
249 typedef struct l2tp_api_peer_profile_list_entry l2tp_api_peer_profile_list_entry;
250
251 struct l2tp_api_peer_profile_list_msg_data {
252         int result;
253         int num_profiles;
254         struct l2tp_api_peer_profile_list_entry *profiles;
255 };
256 typedef struct l2tp_api_peer_profile_list_msg_data l2tp_api_peer_profile_list_msg_data;
257
258 struct l2tp_api_peer_profile_unset_msg_data {
259         uint32_t flags;
260         int result_code;
261         char *profile_name;
262 };
263 typedef struct l2tp_api_peer_profile_unset_msg_data l2tp_api_peer_profile_unset_msg_data;
264
265 struct l2tp_api_tunnel_peer {
266         bool_t framing_cap_sync;
267         bool_t framing_cap_async;
268         bool_t bearer_cap_digital;
269         bool_t bearer_cap_analog;
270         uint8_t protocol_version_ver;
271         uint8_t protocol_version_rev;
272         uint16_t rx_window_size;
273         uint16_t firmware_revision;
274         optstring host_name;
275         optstring vendor_name;
276         struct {
277                 u_int tiebreaker_len;
278                 uint8_t *tiebreaker_val;
279         } tiebreaker;
280         uint16_t result_code_result;
281         uint16_t result_code_error;
282         optstring result_code_message;
283 };
284 typedef struct l2tp_api_tunnel_peer l2tp_api_tunnel_peer;
285
286 struct l2tp_api_tunnel_stats {
287         uint32_t retransmits;
288         uint32_t tx_zlbs;
289         uint32_t tx_zlb_fails;
290         uint32_t rx_zlbs;
291         uint32_t data_pkt_discards;
292         uint32_t duplicate_pkt_discards;
293         uint32_t rx_hellos;
294         uint32_t tx_hellos;
295         uint32_t tx_hello_fails;
296         uint16_t ns;
297         uint16_t nr;
298         uint16_t peer_ns;
299         uint16_t peer_nr;
300         uint16_t cwnd;
301         uint16_t ssthresh;
302         uint16_t congpkt_acc;
303         uint64_t control_rx_packets;
304         uint64_t control_rx_bytes;
305         uint64_t control_rx_oos_packets;
306         uint64_t control_rx_oos_discards;
307         uint64_t control_tx_packets;
308         uint64_t control_tx_bytes;
309         uint64_t data_rx_packets;
310         uint64_t data_rx_bytes;
311         uint64_t data_rx_errors;
312         uint64_t data_rx_oos_packets;
313         uint64_t data_rx_oos_discards;
314         uint64_t data_tx_packets;
315         uint64_t data_tx_bytes;
316         uint64_t data_tx_errors;
317         bool_t using_ipsec;
318 };
319 typedef struct l2tp_api_tunnel_stats l2tp_api_tunnel_stats;
320 #define L2TP_API_TUNNEL_FLAG_HIDE_AVPS 1
321 #define L2TP_API_TUNNEL_FLAG_OUR_ADDR 2
322 #define L2TP_API_TUNNEL_FLAG_PEER_ADDR 4
323 #define L2TP_API_TUNNEL_FLAG_CONFIG_ID 8
324 #define L2TP_API_TUNNEL_FLAG_OUR_UDP_PORT 16
325 #define L2TP_API_TUNNEL_FLAG_AUTH_MODE 32
326 #define L2TP_API_TUNNEL_FLAG_FRAMING_CAP 64
327 #define L2TP_API_TUNNEL_FLAG_BEARER_CAP 128
328 #define L2TP_API_TUNNEL_FLAG_USE_TIEBREAKER 256
329 #define L2TP_API_TUNNEL_FLAG_PERSIST 512
330 #define L2TP_API_TUNNEL_FLAG_HELLO_TIMEOUT 1024
331 #define L2TP_API_TUNNEL_FLAG_MAX_RETRIES 2048
332 #define L2TP_API_TUNNEL_FLAG_RX_WINDOW_SIZE 4096
333 #define L2TP_API_TUNNEL_FLAG_TX_WINDOW_SIZE 8192
334 #define L2TP_API_TUNNEL_FLAG_RETRY_TIMEOUT 16384
335 #define L2TP_API_TUNNEL_FLAG_IDLE_TIMEOUT 32768
336 #define L2TP_API_TUNNEL_FLAG_PEER_UDP_PORT 65536
337 #define L2TP_API_TUNNEL_FLAG_SECRET 131072
338 #define L2TP_API_TUNNEL_FLAG_ALLOW_PPP_PROXY 262144
339 #define L2TP_API_TUNNEL_FLAG_TRACE_FLAGS 524288
340 #define L2TP_API_TUNNEL_FLAG_USE_UDP_CHECKSUMS 1048576
341 #define L2TP_API_TUNNEL_FLAG_HOST_NAME 2097152
342 #define L2TP_API_TUNNEL_FLAG_TUNNEL_ID 4194304
343 #define L2TP_API_TUNNEL_FLAG_PROFILE_NAME 8388608
344 #define L2TP_API_TUNNEL_FLAG_MAX_SESSIONS 16777216
345 #define L2TP_API_TUNNEL_FLAG_TUNNEL_NAME 33554432
346 #define L2TP_API_TUNNEL_FLAG_UNUSED_2 67108864
347 #define L2TP_API_TUNNEL_FLAG_PEER_PROFILE_NAME 134217728
348 #define L2TP_API_TUNNEL_FLAG_SESSION_PROFILE_NAME 268435456
349 #define L2TP_API_TUNNEL_FLAG_PPP_PROFILE_NAME 536870912
350 #define L2TP_API_TUNNEL_FLAG_DO_PMTU_DISCOVERY 1073741824
351 #define L2TP_API_TUNNEL_FLAG_MTU 2147483648
352 #define L2TP_API_TUNNEL_FLAG_INTERFACE_NAME 1
353
354 struct l2tp_api_tunnel_msg_data {
355         uint32_t flags;
356         uint32_t flags2;
357         uint16_t tunnel_id;
358         uint16_t peer_tunnel_id;
359         int result_code;
360         int hide_avps;
361         optstring tunnel_name;
362         struct l2tp_api_ip_addr our_addr;
363         struct l2tp_api_ip_addr peer_addr;
364         uint16_t our_udp_port;
365         uint16_t peer_udp_port;
366         int config_id;
367         enum l2tp_api_tunnel_auth_mode auth_mode;
368         bool_t framing_cap_sync;
369         bool_t framing_cap_async;
370         bool_t bearer_cap_digital;
371         bool_t bearer_cap_analog;
372         bool_t use_tiebreaker;
373         bool_t allow_ppp_proxy;
374         bool_t use_udp_checksums;
375         bool_t created_by_admin;
376         optstring create_time;
377         int max_sessions;
378         int num_sessions;
379         int use_count;
380         int num_establish_retries;
381         enum l2tp_api_tunnel_mode mode;
382         int hello_timeout;
383         int max_retries;
384         uint16_t rx_window_size;
385         uint16_t tx_window_size;
386         uint16_t actual_tx_window_size;
387         int retry_timeout;
388         int idle_timeout;
389         uint32_t trace_flags;
390         uint32_t trace_flags_mask;
391         bool_t do_pmtu_discovery;
392         bool_t persist;
393         int mtu;
394         optstring state;
395         optstring secret;
396         optstring host_name;
397         optstring tunnel_profile_name;
398         optstring peer_profile_name;
399         optstring session_profile_name;
400         optstring ppp_profile_name;
401         optstring interface_name;
402         struct {
403                 u_int tiebreaker_len;
404                 uint8_t *tiebreaker_val;
405         } tiebreaker;
406         uint16_t result_code_result;
407         uint16_t result_code_error;
408         optstring result_code_message;
409         struct l2tp_api_tunnel_peer peer;
410         struct l2tp_api_tunnel_stats stats;
411 };
412 typedef struct l2tp_api_tunnel_msg_data l2tp_api_tunnel_msg_data;
413
414 struct l2tp_api_tunnel_list_msg_data {
415         int result;
416         struct {
417                 u_int tunnel_ids_len;
418                 uint16_t *tunnel_ids_val;
419         } tunnel_ids;
420 };
421 typedef struct l2tp_api_tunnel_list_msg_data l2tp_api_tunnel_list_msg_data;
422 #define L2TP_API_TUNNEL_PROFILE_DEFAULT_PROFILE_NAME "default"
423 #define L2TP_API_TUNNEL_PROFILE_DEFAULT_AUTH_MODE L2TP_API_TUNNEL_AUTH_MODE_NONE
424 #define L2TP_API_TUNNEL_PROFILE_DEFAULT_FRAMING_CAP_SYNC 1
425 #define L2TP_API_TUNNEL_PROFILE_DEFAULT_FRAMING_CAP_ASYNC 1
426 #define L2TP_API_TUNNEL_PROFILE_DEFAULT_BEARER_CAP_DIGITAL 1
427 #define L2TP_API_TUNNEL_PROFILE_DEFAULT_BEARER_CAP_ANALOG 1
428 #define L2TP_API_TUNNEL_PROFILE_DEFAULT_USE_TIEBREAKER 0
429 #define L2TP_API_TUNNEL_PROFILE_DEFAULT_HELLO_TIMEOUT 60
430 #define L2TP_API_TUNNEL_PROFILE_DEFAULT_MAX_RETRIES 5
431 #define L2TP_API_TUNNEL_PROFILE_DEFAULT_RX_WINDOW_SIZE 10
432 #define L2TP_API_TUNNEL_PROFILE_DEFAULT_TX_WINDOW_SIZE 10
433 #define L2TP_API_TUNNEL_PROFILE_DEFAULT_RETRY_TIMEOUT 1
434 #define L2TP_API_TUNNEL_PROFILE_DEFAULT_IDLE_TIMEOUT 0
435 #define L2TP_API_TUNNEL_PROFILE_DEFAULT_ZLB_TIMEOUT 5
436 #define L2TP_API_TUNNEL_PROFILE_DEFAULT_TRACE_FLAGS 0
437 #define L2TP_API_TUNNEL_PROFILE_DEFAULT_ALLOW_PPP_PROXY 0
438 #define L2TP_API_TUNNEL_PROFILE_DEFAULT_USE_UDP_CHECKSUMS 1
439 #define L2TP_API_TUNNEL_PROFILE_DEFAULT_DO_PMTU_DISCOVERY 0
440 #define L2TP_API_TUNNEL_PROFILE_DEFAULT_MTU 1460
441 #define L2TP_API_TUNNEL_PROFILE_DEFAULT_HIDE_AVPS 0
442 #define L2TP_API_TUNNEL_PROFILE_DEFAULT_MAX_SESSIONS 0
443 #define L2TP_API_TUNNEL_PROFILE_FLAG_HIDE_AVPS 1
444 #define L2TP_API_TUNNEL_PROFILE_FLAG_AUTH_MODE 2
445 #define L2TP_API_TUNNEL_PROFILE_FLAG_FRAMING_CAP 4
446 #define L2TP_API_TUNNEL_PROFILE_FLAG_BEARER_CAP 8
447 #define L2TP_API_TUNNEL_PROFILE_FLAG_USE_TIEBREAKER 16
448 #define L2TP_API_TUNNEL_PROFILE_FLAG_UNUSED_1 32
449 #define L2TP_API_TUNNEL_PROFILE_FLAG_HELLO_TIMEOUT 64
450 #define L2TP_API_TUNNEL_PROFILE_FLAG_MAX_RETRIES 128
451 #define L2TP_API_TUNNEL_PROFILE_FLAG_RX_WINDOW_SIZE 256
452 #define L2TP_API_TUNNEL_PROFILE_FLAG_TX_WINDOW_SIZE 512
453 #define L2TP_API_TUNNEL_PROFILE_FLAG_RETRY_TIMEOUT 1024
454 #define L2TP_API_TUNNEL_PROFILE_FLAG_IDLE_TIMEOUT 2048
455 #define L2TP_API_TUNNEL_PROFILE_FLAG_SECRET 4096
456 #define L2TP_API_TUNNEL_PROFILE_FLAG_ALLOW_PPP_PROXY 8192
457 #define L2TP_API_TUNNEL_PROFILE_FLAG_TRACE_FLAGS 16384
458 #define L2TP_API_TUNNEL_PROFILE_FLAG_USE_UDP_CHECKSUMS 32768
459 #define L2TP_API_TUNNEL_PROFILE_FLAG_HOST_NAME 65536
460 #define L2TP_API_TUNNEL_PROFILE_FLAG_MAX_SESSIONS 131072
461 #define L2TP_API_TUNNEL_PROFILE_FLAG_OUR_ADDR 262144
462 #define L2TP_API_TUNNEL_PROFILE_FLAG_PEER_ADDR 524288
463 #define L2TP_API_TUNNEL_PROFILE_FLAG_OUR_UDP_PORT 1048576
464 #define L2TP_API_TUNNEL_PROFILE_FLAG_PEER_UDP_PORT 2097152
465 #define L2TP_API_TUNNEL_PROFILE_FLAG_UNUSED_2 4194304
466 #define L2TP_API_TUNNEL_PROFILE_FLAG_PEER_PROFILE_NAME 8388608
467 #define L2TP_API_TUNNEL_PROFILE_FLAG_SESSION_PROFILE_NAME 16777216
468 #define L2TP_API_TUNNEL_PROFILE_FLAG_PPP_PROFILE_NAME 33554432
469 #define L2TP_API_TUNNEL_PROFILE_FLAG_DO_PMTU_DISCOVERY 67108864
470 #define L2TP_API_TUNNEL_PROFILE_FLAG_MTU 134217728
471
472 struct l2tp_api_tunnel_profile_msg_data {
473         uint32_t flags;
474         char *profile_name;
475         int result_code;
476         int hide_avps;
477         enum l2tp_api_tunnel_auth_mode auth_mode;
478         bool_t framing_cap_sync;
479         bool_t framing_cap_async;
480         bool_t bearer_cap_digital;
481         bool_t bearer_cap_analog;
482         bool_t use_tiebreaker;
483         bool_t allow_ppp_proxy;
484         bool_t use_udp_checksums;
485         int hello_timeout;
486         int max_retries;
487         uint16_t rx_window_size;
488         uint16_t tx_window_size;
489         int retry_timeout;
490         int idle_timeout;
491         uint32_t trace_flags;
492         uint32_t trace_flags_mask;
493         int max_sessions;
494         struct l2tp_api_ip_addr our_addr;
495         struct l2tp_api_ip_addr peer_addr;
496         uint16_t our_udp_port;
497         uint16_t peer_udp_port;
498         bool_t do_pmtu_discovery;
499         int mtu;
500         optstring peer_profile_name;
501         optstring session_profile_name;
502         optstring ppp_profile_name;
503         optstring secret;
504         optstring host_name;
505 };
506 typedef struct l2tp_api_tunnel_profile_msg_data l2tp_api_tunnel_profile_msg_data;
507
508 struct l2tp_api_tunnel_profile_list_entry {
509         char *profile_name;
510         struct l2tp_api_tunnel_profile_list_entry *next;
511 };
512 typedef struct l2tp_api_tunnel_profile_list_entry l2tp_api_tunnel_profile_list_entry;
513
514 struct l2tp_api_tunnel_profile_list_msg_data {
515         int result;
516         int num_profiles;
517         struct l2tp_api_tunnel_profile_list_entry *profiles;
518 };
519 typedef struct l2tp_api_tunnel_profile_list_msg_data l2tp_api_tunnel_profile_list_msg_data;
520
521 struct l2tp_api_tunnel_profile_unset_msg_data {
522         uint32_t flags;
523         int result_code;
524         char *profile_name;
525 };
526 typedef struct l2tp_api_tunnel_profile_unset_msg_data l2tp_api_tunnel_profile_unset_msg_data;
527 #define L2TP_API_SESSION_DEFAULT_SESSION_TYPE L2TP_API_SESSION_TYPE_UNSPECIFIED
528 #define L2TP_API_SESSION_FLAG_TRACE_FLAGS 1
529 #define L2TP_API_SESSION_FLAG_SEQUENCING_REQUIRED 2
530 #define L2TP_API_SESSION_FLAG_PPP_PROFILE_NAME 4
531 #define L2TP_API_SESSION_FLAG_SESSION_TYPE 8
532 #define L2TP_API_SESSION_FLAG_PRIV_GROUP_ID 16
533 #define L2TP_API_SESSION_FLAG_FRAMING_TYPE 32
534 #define L2TP_API_SESSION_FLAG_BEARER_TYPE 64
535 #define L2TP_API_SESSION_FLAG_MINIMUM_BPS 128
536 #define L2TP_API_SESSION_FLAG_MAXIMUM_BPS 256
537 #define L2TP_API_SESSION_FLAG_CONNECT_SPEED 512
538 #define L2TP_API_SESSION_FLAG_USE_PPP_PROXY 1024
539 #define L2TP_API_SESSION_FLAG_PROXY_AUTH_TYPE 8192
540 #define L2TP_API_SESSION_FLAG_PROXY_AUTH_NAME 16384
541 #define L2TP_API_SESSION_FLAG_PROXY_AUTH_CHALLENGE 32768
542 #define L2TP_API_SESSION_FLAG_PROXY_AUTH_RESPONSE 65536
543 #define L2TP_API_SESSION_FLAG_CALLING_NUMBER 131072
544 #define L2TP_API_SESSION_FLAG_CALLED_NUMBER 262144
545 #define L2TP_API_SESSION_FLAG_SUB_ADDRESS 524288
546 #define L2TP_API_SESSION_FLAG_INITIAL_RCVD_LCP_CONFREQ 1048576
547 #define L2TP_API_SESSION_FLAG_LAST_SENT_LCP_CONFREQ 2097152
548 #define L2TP_API_SESSION_FLAG_LAST_RCVD_LCP_CONFREQ 4194304
549 #define L2TP_API_SESSION_FLAG_USER_NAME 8388608
550 #define L2TP_API_SESSION_FLAG_USER_PASSWORD 16777216
551 #define L2TP_API_SESSION_FLAG_USE_SEQUENCE_NUMBERS 33554432
552 #define L2TP_API_SESSION_FLAG_REORDER_TIMEOUT 67108864
553 #define L2TP_API_SESSION_FLAG_TUNNEL_NAME 134217728
554 #define L2TP_API_SESSION_FLAG_SESSION_NAME 268435456
555 #define L2TP_API_SESSION_FLAG_INTERFACE_NAME 536870912
556 #define L2TP_API_SESSION_FLAG_PROFILE_NAME 1073741824
557 #define L2TP_API_SESSION_FLAG_NO_PPP 2147483648
558
559 enum l2tp_api_session_proxy_auth_type {
560         L2TP_API_SESSION_PROXY_AUTH_TYPE_RESERVED = 0,
561         L2TP_API_SESSION_PROXY_AUTH_TYPE_PLAIN_TEXT = 1,
562         L2TP_API_SESSION_PROXY_AUTH_TYPE_PPP_CHAP = 2,
563         L2TP_API_SESSION_PROXY_AUTH_TYPE_PPP_PAP = 3,
564         L2TP_API_SESSION_PROXY_AUTH_TYPE_NO_AUTH = 4,
565         L2TP_API_SESSION_PROXY_AUTH_TYPE_PPP_MSCHAPV1 = 5,
566 };
567 typedef enum l2tp_api_session_proxy_auth_type l2tp_api_session_proxy_auth_type;
568
569 struct l2tp_api_session_call_errors {
570         uint32_t crc_errors;
571         uint32_t framing_errors;
572         uint32_t hardware_overruns;
573         uint32_t buffer_overruns;
574         uint32_t timeout_errors;
575         uint32_t alignment_errors;
576 };
577 typedef struct l2tp_api_session_call_errors l2tp_api_session_call_errors;
578
579 struct l2tp_api_session_stats {
580         uint64_t data_rx_packets;
581         uint64_t data_rx_bytes;
582         uint64_t data_rx_errors;
583         uint64_t data_rx_oos_packets;
584         uint64_t data_rx_oos_discards;
585         uint64_t data_tx_packets;
586         uint64_t data_tx_bytes;
587         uint64_t data_tx_errors;
588 };
589 typedef struct l2tp_api_session_stats l2tp_api_session_stats;
590
591 struct l2tp_api_session_peer_info {
592         uint16_t result_code;
593         uint16_t error_code;
594         optstring error_message;
595         uint32_t minimum_bps;
596         uint32_t maximum_bps;
597         uint32_t connect_speed;
598         uint32_t rx_connect_speed;
599         enum l2tp_api_session_proxy_auth_type proxy_auth_type;
600         uint8_t proxy_auth_id;
601         optstring proxy_auth_name;
602         struct {
603                 u_int proxy_auth_challenge_len;
604                 uint8_t *proxy_auth_challenge_val;
605         } proxy_auth_challenge;
606         struct {
607                 u_int proxy_auth_response_len;
608                 uint8_t *proxy_auth_response_val;
609         } proxy_auth_response;
610         optstring private_group_id;
611         bool_t framing_type_sync;
612         bool_t framing_type_async;
613         bool_t bearer_type_digital;
614         bool_t bearer_type_analog;
615         bool_t sequencing_required;
616         uint32_t call_serial_number;
617         uint32_t physical_channel_id;
618         struct {
619                 u_int initial_rcvd_lcp_confreq_len;
620                 uint8_t *initial_rcvd_lcp_confreq_val;
621         } initial_rcvd_lcp_confreq;
622         struct {
623                 u_int last_sent_lcp_confreq_len;
624                 uint8_t *last_sent_lcp_confreq_val;
625         } last_sent_lcp_confreq;
626         struct {
627                 u_int last_rcvd_lcp_confreq_len;
628                 uint8_t *last_rcvd_lcp_confreq_val;
629         } last_rcvd_lcp_confreq;
630         optstring calling_number;
631         optstring called_number;
632         optstring sub_address;
633         uint16_t q931_cause_code;
634         uint16_t q931_cause_msg;
635         optstring q931_advisory_msg;
636         struct l2tp_api_session_call_errors call_errors;
637         uint32_t send_accm;
638         uint32_t recv_accm;
639 };
640 typedef struct l2tp_api_session_peer_info l2tp_api_session_peer_info;
641
642 enum l2tp_api_session_type {
643         L2TP_API_SESSION_TYPE_UNSPECIFIED = 0,
644         L2TP_API_SESSION_TYPE_LAIC = 1,
645         L2TP_API_SESSION_TYPE_LAOC = 2,
646         L2TP_API_SESSION_TYPE_LNIC = 3,
647         L2TP_API_SESSION_TYPE_LNOC = 4,
648 };
649 typedef enum l2tp_api_session_type l2tp_api_session_type;
650
651 struct l2tp_api_session_msg_data {
652         uint32_t flags;
653         uint16_t tunnel_id;
654         uint16_t session_id;
655         int result_code;
656         optstring tunnel_name;
657         uint16_t peer_session_id;
658         optstring state;
659         optstring session_name;
660         optstring interface_name;
661         enum l2tp_api_session_type session_type;
662         optstring user_name;
663         optstring user_password;
664         optstring priv_group_id;
665         optstring profile_name;
666         bool_t created_by_admin;
667         optstring create_time;
668         bool_t no_ppp;
669         bool_t sequencing_required;
670         bool_t use_sequence_numbers;
671         int reorder_timeout;
672         bool_t framing_type_sync;
673         bool_t framing_type_async;
674         bool_t bearer_type_digital;
675         bool_t bearer_type_analog;
676         uint32_t call_serial_number;
677         uint32_t physical_channel_id;
678         uint32_t trace_flags;
679         uint32_t trace_flags_mask;
680         int minimum_bps;
681         int maximum_bps;
682         int tx_connect_speed;
683         int rx_connect_speed;
684         struct l2tp_api_session_peer_info peer;
685         optstring ppp_profile_name;
686         struct l2tp_api_session_stats stats;
687         bool_t use_ppp_proxy;
688         enum l2tp_api_session_proxy_auth_type proxy_auth_type;
689         optstring proxy_auth_name;
690         struct {
691                 u_int proxy_auth_challenge_len;
692                 uint8_t *proxy_auth_challenge_val;
693         } proxy_auth_challenge;
694         struct {
695                 u_int proxy_auth_response_len;
696                 uint8_t *proxy_auth_response_val;
697         } proxy_auth_response;
698         optstring calling_number;
699         optstring called_number;
700         optstring sub_address;
701         struct {
702                 u_int initial_rcvd_lcp_confreq_len;
703                 uint8_t *initial_rcvd_lcp_confreq_val;
704         } initial_rcvd_lcp_confreq;
705         struct {
706                 u_int last_sent_lcp_confreq_len;
707                 uint8_t *last_sent_lcp_confreq_val;
708         } last_sent_lcp_confreq;
709         struct {
710                 u_int last_rcvd_lcp_confreq_len;
711                 uint8_t *last_rcvd_lcp_confreq_val;
712         } last_rcvd_lcp_confreq;
713 };
714 typedef struct l2tp_api_session_msg_data l2tp_api_session_msg_data;
715
716 struct l2tp_api_session_list_msg_data {
717         int result;
718         struct {
719                 u_int session_ids_len;
720                 uint16_t *session_ids_val;
721         } session_ids;
722 };
723 typedef struct l2tp_api_session_list_msg_data l2tp_api_session_list_msg_data;
724
725 struct l2tp_api_session_incall_msg_data {
726         int ppp_unit;
727         char *tunnel_profile_name;
728         struct l2tp_api_session_msg_data session;
729 };
730 typedef struct l2tp_api_session_incall_msg_data l2tp_api_session_incall_msg_data;
731 #define L2TP_API_SESSION_PROFILE_DEFAULT_PROFILE_NAME "default"
732 #define L2TP_API_SESSION_PROFILE_DEFAULT_SESSION_TRACE_FLAGS 0
733 #define L2TP_API_SESSION_PROFILE_DEFAULT_SESSION_SEQUENCING_REQUIRED 0
734 #define L2TP_API_SESSION_PROFILE_DEFAULT_SESSION_TYPE L2TP_API_SESSION_TYPE_UNSPECIFIED
735 #define L2TP_API_SESSION_PROFILE_DEFAULT_SESSION_FRAMING_TYPE_SYNC 1
736 #define L2TP_API_SESSION_PROFILE_DEFAULT_SESSION_FRAMING_TYPE_ASYNC 1
737 #define L2TP_API_SESSION_PROFILE_DEFAULT_SESSION_BEARER_TYPE_ANALOG 1
738 #define L2TP_API_SESSION_PROFILE_DEFAULT_SESSION_BEARER_TYPE_DIGITAL 1
739 #define L2TP_API_SESSION_PROFILE_DEFAULT_SESSION_MINIMUM_BPS 0
740 #define L2TP_API_SESSION_PROFILE_DEFAULT_SESSION_MAXIMUM_BPS 0
741 #define L2TP_API_SESSION_PROFILE_DEFAULT_SESSION_TX_CONNECT_SPEED 1000000
742 #define L2TP_API_SESSION_PROFILE_DEFAULT_SESSION_RX_CONNECT_SPEED 0
743 #define L2TP_API_SESSION_PROFILE_DEFAULT_SESSION_USE_PPP_PROXY FALSE
744 #define L2TP_API_SESSION_PROFILE_DEFAULT_SESSION_USE_SEQUENCE_NUMBERS FALSE
745 #define L2TP_API_SESSION_PROFILE_DEFAULT_SESSION_REORDER_TIMEOUT 0
746 #define L2TP_API_SESSION_PROFILE_DEFAULT_SESSION_NO_PPP FALSE
747 #define L2TP_API_SESSION_PROFILE_FLAG_TRACE_FLAGS 1
748 #define L2TP_API_SESSION_PROFILE_FLAG_SEQUENCING_REQUIRED 2
749 #define L2TP_API_SESSION_PROFILE_FLAG_PPP_PROFILE_NAME 4
750 #define L2TP_API_SESSION_PROFILE_FLAG_SESSION_TYPE 8
751 #define L2TP_API_SESSION_PROFILE_FLAG_PRIV_GROUP_ID 16
752 #define L2TP_API_SESSION_PROFILE_FLAG_FRAMING_TYPE 32
753 #define L2TP_API_SESSION_PROFILE_FLAG_BEARER_TYPE 64
754 #define L2TP_API_SESSION_PROFILE_FLAG_MINIMUM_BPS 128
755 #define L2TP_API_SESSION_PROFILE_FLAG_MAXIMUM_BPS 256
756 #define L2TP_API_SESSION_PROFILE_FLAG_CONNECT_SPEED 512
757 #define L2TP_API_SESSION_PROFILE_FLAG_USE_PPP_PROXY 1024
758 #define L2TP_API_SESSION_PROFILE_FLAG_USE_SEQUENCE_NUMBERS 2048
759 #define L2TP_API_SESSION_PROFILE_FLAG_REORDER_TIMEOUT 4096
760 #define L2TP_API_SESSION_PROFILE_FLAG_NO_PPP 8192
761
762 struct l2tp_api_session_profile_msg_data {
763         uint32_t flags;
764         int result_code;
765         char *profile_name;
766         bool_t sequencing_required;
767         bool_t use_sequence_numbers;
768         bool_t no_ppp;
769         int reorder_timeout;
770         bool_t do_pmtu_discovery;
771         int mtu;
772         int mru;
773         uint32_t trace_flags;
774         uint32_t trace_flags_mask;
775         optstring ppp_profile_name;
776         enum l2tp_api_session_type session_type;
777         optstring priv_group_id;
778         bool_t framing_type_sync;
779         bool_t framing_type_async;
780         bool_t bearer_type_digital;
781         bool_t bearer_type_analog;
782         int minimum_bps;
783         int maximum_bps;
784         int tx_connect_speed;
785         int rx_connect_speed;
786         bool_t use_ppp_proxy;
787 };
788 typedef struct l2tp_api_session_profile_msg_data l2tp_api_session_profile_msg_data;
789
790 struct l2tp_api_session_profile_list_entry {
791         char *profile_name;
792         struct l2tp_api_session_profile_list_entry *next;
793 };
794 typedef struct l2tp_api_session_profile_list_entry l2tp_api_session_profile_list_entry;
795
796 struct l2tp_api_session_profile_list_msg_data {
797         int result;
798         int num_profiles;
799         struct l2tp_api_session_profile_list_entry *profiles;
800 };
801 typedef struct l2tp_api_session_profile_list_msg_data l2tp_api_session_profile_list_msg_data;
802
803 struct l2tp_api_session_profile_unset_msg_data {
804         uint32_t flags;
805         int result_code;
806         char *profile_name;
807 };
808 typedef struct l2tp_api_session_profile_unset_msg_data l2tp_api_session_profile_unset_msg_data;
809 #define L2TP_API_PPP_PROFILE_FLAG_TRACE_FLAGS 1
810 #define L2TP_API_PPP_PROFILE_FLAG_ASYNCMAP 2
811 #define L2TP_API_PPP_PROFILE_FLAG_MRU 4
812 #define L2TP_API_PPP_PROFILE_FLAG_MTU 8
813 #define L2TP_API_PPP_PROFILE_FLAG_USE_RADIUS 32
814 #define L2TP_API_PPP_PROFILE_FLAG_RADIUS_HINT 64
815 #define L2TP_API_PPP_PROFILE_FLAG_SYNC_MODE 256
816 #define L2TP_API_PPP_PROFILE_FLAG_CHAP_INTERVAL 512
817 #define L2TP_API_PPP_PROFILE_FLAG_CHAP_MAX_CHALLENGE 1024
818 #define L2TP_API_PPP_PROFILE_FLAG_CHAP_RESTART 2048
819 #define L2TP_API_PPP_PROFILE_FLAG_PAP_MAX_AUTH_REQUESTS 4096
820 #define L2TP_API_PPP_PROFILE_FLAG_PAP_RESTART_INTERVAL 8192
821 #define L2TP_API_PPP_PROFILE_FLAG_PAP_TIMEOUT 16384
822 #define L2TP_API_PPP_PROFILE_FLAG_IDLE_TIMEOUT 32768
823 #define L2TP_API_PPP_PROFILE_FLAG_IPCP_MAX_CONFIG_REQUESTS 65536
824 #define L2TP_API_PPP_PROFILE_FLAG_IPCP_MAX_CONFIG_NAKS 131072
825 #define L2TP_API_PPP_PROFILE_FLAG_IPCP_MAX_TERMINATE_REQUESTS 262144
826 #define L2TP_API_PPP_PROFILE_FLAG_IPCP_RETRANSMIT_INTERVAL 524288
827 #define L2TP_API_PPP_PROFILE_FLAG_LCP_ECHO_FAILURE_COUNT 1048576
828 #define L2TP_API_PPP_PROFILE_FLAG_LCP_ECHO_INTERVAL 2097152
829 #define L2TP_API_PPP_PROFILE_FLAG_LCP_MAX_CONFIG_REQUESTS 4194304
830 #define L2TP_API_PPP_PROFILE_FLAG_LCP_MAX_CONFIG_NAKS 8388608
831 #define L2TP_API_PPP_PROFILE_FLAG_LCP_MAX_TERMINATE_REQUESTS 16777216
832 #define L2TP_API_PPP_PROFILE_FLAG_LCP_RETRANSMIT_INTERVAL 33554432
833 #define L2TP_API_PPP_PROFILE_FLAG_MAX_CONNECT_TIME 67108864
834 #define L2TP_API_PPP_PROFILE_FLAG_MAX_FAILURE_COUNT 134217728
835 #define L2TP_API_PPP_PROFILE_FLAG_DNS_ADDR_1 1
836 #define L2TP_API_PPP_PROFILE_FLAG_DNS_ADDR_2 2
837 #define L2TP_API_PPP_PROFILE_FLAG_WINS_ADDR_1 4
838 #define L2TP_API_PPP_PROFILE_FLAG_WINS_ADDR_2 8
839 #define L2TP_API_PPP_PROFILE_FLAG_LOCAL_IP_ADDR 16
840 #define L2TP_API_PPP_PROFILE_FLAG_PEER_IP_ADDR 32
841 #define L2TP_API_PPP_PROFILE_FLAG_IP_POOL_NAME 64
842 #define L2TP_API_PPP_PROFILE_FLAG_USE_AS_DEFAULT_ROUTE 128
843 #define L2TP_API_PPP_PROFILE_FLAG_MULTILINK 256
844 #define L2TP_API_PPP_PROFILE_FLAG_LOCAL_NAME 512
845 #define L2TP_API_PPP_PROFILE_FLAG_REMOTE_NAME 1024
846 #define L2TP_API_PPP_PROFILE_FLAG_PROXY_ARP 2048
847 #define L2TP_API_PPP_PROFILE_FLAG_AUTH_NONE 4096
848 #define L2TP_API_PPP_PROFILE_FLAG_AUTH_REFUSE_EAP 8192
849 #define L2TP_API_PPP_PROFILE_FLAG_AUTH_REFUSE_MSCHAPV2 16384
850 #define L2TP_API_PPP_PROFILE_FLAG_AUTH_REFUSE_MSCHAP 32768
851 #define L2TP_API_PPP_PROFILE_FLAG_AUTH_REFUSE_CHAP 65536
852 #define L2TP_API_PPP_PROFILE_FLAG_AUTH_REFUSE_PAP 131072
853 #define L2TP_API_PPP_PROFILE_FLAG_AUTH_PEER 262144
854 #define L2TP_API_PPP_PROFILE_DEFAULT_PROFILE_NAME "default"
855 #define L2TP_API_PPP_PROFILE_DEFAULT_TRACE_FLAGS 0
856 #define L2TP_API_PPP_PROFILE_DEFAULT_ASYNCMAP 0
857 #define L2TP_API_PPP_PROFILE_DEFAULT_MRU 1500
858 #define L2TP_API_PPP_PROFILE_DEFAULT_MTU 1500
859 #define L2TP_API_PPP_PROFILE_DEFAULT_AUTH_NONE 0
860 #define L2TP_API_PPP_PROFILE_DEFAULT_AUTH_PEER 0
861 #define L2TP_API_PPP_PROFILE_DEFAULT_AUTH_REFUSE_PAP 0
862 #define L2TP_API_PPP_PROFILE_DEFAULT_AUTH_REFUSE_CHAP 0
863 #define L2TP_API_PPP_PROFILE_DEFAULT_AUTH_REFUSE_MSCHAP 0
864 #define L2TP_API_PPP_PROFILE_DEFAULT_AUTH_REFUSE_MSCHAPV2 0
865 #define L2TP_API_PPP_PROFILE_DEFAULT_AUTH_REFUSE_EAP 0
866 #define L2TP_API_PPP_PROFILE_DEFAULT_SYNC_MODE L2TP_API_PPP_SYNCMODE_SYNC_ASYNC
867 #define L2TP_API_PPP_PROFILE_DEFAULT_CHAP_INTERVAL 10
868 #define L2TP_API_PPP_PROFILE_DEFAULT_CHAP_MAX_CHALLENGE 10
869 #define L2TP_API_PPP_PROFILE_DEFAULT_CHAP_RESTART 3
870 #define L2TP_API_PPP_PROFILE_DEFAULT_PAP_MAX_AUTH_REQUESTS 10
871 #define L2TP_API_PPP_PROFILE_DEFAULT_PAP_RESTART_INTERVAL 3
872 #define L2TP_API_PPP_PROFILE_DEFAULT_PAP_TIMEOUT 0
873 #define L2TP_API_PPP_PROFILE_DEFAULT_IDLE_TIMEOUT 0
874 #define L2TP_API_PPP_PROFILE_DEFAULT_IPCP_MAX_CONFIG_REQUESTS 10
875 #define L2TP_API_PPP_PROFILE_DEFAULT_IPCP_MAX_CONFIG_NAKS 10
876 #define L2TP_API_PPP_PROFILE_DEFAULT_IPCP_MAX_TERMINATE_REQUESTS 3
877 #define L2TP_API_PPP_PROFILE_DEFAULT_IPCP_RETRANSMIT_INTERVAL 3
878 #define L2TP_API_PPP_PROFILE_DEFAULT_LCP_ECHO_FAILURE_COUNT 0
879 #define L2TP_API_PPP_PROFILE_DEFAULT_LCP_ECHO_INTERVAL 0
880 #define L2TP_API_PPP_PROFILE_DEFAULT_LCP_MAX_CONFIG_REQUESTS 10
881 #define L2TP_API_PPP_PROFILE_DEFAULT_LCP_MAX_CONFIG_NAKS 10
882 #define L2TP_API_PPP_PROFILE_DEFAULT_LCP_MAX_TERMINATE_REQUESTS 3
883 #define L2TP_API_PPP_PROFILE_DEFAULT_LCP_RETRANSMIT_INTERVAL 3
884 #define L2TP_API_PPP_PROFILE_DEFAULT_MAX_CONNECT_TIME 0
885 #define L2TP_API_PPP_PROFILE_DEFAULT_MAX_FAILURE_COUNT 10
886 #define L2TP_API_PPP_PROFILE_DEFAULT_LOCAL_IP_ADDR 0
887 #define L2TP_API_PPP_PROFILE_DEFAULT_PEER_IP_ADDR 0
888 #define L2TP_API_PPP_PROFILE_DEFAULT_DNS_ADDR_1 0
889 #define L2TP_API_PPP_PROFILE_DEFAULT_DNS_ADDR_2 0
890 #define L2TP_API_PPP_PROFILE_DEFAULT_WINS_ADDR_1 0
891 #define L2TP_API_PPP_PROFILE_DEFAULT_WINS_ADDR_2 0
892 #define L2TP_API_PPP_PROFILE_DEFAULT_USE_RADIUS 0
893 #define L2TP_API_PPP_PROFILE_DEFAULT_RADIUS_HINT ""
894 #define L2TP_API_PPP_PROFILE_DEFAULT_USE_AS_DEFAULT_ROUTE 0
895 #define L2TP_API_PPP_PROFILE_DEFAULT_MULTILINK 0
896 #define L2TP_API_PPP_PROFILE_DEFAULT_PROXY_ARP 0
897
898 enum l2tp_api_ppp_sync_mode {
899         L2TP_API_PPP_SYNCMODE_SYNC_ASYNC = 0,
900         L2TP_API_PPP_SYNCMODE_SYNC = 1,
901         L2TP_API_PPP_SYNCMODE_ASYNC = 2,
902 };
903 typedef enum l2tp_api_ppp_sync_mode l2tp_api_ppp_sync_mode;
904
905 struct l2tp_api_ppp_profile_msg_data {
906         uint32_t flags;
907         uint32_t flags2;
908         int result_code;
909         uint32_t trace_flags;
910         uint32_t trace_flags_mask;
911         char *profile_name;
912         uint32_t asyncmap;
913         uint16_t mru;
914         uint16_t mtu;
915         bool_t auth_none;
916         bool_t auth_peer;
917         bool_t auth_refuse_pap;
918         bool_t auth_refuse_chap;
919         bool_t auth_refuse_mschap;
920         bool_t auth_refuse_mschapv2;
921         bool_t auth_refuse_eap;
922         enum l2tp_api_ppp_sync_mode sync_mode;
923         int chap_interval;
924         int chap_max_challenge;
925         int chap_restart;
926         int pap_max_auth_requests;
927         int pap_restart_interval;
928         int pap_timeout;
929         int idle_timeout;
930         int ipcp_max_config_requests;
931         int ipcp_max_config_naks;
932         int ipcp_max_terminate_requests;
933         int ipcp_retransmit_interval;
934         int lcp_echo_failure_count;
935         int lcp_echo_interval;
936         int lcp_max_config_requests;
937         int lcp_max_config_naks;
938         int lcp_max_terminate_requests;
939         int lcp_retransmit_interval;
940         int max_connect_time;
941         int max_failure_count;
942         struct l2tp_api_ip_addr local_ip_addr;
943         struct l2tp_api_ip_addr peer_ip_addr;
944         struct l2tp_api_ip_addr dns_addr_1;
945         struct l2tp_api_ip_addr dns_addr_2;
946         struct l2tp_api_ip_addr wins_addr_1;
947         struct l2tp_api_ip_addr wins_addr_2;
948         optstring ip_pool_name;
949         bool_t use_radius;
950         optstring radius_hint;
951         bool_t use_as_default_route;
952         bool_t multilink;
953         optstring local_name;
954         optstring remote_name;
955         bool_t proxy_arp;
956 };
957 typedef struct l2tp_api_ppp_profile_msg_data l2tp_api_ppp_profile_msg_data;
958
959 struct l2tp_api_ppp_profile_list_entry {
960         char *profile_name;
961         struct l2tp_api_ppp_profile_list_entry *next;
962 };
963 typedef struct l2tp_api_ppp_profile_list_entry l2tp_api_ppp_profile_list_entry;
964
965 struct l2tp_api_ppp_profile_list_msg_data {
966         int result;
967         int num_profiles;
968         struct l2tp_api_ppp_profile_list_entry *profiles;
969 };
970 typedef struct l2tp_api_ppp_profile_list_msg_data l2tp_api_ppp_profile_list_msg_data;
971
972 struct l2tp_api_ppp_profile_unset_msg_data {
973         uint32_t flags;
974         uint32_t flags2;
975         int result_code;
976         char *profile_name;
977 };
978 typedef struct l2tp_api_ppp_profile_unset_msg_data l2tp_api_ppp_profile_unset_msg_data;
979
980 struct l2tp_api_user_list_entry {
981         char *user_name;
982         char *create_time;
983         bool_t created_by_admin;
984         uint16_t tunnel_id;
985         uint16_t session_id;
986         struct l2tp_api_user_list_entry *next;
987 };
988 typedef struct l2tp_api_user_list_entry l2tp_api_user_list_entry;
989
990 struct l2tp_api_user_list_msg_data {
991         int result;
992         int num_users;
993         struct l2tp_api_user_list_entry *users;
994 };
995 typedef struct l2tp_api_user_list_msg_data l2tp_api_user_list_msg_data;
996 #define L2TP_API_TEST_FLAG_FAKE_RX_DROP 1
997 #define L2TP_API_TEST_FLAG_FAKE_TX_DROP 2
998 #define L2TP_API_TEST_FLAG_FAKE_TRIGGER_TYPE 4
999 #define L2TP_API_TEST_FLAG_CLEAR_FAKE_TRIGGER 8
1000 #define L2TP_API_TEST_FLAG_HOLD_TUNNELS 16
1001 #define L2TP_API_TEST_FLAG_HOLD_SESSIONS 32
1002 #define L2TP_API_TEST_FLAG_NO_RANDOM_IDS 64
1003 #define L2TP_API_TEST_FLAG_RESET_IDS 128
1004 #define L2TP_API_TEST_FLAG_DO_TRANSPORT_TEST 256
1005 #define L2TP_API_TEST_FLAG_TUNNEL_ID 512
1006 #define L2TP_API_TEST_FLAG_SESSION_ID 1024
1007 #define L2TP_API_TEST_FLAG_DEFAULT_CONFIG 2048
1008 #define L2TP_API_TEST_FLAG_SHOW_PROFILE_USAGE 4096
1009
1010 enum l2tp_api_test_trigger_type {
1011         L2TP_API_TEST_FAKE_TRIGGER_OFF = 0,
1012         L2TP_API_TEST_FAKE_TRIGGER_ON = 1,
1013         L2TP_API_TEST_FAKE_TRIGGER_ONCE = 2,
1014         L2TP_API_TEST_FAKE_TRIGGER_LOW = 3,
1015         L2TP_API_TEST_FAKE_TRIGGER_MEDIUM = 4,
1016         L2TP_API_TEST_FAKE_TRIGGER_HIGH = 5,
1017 };
1018 typedef enum l2tp_api_test_trigger_type l2tp_api_test_trigger_type;
1019
1020 struct l2tp_api_test_msg_data {
1021         uint32_t flags;
1022         bool_t fake_rx_drop;
1023         bool_t fake_tx_drop;
1024         bool_t fake_trigger_fired;
1025         bool_t hold_tunnels;
1026         bool_t hold_sessions;
1027         bool_t no_random_ids;
1028         bool_t show_profile_usage;
1029         int num_rx_drops;
1030         int num_tx_drops;
1031         enum l2tp_api_test_trigger_type fake_trigger_type;
1032         uint16_t tunnel_id;
1033         uint16_t session_id;
1034         int num_tunnel_id_hash_hits;
1035         int num_tunnel_id_hash_misses;
1036         int num_tunnel_name_hash_hits;
1037         int num_tunnel_name_hash_misses;
1038         int num_session_id_hash_hits;
1039         int num_session_id_hash_misses;
1040 };
1041 typedef struct l2tp_api_test_msg_data l2tp_api_test_msg_data;
1042
1043 struct l2tp_tunnel_delete_1_argument {
1044         uint16_t tunnel_id;
1045         optstring tunnel_name;
1046         optstring reason;
1047 };
1048 typedef struct l2tp_tunnel_delete_1_argument l2tp_tunnel_delete_1_argument;
1049
1050 struct l2tp_tunnel_get_1_argument {
1051         uint16_t tunnel_id;
1052         optstring tunnel_name;
1053 };
1054 typedef struct l2tp_tunnel_get_1_argument l2tp_tunnel_get_1_argument;
1055
1056 struct l2tp_session_delete_1_argument {
1057         uint16_t tunnel_id;
1058         optstring tunnel_name;
1059         uint16_t session_id;
1060         optstring session_name;
1061         optstring reason;
1062 };
1063 typedef struct l2tp_session_delete_1_argument l2tp_session_delete_1_argument;
1064
1065 struct l2tp_session_get_1_argument {
1066         uint16_t tunnel_id;
1067         optstring tunnel_name;
1068         uint16_t session_id;
1069         optstring session_name;
1070 };
1071 typedef struct l2tp_session_get_1_argument l2tp_session_get_1_argument;
1072
1073 struct l2tp_session_list_1_argument {
1074         uint16_t tunnel_id;
1075         optstring tunnel_name;
1076 };
1077 typedef struct l2tp_session_list_1_argument l2tp_session_list_1_argument;
1078
1079 struct l2tp_peer_get_1_argument {
1080         struct l2tp_api_ip_addr local_addr;
1081         struct l2tp_api_ip_addr peer_addr;
1082 };
1083 typedef struct l2tp_peer_get_1_argument l2tp_peer_get_1_argument;
1084
1085 #define L2TP_PROG 300773
1086 #define L2TP_VERSION 1
1087
1088 #if defined(__STDC__) || defined(__cplusplus)
1089 #define L2TP_APP_INFO_GET 1
1090 extern  enum clnt_stat l2tp_app_info_get_1(struct l2tp_api_app_msg_data *, CLIENT *);
1091 extern  bool_t l2tp_app_info_get_1_svc(struct l2tp_api_app_msg_data *, struct svc_req *);
1092 #define L2TP_SYSTEM_MODIFY 2
1093 extern  enum clnt_stat l2tp_system_modify_1(struct l2tp_api_system_msg_data , int *, CLIENT *);
1094 extern  bool_t l2tp_system_modify_1_svc(struct l2tp_api_system_msg_data , int *, struct svc_req *);
1095 #define L2TP_SYSTEM_GET 3
1096 extern  enum clnt_stat l2tp_system_get_1(struct l2tp_api_system_msg_data *, CLIENT *);
1097 extern  bool_t l2tp_system_get_1_svc(struct l2tp_api_system_msg_data *, struct svc_req *);
1098 #define L2TP_PEER_PROFILE_CREATE 4
1099 extern  enum clnt_stat l2tp_peer_profile_create_1(struct l2tp_api_peer_profile_msg_data , int *, CLIENT *);
1100 extern  bool_t l2tp_peer_profile_create_1_svc(struct l2tp_api_peer_profile_msg_data , int *, struct svc_req *);
1101 #define L2TP_PEER_PROFILE_DELETE 5
1102 extern  enum clnt_stat l2tp_peer_profile_delete_1(char *, int *, CLIENT *);
1103 extern  bool_t l2tp_peer_profile_delete_1_svc(char *, int *, struct svc_req *);
1104 #define L2TP_PEER_PROFILE_MODIFY 6
1105 extern  enum clnt_stat l2tp_peer_profile_modify_1(struct l2tp_api_peer_profile_msg_data , int *, CLIENT *);
1106 extern  bool_t l2tp_peer_profile_modify_1_svc(struct l2tp_api_peer_profile_msg_data , int *, struct svc_req *);
1107 #define L2TP_PEER_PROFILE_GET 7
1108 extern  enum clnt_stat l2tp_peer_profile_get_1(char *, struct l2tp_api_peer_profile_msg_data *, CLIENT *);
1109 extern  bool_t l2tp_peer_profile_get_1_svc(char *, struct l2tp_api_peer_profile_msg_data *, struct svc_req *);
1110 #define L2TP_PEER_PROFILE_LIST 8
1111 extern  enum clnt_stat l2tp_peer_profile_list_1(struct l2tp_api_peer_profile_list_msg_data *, CLIENT *);
1112 extern  bool_t l2tp_peer_profile_list_1_svc(struct l2tp_api_peer_profile_list_msg_data *, struct svc_req *);
1113 #define L2TP_TUNNEL_CREATE 9
1114 extern  enum clnt_stat l2tp_tunnel_create_1(struct l2tp_api_tunnel_msg_data , int *, CLIENT *);
1115 extern  bool_t l2tp_tunnel_create_1_svc(struct l2tp_api_tunnel_msg_data , int *, struct svc_req *);
1116 #define L2TP_TUNNEL_DELETE 10
1117 extern  enum clnt_stat l2tp_tunnel_delete_1(uint16_t , optstring , optstring , int *, CLIENT *);
1118 extern  bool_t l2tp_tunnel_delete_1_svc(uint16_t , optstring , optstring , int *, struct svc_req *);
1119 #define L2TP_TUNNEL_MODIFY 11
1120 extern  enum clnt_stat l2tp_tunnel_modify_1(struct l2tp_api_tunnel_msg_data , int *, CLIENT *);
1121 extern  bool_t l2tp_tunnel_modify_1_svc(struct l2tp_api_tunnel_msg_data , int *, struct svc_req *);
1122 #define L2TP_TUNNEL_GET 12
1123 extern  enum clnt_stat l2tp_tunnel_get_1(uint16_t , optstring , struct l2tp_api_tunnel_msg_data *, CLIENT *);
1124 extern  bool_t l2tp_tunnel_get_1_svc(uint16_t , optstring , struct l2tp_api_tunnel_msg_data *, struct svc_req *);
1125 #define L2TP_TUNNEL_LIST 13
1126 extern  enum clnt_stat l2tp_tunnel_list_1(struct l2tp_api_tunnel_list_msg_data *, CLIENT *);
1127 extern  bool_t l2tp_tunnel_list_1_svc(struct l2tp_api_tunnel_list_msg_data *, struct svc_req *);
1128 #define L2TP_TUNNEL_PROFILE_CREATE 14
1129 extern  enum clnt_stat l2tp_tunnel_profile_create_1(struct l2tp_api_tunnel_profile_msg_data , int *, CLIENT *);
1130 extern  bool_t l2tp_tunnel_profile_create_1_svc(struct l2tp_api_tunnel_profile_msg_data , int *, struct svc_req *);
1131 #define L2TP_TUNNEL_PROFILE_DELETE 15
1132 extern  enum clnt_stat l2tp_tunnel_profile_delete_1(char *, int *, CLIENT *);
1133 extern  bool_t l2tp_tunnel_profile_delete_1_svc(char *, int *, struct svc_req *);
1134 #define L2TP_TUNNEL_PROFILE_MODIFY 16
1135 extern  enum clnt_stat l2tp_tunnel_profile_modify_1(struct l2tp_api_tunnel_profile_msg_data , int *, CLIENT *);
1136 extern  bool_t l2tp_tunnel_profile_modify_1_svc(struct l2tp_api_tunnel_profile_msg_data , int *, struct svc_req *);
1137 #define L2TP_TUNNEL_PROFILE_GET 17
1138 extern  enum clnt_stat l2tp_tunnel_profile_get_1(char *, struct l2tp_api_tunnel_profile_msg_data *, CLIENT *);
1139 extern  bool_t l2tp_tunnel_profile_get_1_svc(char *, struct l2tp_api_tunnel_profile_msg_data *, struct svc_req *);
1140 #define L2TP_TUNNEL_PROFILE_LIST 18
1141 extern  enum clnt_stat l2tp_tunnel_profile_list_1(struct l2tp_api_tunnel_profile_list_msg_data *, CLIENT *);
1142 extern  bool_t l2tp_tunnel_profile_list_1_svc(struct l2tp_api_tunnel_profile_list_msg_data *, struct svc_req *);
1143 #define L2TP_SESSION_CREATE 19
1144 extern  enum clnt_stat l2tp_session_create_1(struct l2tp_api_session_msg_data , int *, CLIENT *);
1145 extern  bool_t l2tp_session_create_1_svc(struct l2tp_api_session_msg_data , int *, struct svc_req *);
1146 #define L2TP_SESSION_DELETE 20
1147 extern  enum clnt_stat l2tp_session_delete_1(uint16_t , optstring , uint16_t , optstring , optstring , int *, CLIENT *);
1148 extern  bool_t l2tp_session_delete_1_svc(uint16_t , optstring , uint16_t , optstring , optstring , int *, struct svc_req *);
1149 #define L2TP_SESSION_MODIFY 21
1150 extern  enum clnt_stat l2tp_session_modify_1(struct l2tp_api_session_msg_data , int *, CLIENT *);
1151 extern  bool_t l2tp_session_modify_1_svc(struct l2tp_api_session_msg_data , int *, struct svc_req *);
1152 #define L2TP_SESSION_GET 22
1153 extern  enum clnt_stat l2tp_session_get_1(uint16_t , optstring , uint16_t , optstring , struct l2tp_api_session_msg_data *, CLIENT *);
1154 extern  bool_t l2tp_session_get_1_svc(uint16_t , optstring , uint16_t , optstring , struct l2tp_api_session_msg_data *, struct svc_req *);
1155 #define L2TP_SESSION_LIST 23
1156 extern  enum clnt_stat l2tp_session_list_1(uint16_t , optstring , struct l2tp_api_session_list_msg_data *, CLIENT *);
1157 extern  bool_t l2tp_session_list_1_svc(uint16_t , optstring , struct l2tp_api_session_list_msg_data *, struct svc_req *);
1158 #define L2TP_SESSION_INCALL_IND 24
1159 extern  enum clnt_stat l2tp_session_incall_ind_1(struct l2tp_api_session_incall_msg_data , int *, CLIENT *);
1160 extern  bool_t l2tp_session_incall_ind_1_svc(struct l2tp_api_session_incall_msg_data , int *, struct svc_req *);
1161 #define L2TP_SESSION_PROFILE_CREATE 25
1162 extern  enum clnt_stat l2tp_session_profile_create_1(struct l2tp_api_session_profile_msg_data , int *, CLIENT *);
1163 extern  bool_t l2tp_session_profile_create_1_svc(struct l2tp_api_session_profile_msg_data , int *, struct svc_req *);
1164 #define L2TP_SESSION_PROFILE_DELETE 26
1165 extern  enum clnt_stat l2tp_session_profile_delete_1(char *, int *, CLIENT *);
1166 extern  bool_t l2tp_session_profile_delete_1_svc(char *, int *, struct svc_req *);
1167 #define L2TP_SESSION_PROFILE_MODIFY 27
1168 extern  enum clnt_stat l2tp_session_profile_modify_1(struct l2tp_api_session_profile_msg_data , int *, CLIENT *);
1169 extern  bool_t l2tp_session_profile_modify_1_svc(struct l2tp_api_session_profile_msg_data , int *, struct svc_req *);
1170 #define L2TP_SESSION_PROFILE_GET 28
1171 extern  enum clnt_stat l2tp_session_profile_get_1(char *, struct l2tp_api_session_profile_msg_data *, CLIENT *);
1172 extern  bool_t l2tp_session_profile_get_1_svc(char *, struct l2tp_api_session_profile_msg_data *, struct svc_req *);
1173 #define L2TP_SESSION_PROFILE_LIST 29
1174 extern  enum clnt_stat l2tp_session_profile_list_1(struct l2tp_api_session_profile_list_msg_data *, CLIENT *);
1175 extern  bool_t l2tp_session_profile_list_1_svc(struct l2tp_api_session_profile_list_msg_data *, struct svc_req *);
1176 #define L2TP_PPP_PROFILE_CREATE 30
1177 extern  enum clnt_stat l2tp_ppp_profile_create_1(struct l2tp_api_ppp_profile_msg_data , int *, CLIENT *);
1178 extern  bool_t l2tp_ppp_profile_create_1_svc(struct l2tp_api_ppp_profile_msg_data , int *, struct svc_req *);
1179 #define L2TP_PPP_PROFILE_DELETE 31
1180 extern  enum clnt_stat l2tp_ppp_profile_delete_1(char *, int *, CLIENT *);
1181 extern  bool_t l2tp_ppp_profile_delete_1_svc(char *, int *, struct svc_req *);
1182 #define L2TP_PPP_PROFILE_MODIFY 32
1183 extern  enum clnt_stat l2tp_ppp_profile_modify_1(struct l2tp_api_ppp_profile_msg_data , int *, CLIENT *);
1184 extern  bool_t l2tp_ppp_profile_modify_1_svc(struct l2tp_api_ppp_profile_msg_data , int *, struct svc_req *);
1185 #define L2TP_PPP_PROFILE_GET 33
1186 extern  enum clnt_stat l2tp_ppp_profile_get_1(char *, struct l2tp_api_ppp_profile_msg_data *, CLIENT *);
1187 extern  bool_t l2tp_ppp_profile_get_1_svc(char *, struct l2tp_api_ppp_profile_msg_data *, struct svc_req *);
1188 #define L2TP_PPP_PROFILE_LIST 34
1189 extern  enum clnt_stat l2tp_ppp_profile_list_1(struct l2tp_api_ppp_profile_list_msg_data *, CLIENT *);
1190 extern  bool_t l2tp_ppp_profile_list_1_svc(struct l2tp_api_ppp_profile_list_msg_data *, struct svc_req *);
1191 #define L2TP_PEER_GET 35
1192 extern  enum clnt_stat l2tp_peer_get_1(struct l2tp_api_ip_addr , struct l2tp_api_ip_addr , struct l2tp_api_peer_msg_data *, CLIENT *);
1193 extern  bool_t l2tp_peer_get_1_svc(struct l2tp_api_ip_addr , struct l2tp_api_ip_addr , struct l2tp_api_peer_msg_data *, struct svc_req *);
1194 #define L2TP_PEER_LIST 36
1195 extern  enum clnt_stat l2tp_peer_list_1(struct l2tp_api_peer_list_msg_data *, CLIENT *);
1196 extern  bool_t l2tp_peer_list_1_svc(struct l2tp_api_peer_list_msg_data *, struct svc_req *);
1197 #define L2TP_USER_LIST 37
1198 extern  enum clnt_stat l2tp_user_list_1(struct l2tp_api_user_list_msg_data *, CLIENT *);
1199 extern  bool_t l2tp_user_list_1_svc(struct l2tp_api_user_list_msg_data *, struct svc_req *);
1200 #define L2TP_PEER_PROFILE_UNSET 38
1201 extern  enum clnt_stat l2tp_peer_profile_unset_1(struct l2tp_api_peer_profile_unset_msg_data , int *, CLIENT *);
1202 extern  bool_t l2tp_peer_profile_unset_1_svc(struct l2tp_api_peer_profile_unset_msg_data , int *, struct svc_req *);
1203 #define L2TP_TUNNEL_PROFILE_UNSET 39
1204 extern  enum clnt_stat l2tp_tunnel_profile_unset_1(struct l2tp_api_tunnel_profile_unset_msg_data , int *, CLIENT *);
1205 extern  bool_t l2tp_tunnel_profile_unset_1_svc(struct l2tp_api_tunnel_profile_unset_msg_data , int *, struct svc_req *);
1206 #define L2TP_SESSION_PROFILE_UNSET 40
1207 extern  enum clnt_stat l2tp_session_profile_unset_1(struct l2tp_api_session_profile_unset_msg_data , int *, CLIENT *);
1208 extern  bool_t l2tp_session_profile_unset_1_svc(struct l2tp_api_session_profile_unset_msg_data , int *, struct svc_req *);
1209 #define L2TP_PPP_PROFILE_UNSET 41
1210 extern  enum clnt_stat l2tp_ppp_profile_unset_1(struct l2tp_api_ppp_profile_unset_msg_data , int *, CLIENT *);
1211 extern  bool_t l2tp_ppp_profile_unset_1_svc(struct l2tp_api_ppp_profile_unset_msg_data , int *, struct svc_req *);
1212 #define L2TP_TEST_LOG 97
1213 extern  enum clnt_stat l2tp_test_log_1(char *, int *, CLIENT *);
1214 extern  bool_t l2tp_test_log_1_svc(char *, int *, struct svc_req *);
1215 #define L2TP_TEST_MODIFY 98
1216 extern  enum clnt_stat l2tp_test_modify_1(struct l2tp_api_test_msg_data , int *, CLIENT *);
1217 extern  bool_t l2tp_test_modify_1_svc(struct l2tp_api_test_msg_data , int *, struct svc_req *);
1218 #define L2TP_TEST_GET 99
1219 extern  enum clnt_stat l2tp_test_get_1(struct l2tp_api_test_msg_data *, CLIENT *);
1220 extern  bool_t l2tp_test_get_1_svc(struct l2tp_api_test_msg_data *, struct svc_req *);
1221 extern int l2tp_prog_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
1222
1223 #else /* K&R C */
1224 #define L2TP_APP_INFO_GET 1
1225 extern  enum clnt_stat l2tp_app_info_get_1();
1226 extern  bool_t l2tp_app_info_get_1_svc();
1227 #define L2TP_SYSTEM_MODIFY 2
1228 extern  enum clnt_stat l2tp_system_modify_1();
1229 extern  bool_t l2tp_system_modify_1_svc();
1230 #define L2TP_SYSTEM_GET 3
1231 extern  enum clnt_stat l2tp_system_get_1();
1232 extern  bool_t l2tp_system_get_1_svc();
1233 #define L2TP_PEER_PROFILE_CREATE 4
1234 extern  enum clnt_stat l2tp_peer_profile_create_1();
1235 extern  bool_t l2tp_peer_profile_create_1_svc();
1236 #define L2TP_PEER_PROFILE_DELETE 5
1237 extern  enum clnt_stat l2tp_peer_profile_delete_1();
1238 extern  bool_t l2tp_peer_profile_delete_1_svc();
1239 #define L2TP_PEER_PROFILE_MODIFY 6
1240 extern  enum clnt_stat l2tp_peer_profile_modify_1();
1241 extern  bool_t l2tp_peer_profile_modify_1_svc();
1242 #define L2TP_PEER_PROFILE_GET 7
1243 extern  enum clnt_stat l2tp_peer_profile_get_1();
1244 extern  bool_t l2tp_peer_profile_get_1_svc();
1245 #define L2TP_PEER_PROFILE_LIST 8
1246 extern  enum clnt_stat l2tp_peer_profile_list_1();
1247 extern  bool_t l2tp_peer_profile_list_1_svc();
1248 #define L2TP_TUNNEL_CREATE 9
1249 extern  enum clnt_stat l2tp_tunnel_create_1();
1250 extern  bool_t l2tp_tunnel_create_1_svc();
1251 #define L2TP_TUNNEL_DELETE 10
1252 extern  enum clnt_stat l2tp_tunnel_delete_1();
1253 extern  bool_t l2tp_tunnel_delete_1_svc();
1254 #define L2TP_TUNNEL_MODIFY 11
1255 extern  enum clnt_stat l2tp_tunnel_modify_1();
1256 extern  bool_t l2tp_tunnel_modify_1_svc();
1257 #define L2TP_TUNNEL_GET 12
1258 extern  enum clnt_stat l2tp_tunnel_get_1();
1259 extern  bool_t l2tp_tunnel_get_1_svc();
1260 #define L2TP_TUNNEL_LIST 13
1261 extern  enum clnt_stat l2tp_tunnel_list_1();
1262 extern  bool_t l2tp_tunnel_list_1_svc();
1263 #define L2TP_TUNNEL_PROFILE_CREATE 14
1264 extern  enum clnt_stat l2tp_tunnel_profile_create_1();
1265 extern  bool_t l2tp_tunnel_profile_create_1_svc();
1266 #define L2TP_TUNNEL_PROFILE_DELETE 15
1267 extern  enum clnt_stat l2tp_tunnel_profile_delete_1();
1268 extern  bool_t l2tp_tunnel_profile_delete_1_svc();
1269 #define L2TP_TUNNEL_PROFILE_MODIFY 16
1270 extern  enum clnt_stat l2tp_tunnel_profile_modify_1();
1271 extern  bool_t l2tp_tunnel_profile_modify_1_svc();
1272 #define L2TP_TUNNEL_PROFILE_GET 17
1273 extern  enum clnt_stat l2tp_tunnel_profile_get_1();
1274 extern  bool_t l2tp_tunnel_profile_get_1_svc();
1275 #define L2TP_TUNNEL_PROFILE_LIST 18
1276 extern  enum clnt_stat l2tp_tunnel_profile_list_1();
1277 extern  bool_t l2tp_tunnel_profile_list_1_svc();
1278 #define L2TP_SESSION_CREATE 19
1279 extern  enum clnt_stat l2tp_session_create_1();
1280 extern  bool_t l2tp_session_create_1_svc();
1281 #define L2TP_SESSION_DELETE 20
1282 extern  enum clnt_stat l2tp_session_delete_1();
1283 extern  bool_t l2tp_session_delete_1_svc();
1284 #define L2TP_SESSION_MODIFY 21
1285 extern  enum clnt_stat l2tp_session_modify_1();
1286 extern  bool_t l2tp_session_modify_1_svc();
1287 #define L2TP_SESSION_GET 22
1288 extern  enum clnt_stat l2tp_session_get_1();
1289 extern  bool_t l2tp_session_get_1_svc();
1290 #define L2TP_SESSION_LIST 23
1291 extern  enum clnt_stat l2tp_session_list_1();
1292 extern  bool_t l2tp_session_list_1_svc();
1293 #define L2TP_SESSION_INCALL_IND 24
1294 extern  enum clnt_stat l2tp_session_incall_ind_1();
1295 extern  bool_t l2tp_session_incall_ind_1_svc();
1296 #define L2TP_SESSION_PROFILE_CREATE 25
1297 extern  enum clnt_stat l2tp_session_profile_create_1();
1298 extern  bool_t l2tp_session_profile_create_1_svc();
1299 #define L2TP_SESSION_PROFILE_DELETE 26
1300 extern  enum clnt_stat l2tp_session_profile_delete_1();
1301 extern  bool_t l2tp_session_profile_delete_1_svc();
1302 #define L2TP_SESSION_PROFILE_MODIFY 27
1303 extern  enum clnt_stat l2tp_session_profile_modify_1();
1304 extern  bool_t l2tp_session_profile_modify_1_svc();
1305 #define L2TP_SESSION_PROFILE_GET 28
1306 extern  enum clnt_stat l2tp_session_profile_get_1();
1307 extern  bool_t l2tp_session_profile_get_1_svc();
1308 #define L2TP_SESSION_PROFILE_LIST 29
1309 extern  enum clnt_stat l2tp_session_profile_list_1();
1310 extern  bool_t l2tp_session_profile_list_1_svc();
1311 #define L2TP_PPP_PROFILE_CREATE 30
1312 extern  enum clnt_stat l2tp_ppp_profile_create_1();
1313 extern  bool_t l2tp_ppp_profile_create_1_svc();
1314 #define L2TP_PPP_PROFILE_DELETE 31
1315 extern  enum clnt_stat l2tp_ppp_profile_delete_1();
1316 extern  bool_t l2tp_ppp_profile_delete_1_svc();
1317 #define L2TP_PPP_PROFILE_MODIFY 32
1318 extern  enum clnt_stat l2tp_ppp_profile_modify_1();
1319 extern  bool_t l2tp_ppp_profile_modify_1_svc();
1320 #define L2TP_PPP_PROFILE_GET 33
1321 extern  enum clnt_stat l2tp_ppp_profile_get_1();
1322 extern  bool_t l2tp_ppp_profile_get_1_svc();
1323 #define L2TP_PPP_PROFILE_LIST 34
1324 extern  enum clnt_stat l2tp_ppp_profile_list_1();
1325 extern  bool_t l2tp_ppp_profile_list_1_svc();
1326 #define L2TP_PEER_GET 35
1327 extern  enum clnt_stat l2tp_peer_get_1();
1328 extern  bool_t l2tp_peer_get_1_svc();
1329 #define L2TP_PEER_LIST 36
1330 extern  enum clnt_stat l2tp_peer_list_1();
1331 extern  bool_t l2tp_peer_list_1_svc();
1332 #define L2TP_USER_LIST 37
1333 extern  enum clnt_stat l2tp_user_list_1();
1334 extern  bool_t l2tp_user_list_1_svc();
1335 #define L2TP_PEER_PROFILE_UNSET 38
1336 extern  enum clnt_stat l2tp_peer_profile_unset_1();
1337 extern  bool_t l2tp_peer_profile_unset_1_svc();
1338 #define L2TP_TUNNEL_PROFILE_UNSET 39
1339 extern  enum clnt_stat l2tp_tunnel_profile_unset_1();
1340 extern  bool_t l2tp_tunnel_profile_unset_1_svc();
1341 #define L2TP_SESSION_PROFILE_UNSET 40
1342 extern  enum clnt_stat l2tp_session_profile_unset_1();
1343 extern  bool_t l2tp_session_profile_unset_1_svc();
1344 #define L2TP_PPP_PROFILE_UNSET 41
1345 extern  enum clnt_stat l2tp_ppp_profile_unset_1();
1346 extern  bool_t l2tp_ppp_profile_unset_1_svc();
1347 #define L2TP_TEST_LOG 97
1348 extern  enum clnt_stat l2tp_test_log_1();
1349 extern  bool_t l2tp_test_log_1_svc();
1350 #define L2TP_TEST_MODIFY 98
1351 extern  enum clnt_stat l2tp_test_modify_1();
1352 extern  bool_t l2tp_test_modify_1_svc();
1353 #define L2TP_TEST_GET 99
1354 extern  enum clnt_stat l2tp_test_get_1();
1355 extern  bool_t l2tp_test_get_1_svc();
1356 extern int l2tp_prog_1_freeresult ();
1357 #endif /* K&R C */
1358
1359 /* the xdr functions */
1360
1361 #if defined(__STDC__) || defined(__cplusplus)
1362 extern  bool_t xdr_optstring (XDR *, optstring*);
1363 extern  bool_t xdr_l2tp_api_tunnel_auth_mode (XDR *, l2tp_api_tunnel_auth_mode*);
1364 extern  bool_t xdr_l2tp_api_tunnel_mode (XDR *, l2tp_api_tunnel_mode*);
1365 extern  bool_t xdr_l2tp_api_ip_addr (XDR *, l2tp_api_ip_addr*);
1366 extern  bool_t xdr_l2tp_api_app_msg_data (XDR *, l2tp_api_app_msg_data*);
1367 extern  bool_t xdr_l2tp_api_system_config (XDR *, l2tp_api_system_config*);
1368 extern  bool_t xdr_l2tp_api_system_msg_stats (XDR *, l2tp_api_system_msg_stats*);
1369 extern  bool_t xdr_l2tp_api_system_stats (XDR *, l2tp_api_system_stats*);
1370 extern  bool_t xdr_l2tp_api_system_status (XDR *, l2tp_api_system_status*);
1371 extern  bool_t xdr_l2tp_api_system_msg_data (XDR *, l2tp_api_system_msg_data*);
1372 extern  bool_t xdr_l2tp_api_peer_msg_data (XDR *, l2tp_api_peer_msg_data*);
1373 extern  bool_t xdr_l2tp_api_peer_list_entry (XDR *, l2tp_api_peer_list_entry*);
1374 extern  bool_t xdr_l2tp_api_peer_list_msg_data (XDR *, l2tp_api_peer_list_msg_data*);
1375 extern  bool_t xdr_l2tp_api_peer_profile_msg_data (XDR *, l2tp_api_peer_profile_msg_data*);
1376 extern  bool_t xdr_l2tp_api_peer_profile_list_entry (XDR *, l2tp_api_peer_profile_list_entry*);
1377 extern  bool_t xdr_l2tp_api_peer_profile_list_msg_data (XDR *, l2tp_api_peer_profile_list_msg_data*);
1378 extern  bool_t xdr_l2tp_api_peer_profile_unset_msg_data (XDR *, l2tp_api_peer_profile_unset_msg_data*);
1379 extern  bool_t xdr_l2tp_api_tunnel_peer (XDR *, l2tp_api_tunnel_peer*);
1380 extern  bool_t xdr_l2tp_api_tunnel_stats (XDR *, l2tp_api_tunnel_stats*);
1381 extern  bool_t xdr_l2tp_api_tunnel_msg_data (XDR *, l2tp_api_tunnel_msg_data*);
1382 extern  bool_t xdr_l2tp_api_tunnel_list_msg_data (XDR *, l2tp_api_tunnel_list_msg_data*);
1383 extern  bool_t xdr_l2tp_api_tunnel_profile_msg_data (XDR *, l2tp_api_tunnel_profile_msg_data*);
1384 extern  bool_t xdr_l2tp_api_tunnel_profile_list_entry (XDR *, l2tp_api_tunnel_profile_list_entry*);
1385 extern  bool_t xdr_l2tp_api_tunnel_profile_list_msg_data (XDR *, l2tp_api_tunnel_profile_list_msg_data*);
1386 extern  bool_t xdr_l2tp_api_tunnel_profile_unset_msg_data (XDR *, l2tp_api_tunnel_profile_unset_msg_data*);
1387 extern  bool_t xdr_l2tp_api_session_proxy_auth_type (XDR *, l2tp_api_session_proxy_auth_type*);
1388 extern  bool_t xdr_l2tp_api_session_call_errors (XDR *, l2tp_api_session_call_errors*);
1389 extern  bool_t xdr_l2tp_api_session_stats (XDR *, l2tp_api_session_stats*);
1390 extern  bool_t xdr_l2tp_api_session_peer_info (XDR *, l2tp_api_session_peer_info*);
1391 extern  bool_t xdr_l2tp_api_session_type (XDR *, l2tp_api_session_type*);
1392 extern  bool_t xdr_l2tp_api_session_msg_data (XDR *, l2tp_api_session_msg_data*);
1393 extern  bool_t xdr_l2tp_api_session_list_msg_data (XDR *, l2tp_api_session_list_msg_data*);
1394 extern  bool_t xdr_l2tp_api_session_incall_msg_data (XDR *, l2tp_api_session_incall_msg_data*);
1395 extern  bool_t xdr_l2tp_api_session_profile_msg_data (XDR *, l2tp_api_session_profile_msg_data*);
1396 extern  bool_t xdr_l2tp_api_session_profile_list_entry (XDR *, l2tp_api_session_profile_list_entry*);
1397 extern  bool_t xdr_l2tp_api_session_profile_list_msg_data (XDR *, l2tp_api_session_profile_list_msg_data*);
1398 extern  bool_t xdr_l2tp_api_session_profile_unset_msg_data (XDR *, l2tp_api_session_profile_unset_msg_data*);
1399 extern  bool_t xdr_l2tp_api_ppp_sync_mode (XDR *, l2tp_api_ppp_sync_mode*);
1400 extern  bool_t xdr_l2tp_api_ppp_profile_msg_data (XDR *, l2tp_api_ppp_profile_msg_data*);
1401 extern  bool_t xdr_l2tp_api_ppp_profile_list_entry (XDR *, l2tp_api_ppp_profile_list_entry*);
1402 extern  bool_t xdr_l2tp_api_ppp_profile_list_msg_data (XDR *, l2tp_api_ppp_profile_list_msg_data*);
1403 extern  bool_t xdr_l2tp_api_ppp_profile_unset_msg_data (XDR *, l2tp_api_ppp_profile_unset_msg_data*);
1404 extern  bool_t xdr_l2tp_api_user_list_entry (XDR *, l2tp_api_user_list_entry*);
1405 extern  bool_t xdr_l2tp_api_user_list_msg_data (XDR *, l2tp_api_user_list_msg_data*);
1406 extern  bool_t xdr_l2tp_api_test_trigger_type (XDR *, l2tp_api_test_trigger_type*);
1407 extern  bool_t xdr_l2tp_api_test_msg_data (XDR *, l2tp_api_test_msg_data*);
1408 extern  bool_t xdr_l2tp_tunnel_delete_1_argument (XDR *, l2tp_tunnel_delete_1_argument*);
1409 extern  bool_t xdr_l2tp_tunnel_get_1_argument (XDR *, l2tp_tunnel_get_1_argument*);
1410 extern  bool_t xdr_l2tp_session_delete_1_argument (XDR *, l2tp_session_delete_1_argument*);
1411 extern  bool_t xdr_l2tp_session_get_1_argument (XDR *, l2tp_session_get_1_argument*);
1412 extern  bool_t xdr_l2tp_session_list_1_argument (XDR *, l2tp_session_list_1_argument*);
1413 extern  bool_t xdr_l2tp_peer_get_1_argument (XDR *, l2tp_peer_get_1_argument*);
1414
1415 #else /* K&R C */
1416 extern bool_t xdr_optstring ();
1417 extern bool_t xdr_l2tp_api_tunnel_auth_mode ();
1418 extern bool_t xdr_l2tp_api_tunnel_mode ();
1419 extern bool_t xdr_l2tp_api_ip_addr ();
1420 extern bool_t xdr_l2tp_api_app_msg_data ();
1421 extern bool_t xdr_l2tp_api_system_config ();
1422 extern bool_t xdr_l2tp_api_system_msg_stats ();
1423 extern bool_t xdr_l2tp_api_system_stats ();
1424 extern bool_t xdr_l2tp_api_system_status ();
1425 extern bool_t xdr_l2tp_api_system_msg_data ();
1426 extern bool_t xdr_l2tp_api_peer_msg_data ();
1427 extern bool_t xdr_l2tp_api_peer_list_entry ();
1428 extern bool_t xdr_l2tp_api_peer_list_msg_data ();
1429 extern bool_t xdr_l2tp_api_peer_profile_msg_data ();
1430 extern bool_t xdr_l2tp_api_peer_profile_list_entry ();
1431 extern bool_t xdr_l2tp_api_peer_profile_list_msg_data ();
1432 extern bool_t xdr_l2tp_api_peer_profile_unset_msg_data ();
1433 extern bool_t xdr_l2tp_api_tunnel_peer ();
1434 extern bool_t xdr_l2tp_api_tunnel_stats ();
1435 extern bool_t xdr_l2tp_api_tunnel_msg_data ();
1436 extern bool_t xdr_l2tp_api_tunnel_list_msg_data ();
1437 extern bool_t xdr_l2tp_api_tunnel_profile_msg_data ();
1438 extern bool_t xdr_l2tp_api_tunnel_profile_list_entry ();
1439 extern bool_t xdr_l2tp_api_tunnel_profile_list_msg_data ();
1440 extern bool_t xdr_l2tp_api_tunnel_profile_unset_msg_data ();
1441 extern bool_t xdr_l2tp_api_session_proxy_auth_type ();
1442 extern bool_t xdr_l2tp_api_session_call_errors ();
1443 extern bool_t xdr_l2tp_api_session_stats ();
1444 extern bool_t xdr_l2tp_api_session_peer_info ();
1445 extern bool_t xdr_l2tp_api_session_type ();
1446 extern bool_t xdr_l2tp_api_session_msg_data ();
1447 extern bool_t xdr_l2tp_api_session_list_msg_data ();
1448 extern bool_t xdr_l2tp_api_session_incall_msg_data ();
1449 extern bool_t xdr_l2tp_api_session_profile_msg_data ();
1450 extern bool_t xdr_l2tp_api_session_profile_list_entry ();
1451 extern bool_t xdr_l2tp_api_session_profile_list_msg_data ();
1452 extern bool_t xdr_l2tp_api_session_profile_unset_msg_data ();
1453 extern bool_t xdr_l2tp_api_ppp_sync_mode ();
1454 extern bool_t xdr_l2tp_api_ppp_profile_msg_data ();
1455 extern bool_t xdr_l2tp_api_ppp_profile_list_entry ();
1456 extern bool_t xdr_l2tp_api_ppp_profile_list_msg_data ();
1457 extern bool_t xdr_l2tp_api_ppp_profile_unset_msg_data ();
1458 extern bool_t xdr_l2tp_api_user_list_entry ();
1459 extern bool_t xdr_l2tp_api_user_list_msg_data ();
1460 extern bool_t xdr_l2tp_api_test_trigger_type ();
1461 extern bool_t xdr_l2tp_api_test_msg_data ();
1462 extern bool_t xdr_l2tp_tunnel_delete_1_argument ();
1463 extern bool_t xdr_l2tp_tunnel_get_1_argument ();
1464 extern bool_t xdr_l2tp_session_delete_1_argument ();
1465 extern bool_t xdr_l2tp_session_get_1_argument ();
1466 extern bool_t xdr_l2tp_session_list_1_argument ();
1467 extern bool_t xdr_l2tp_peer_get_1_argument ();
1468
1469 #endif /* K&R C */
1470
1471 #ifdef __cplusplus
1472 }
1473 #endif
1474
1475 #endif /* !_L2TP_RPC_H_RPCGEN */