Merge branch 'master'
[pandora-kernel.git] / include / linux / sdla_ppp.h
1 /*****************************************************************************
2 * sdla_ppp.h    Sangoma PPP firmware API definitions.
3 *
4 * Author:       Nenad Corbic    <ncorbic@sangoma.com>
5 *
6 * Copyright:    (c) 1995-1997 Sangoma Technologies Inc.
7 *
8 *               This program is free software; you can redistribute it and/or
9 *               modify it under the terms of the GNU General Public License
10 *               as published by the Free Software Foundation; either version
11 *               2 of the License, or (at your option) any later version.
12 * ============================================================================
13 * Feb 24, 2000  Nenad Corbic    v2.1.2
14 * Jan 06, 1997  Gene Kozin      v2.0
15 * Apr 11, 1996  Gene Kozin      Initial version.
16 *****************************************************************************/
17 #ifndef _SDLA_PPP_H
18 #define _SDLA_PPP_H
19
20 /*----------------------------------------------------------------------------
21  * Notes:
22  * ------
23  * 1. All structures defined in this file are byte-alined.  
24  *
25  *      Compiler        Platform
26  *      --------        --------
27  *      GNU C           Linux           
28  */
29
30 #ifndef PACKED
31 #    define     PACKED  __attribute__((packed))
32 #endif  /* PACKED */
33
34 /* Adapter memory layout and important constants */
35 #define PPP508_MB_VECT  0xE000  /* mailbox window vector */
36 #define PPP508_MB_OFFS  0               /* mailbox offset */
37 #define PPP508_FLG_OFFS 0x1000  /* status flags offset */
38 #define PPP508_BUF_OFFS 0x1100  /* buffer info block offset */
39 #define PPP514_MB_OFFS  0xE000  /* mailbox offset */
40 #define PPP514_FLG_OFFS 0xF000  /* status flags offset */
41 #define PPP514_BUF_OFFS 0xF100  /* buffer info block offset */
42
43 #define PPP_MAX_DATA    1008    /* command block data buffer length */
44
45 /****** Data Structures *****************************************************/
46
47 /*----------------------------------------------------------------------------
48  * PPP Command Block.
49  */
50 typedef struct ppp_cmd{
51         unsigned char  command  PACKED; /* command code */
52         unsigned short length   PACKED; /* length of data buffer */
53         unsigned char  result   PACKED; /* return code */
54         unsigned char  rsrv[11] PACKED; /* reserved for future use */
55 } ppp_cmd_t;
56
57 typedef struct cblock{
58         unsigned char  opp_flag PACKED;
59         unsigned char  command  PACKED; /* command code */
60         unsigned short length   PACKED; /* length of data buffer */
61         unsigned char  result   PACKED; /* return code */
62         unsigned char  rsrv[11] PACKED; /* reserved for future use */
63 } cblock_t;
64
65 typedef struct ppp_udp_pkt{
66         ip_pkt_t        ip_pkt  PACKED;
67         udp_pkt_t       udp_pkt PACKED;
68         wp_mgmt_t       wp_mgmt PACKED;
69         cblock_t        cblock  PACKED;
70         unsigned char   data[MAX_LGTH_UDP_MGNT_PKT] PACKED;
71 } ppp_udp_pkt_t;        
72
73 typedef struct {
74         unsigned char   status          PACKED;
75         unsigned char   data_avail      PACKED;
76         unsigned short  real_length     PACKED;
77         unsigned short  time_stamp      PACKED;
78         unsigned char   data[1]         PACKED;
79 } trace_pkt_t;
80
81
82 typedef struct {
83         unsigned char   opp_flag        PACKED;
84         unsigned char   trace_type      PACKED;
85         unsigned short  trace_length    PACKED;
86         unsigned short  trace_data_ptr  PACKED;
87         unsigned short  trace_time_stamp PACKED;
88 } trace_element_t;
89
90 /* 'command' field defines */
91 #define PPP_READ_CODE_VERSION   0x10    /* configuration commands */
92 #define PPP_SET_CONFIG          0x05
93 #define PPP_READ_CONFIG         0x06
94 #define PPP_SET_INTR_FLAGS      0x20
95 #define PPP_READ_INTR_FLAGS     0x21
96 #define PPP_SET_INBOUND_AUTH    0x30
97 #define PPP_SET_OUTBOUND_AUTH   0x31
98 #define PPP_GET_CONNECTION_INFO 0x32
99
100 #define PPP_COMM_ENABLE         0x03    /* operational commands */
101 #define PPP_COMM_DISABLE        0x04
102 #define PPP_SEND_SIGN_FRAME     0x23
103 #define PPP_READ_SIGN_RESPONSE  0x24
104 #define PPP_DATALINE_MONITOR    0x33
105
106 #define PPP_READ_STATISTICS     0x07    /* statistics commands */
107 #define PPP_FLUSH_STATISTICS    0x08
108 #define PPP_READ_ERROR_STATS    0x09
109 #define PPP_FLUSH_ERROR_STATS   0x0A
110 #define PPP_READ_PACKET_STATS   0x12
111 #define PPP_FLUSH_PACKET_STATS  0x13
112 #define PPP_READ_LCP_STATS      0x14
113 #define PPP_FLUSH_LCP_STATS     0x15
114 #define PPP_READ_LPBK_STATS     0x16
115 #define PPP_FLUSH_LPBK_STATS    0x17
116 #define PPP_READ_IPCP_STATS     0x18
117 #define PPP_FLUSH_IPCP_STATS    0x19
118 #define PPP_READ_IPXCP_STATS    0x1A
119 #define PPP_FLUSH_IPXCP_STATS   0x1B
120 #define PPP_READ_PAP_STATS      0x1C
121 #define PPP_FLUSH_PAP_STATS     0x1D
122 #define PPP_READ_CHAP_STATS     0x1E
123 #define PPP_FLUSH_CHAP_STATS    0x1F
124
125 /* 'result' field defines */
126 #define PPPRES_OK               0x00    /* command executed successfully */
127 #define PPPRES_INVALID_STATE    0x09    /* invalid command in this context */
128
129 /*----------------------------------------------------------------------------
130  * PPP Mailbox.
131  *      This structure is located at offset PPP???_MB_OFFS into PPP???_MB_VECT
132  */
133 typedef struct ppp_mbox
134 {
135         unsigned char flag      PACKED; /* 00h: command execution flag */
136         ppp_cmd_t     cmd       PACKED; /* 01h: command block */
137         unsigned char data[1]   PACKED; /* 10h: variable length data buffer */
138 } ppp_mbox_t;
139
140 /*----------------------------------------------------------------------------
141  * PPP Status Flags.
142  *      This structure is located at offset PPP???_FLG_OFFS into
143  *      PPP???_MB_VECT.
144  */
145 typedef struct  ppp_flags
146 {
147         unsigned char iflag             PACKED; /* 00: interrupt flag */
148         unsigned char imask             PACKED; /* 01: interrupt mask */
149         unsigned char resrv             PACKED;
150         unsigned char mstatus           PACKED; /* 03: modem status */
151         unsigned char lcp_state         PACKED; /* 04: LCP state */
152         unsigned char ppp_phase         PACKED; /* 05: PPP phase */
153         unsigned char ip_state          PACKED; /* 06: IPCP state */
154         unsigned char ipx_state         PACKED; /* 07: IPXCP state */
155         unsigned char pap_state         PACKED; /* 08: PAP state */
156         unsigned char chap_state        PACKED; /* 09: CHAP state */
157         unsigned short disc_cause       PACKED; /* 0A: disconnection cause */
158 } ppp_flags_t;
159
160 /* 'iflag' defines */
161 #define PPP_INTR_RXRDY          0x01    /* Rx ready */
162 #define PPP_INTR_TXRDY          0x02    /* Tx ready */
163 #define PPP_INTR_MODEM          0x04    /* modem status change (DCD, CTS) */
164 #define PPP_INTR_CMD            0x08    /* interface command completed */
165 #define PPP_INTR_DISC           0x10    /* data link disconnected */
166 #define PPP_INTR_OPEN           0x20    /* data link open */
167 #define PPP_INTR_DROP_DTR       0x40    /* DTR drop timeout expired */
168 #define PPP_INTR_TIMER          0x80    /* timer interrupt */
169
170
171 /* 'mstatus' defines */
172 #define PPP_MDM_DCD             0x08    /* mdm_status: DCD */
173 #define PPP_MDM_CTS             0x20    /* mdm_status: CTS */
174
175 /* 'disc_cause' defines */
176 #define PPP_LOCAL_TERMINATION   0x0001  /* Local Request by PPP termination phase */
177 #define PPP_DCD_CTS_DROP        0x0002  /* DCD and/or CTS dropped. Link down */
178 #define PPP_REMOTE_TERMINATION  0x0800  /* Remote Request by PPP termination phase */
179
180 /* 'misc_config_bits' defines */
181 #define DONT_RE_TX_ABORTED_I_FRAMES     0x01
182 #define TX_FRM_BYTE_COUNT_STATS         0x02
183 #define RX_FRM_BYTE_COUNT_STATS         0x04
184 #define TIME_STAMP_IN_RX_FRAMES         0x08
185 #define NON_STD_ADPTR_FREQ              0x10
186 #define INTERFACE_LEVEL_RS232           0x20
187 #define AUTO_LINK_RECOVERY              0x100
188 #define DONT_TERMINATE_LNK_MAX_CONFIG   0x200                    
189
190 /* 'authentication options' defines */
191 #define NO_AUTHENTICATION       0x00
192 #define INBOUND_AUTH            0x80
193 #define PAP_AUTH                0x01
194 #define CHAP_AUTH               0x02            
195
196 /* 'ip options' defines */
197 #define L_AND_R_IP_NO_ASSIG     0x00
198 #define L_IP_LOCAL_ASSIG        0x01
199 #define L_IP_REMOTE_ASSIG       0x02
200 #define R_IP_LOCAL_ASSIG        0x04
201 #define R_IP_REMOTE_ASSIG       0x08
202 #define ENABLE_IP               0x80
203
204 /* 'ipx options' defines */
205 #define ROUTING_PROT_DEFAULT    0x20
206 #define ENABLE_IPX              0x80
207 #define DISABLE_IPX             0x00
208
209 /*----------------------------------------------------------------------------
210  * PPP Buffer Info.
211  *      This structure is located at offset PPP508_BUF_OFFS into
212  *      PPP508_MB_VECT.
213  */
214 typedef struct  ppp508_buf_info
215 {
216         unsigned short txb_num  PACKED; /* 00: number of transmit buffers */
217         unsigned long  txb_ptr  PACKED; /* 02: pointer to the buffer ctl. */
218         unsigned long  txb_nxt  PACKED;
219         unsigned char  rsrv1[22] PACKED;
220         unsigned short rxb_num  PACKED; /* 20: number of receive buffers */
221         unsigned long  rxb_ptr  PACKED; /* 22: pointer to the buffer ctl. */
222         unsigned long  rxb1_ptr PACKED; /* 26: pointer to the first buf.ctl. */
223         unsigned long  rxb_base PACKED; /* 2A: pointer to the buffer base */
224         unsigned char  rsrv2[2] PACKED;
225         unsigned long  rxb_end  PACKED; /* 30: pointer to the buffer end */
226 } ppp508_buf_info_t;
227
228 /*----------------------------------------------------------------------------
229  * Transmit/Receive Buffer Control Block.
230  */
231 typedef struct  ppp_buf_ctl
232 {
233         unsigned char  flag             PACKED; /* 00: 'buffer ready' flag */
234         unsigned short length           PACKED; /* 01: length of data */
235         unsigned char  reserved1[1]     PACKED; /* 03: */
236         unsigned char  proto            PACKED; /* 04: protocol */
237         unsigned short timestamp        PACKED; /* 05: time stamp (Rx only) */
238         unsigned char  reserved2[5]     PACKED; /* 07: */
239         union
240         {
241                 unsigned short o_p[2];  /* 1C: buffer offset & page (S502) */
242                 unsigned long  ptr;     /* 1C: buffer pointer (S508) */
243         } buf                           PACKED;
244 } ppp_buf_ctl_t;
245
246 /*----------------------------------------------------------------------------
247  * S508 Adapter Configuration Block (passed to the PPP_SET_CONFIG command).
248  */
249 typedef struct  ppp508_conf
250 {
251         unsigned long  line_speed       PACKED; /* 00: baud rate, bps */
252         unsigned short txbuf_percent    PACKED; /* 04: % of Tx buffer */
253         unsigned short conf_flags       PACKED; /* 06: configuration bits */
254         unsigned short mtu_local        PACKED; /* 08: local MTU */
255         unsigned short mtu_remote       PACKED; /* 0A: remote MTU */
256         unsigned short restart_tmr      PACKED; /* 0C: restart timer */
257         unsigned short auth_rsrt_tmr    PACKED; /* 0E: authentication timer */
258         unsigned short auth_wait_tmr    PACKED; /* 10: authentication timer */
259         unsigned short mdm_fail_tmr     PACKED; /* 12: modem failure timer */
260         unsigned short dtr_drop_tmr     PACKED; /* 14: DTR drop timer */
261         unsigned short connect_tmout    PACKED; /* 16: connection timeout */
262         unsigned short conf_retry       PACKED; /* 18: max. retry */
263         unsigned short term_retry       PACKED; /* 1A: max. retry */
264         unsigned short fail_retry       PACKED; /* 1C: max. retry */
265         unsigned short auth_retry       PACKED; /* 1E: max. retry */
266         unsigned char  auth_options     PACKED; /* 20: authentication opt. */
267         unsigned char  ip_options       PACKED; /* 21: IP options */
268         unsigned long  ip_local         PACKED; /* 22: local IP address */
269         unsigned long  ip_remote        PACKED; /* 26: remote IP address */
270         unsigned char  ipx_options      PACKED; /* 2A: IPX options */
271         unsigned char  ipx_netno[4]     PACKED; /* 2B: IPX net number */
272         unsigned char  ipx_local[6]     PACKED; /* 2F: local IPX node number*/
273         unsigned char  ipx_remote[6]    PACKED; /* 35: remote IPX node num.*/
274         unsigned char  ipx_router[48]   PACKED; /* 3B: IPX router name*/
275         unsigned long  alt_cpu_clock    PACKED; /* 6B:  */
276 } ppp508_conf_t;
277
278 /*----------------------------------------------------------------------------
279  * S508 Adapter Read Connection Information Block 
280  *    Returned by the PPP_GET_CONNECTION_INFO command
281  */
282 typedef struct  ppp508_connect_info
283 {
284         unsigned short  mru             PACKED; /* 00-01 Remote Max Rec' Unit */
285         unsigned char   ip_options      PACKED; /* 02: Negotiated ip options  */
286         unsigned long   ip_local        PACKED; /* 03-06: local IP address    */
287         unsigned long   ip_remote       PACKED; /* 07-0A: remote IP address   */
288         unsigned char   ipx_options     PACKED; /* 0B: Negotiated ipx options */
289         unsigned char   ipx_netno[4]    PACKED; /* 0C-0F: IPX net number      */
290         unsigned char   ipx_local[6]    PACKED; /* 10-1F: local IPX node #    */
291         unsigned char   ipx_remote[6]   PACKED; /* 16-1B: remote IPX node #   */
292         unsigned char   ipx_router[48]  PACKED; /* 1C-4B: IPX router name     */
293         unsigned char   auth_status     PACKED; /* 4C: Authentication Status  */
294         unsigned char   inbd_auth_peerID[1] PACKED; /* 4D: variable length inbound authenticated peer ID */
295 } ppp508_connect_info_t;
296
297 /* 'line_speed' field */
298 #define PPP_BITRATE_1200        0x01
299 #define PPP_BITRATE_2400        0x02
300 #define PPP_BITRATE_4800        0x03
301 #define PPP_BITRATE_9600        0x04
302 #define PPP_BITRATE_19200       0x05
303 #define PPP_BITRATE_38400       0x06
304 #define PPP_BITRATE_45000       0x07
305 #define PPP_BITRATE_56000       0x08
306 #define PPP_BITRATE_64000       0x09
307 #define PPP_BITRATE_74000       0x0A
308 #define PPP_BITRATE_112000      0x0B
309 #define PPP_BITRATE_128000      0x0C
310 #define PPP_BITRATE_156000      0x0D
311
312 /* Defines for the 'conf_flags' field */
313 #define PPP_IGNORE_TX_ABORT     0x01    /* don't re-transmit aborted frames */
314 #define PPP_ENABLE_TX_STATS     0x02    /* enable Tx statistics */
315 #define PPP_ENABLE_RX_STATS     0x04    /* enable Rx statistics */
316 #define PPP_ENABLE_TIMESTAMP    0x08    /* enable timestamp */
317
318 /* 'ip_options' defines */
319 #define PPP_LOCAL_IP_LOCAL      0x01
320 #define PPP_LOCAL_IP_REMOTE     0x02
321 #define PPP_REMOTE_IP_LOCAL     0x04
322 #define PPP_REMOTE_IP_REMOTE    0x08
323
324 /* 'ipx_options' defines */
325 #define PPP_REMOTE_IPX_NETNO    0x01
326 #define PPP_REMOTE_IPX_LOCAL    0x02
327 #define PPP_REMOTE_IPX_REMOTE   0x04
328 #define PPP_IPX_ROUTE_RIP_SAP   0x08
329 #define PPP_IPX_ROUTE_NLSP      0x10
330 #define PPP_IPX_ROUTE_DEFAULT   0x20
331 #define PPP_IPX_CONF_COMPLETE   0x40
332 #define PPP_IPX_ENABLE          0x80
333
334 /*----------------------------------------------------------------------------
335  * S508 Adapter Configuration Block (returned by the PPP_READ_CONFIG command).
336  */
337 typedef struct  ppp508_get_conf
338 {
339         unsigned long  bps      PACKED; /* 00: baud rate, bps */
340         ppp508_conf_t  conf     PACKED; /* 04: requested config. */
341         unsigned short txb_num  PACKED; /* 6F: number of Tx buffers */
342         unsigned short rxb_num  PACKED; /* 71: number of Rx buffers */
343 } ppp508_get_conf_t;
344
345 /*----------------------------------------------------------------------------
346  * S508 Operational Statistics (returned by the PPP_READ_STATISTIC command).
347  */
348 typedef struct ppp508_stats
349 {
350         unsigned short reserved1        PACKED; /* 00: */
351         unsigned short rx_bad_len       PACKED; /* 02: */
352         unsigned short reserved2        PACKED; /* 04: */
353         unsigned long  tx_frames        PACKED; /* 06: */
354         unsigned long  tx_bytes PACKED; /* 0A: */
355         unsigned long  rx_frames        PACKED; /* 0E: */
356         unsigned long  rx_bytes PACKED; /* 12: */
357 } ppp508_stats_t;
358
359 /*----------------------------------------------------------------------------
360  * Adapter Error Statistics (returned by the PPP_READ_ERROR_STATS command).
361  */
362 typedef struct  ppp_err_stats
363 {
364         unsigned char    rx_overrun     PACKED; /* 00: Rx overrun errors */
365         unsigned char    rx_bad_crc     PACKED; /* 01: Rx CRC errors */
366         unsigned char    rx_abort       PACKED; /* 02: Rx aborted frames */
367         unsigned char    rx_lost        PACKED; /* 03: Rx frames lost */
368         unsigned char    tx_abort       PACKED; /* 04: Tx aborted frames */
369         unsigned char    tx_underrun    PACKED; /* 05: Tx underrun errors */
370         unsigned char    tx_missed_intr PACKED; /* 06: Tx underruns missed */
371         unsigned char    reserved       PACKED; /* 07: Tx underruns missed */
372         unsigned char    dcd_trans      PACKED; /* 08: DCD transitions */
373         unsigned char    cts_trans      PACKED; /* 09: CTS transitions */
374 } ppp_err_stats_t;
375
376 /*----------------------------------------------------------------------------
377  * Packet Statistics (returned by the PPP_READ_PACKET_STATS command).
378  */
379 typedef struct  ppp_pkt_stats
380 {
381         unsigned short rx_bad_header    PACKED; /* 00: */
382         unsigned short rx_prot_unknwn   PACKED; /* 02: */
383         unsigned short rx_too_large     PACKED; /* 04: */
384         unsigned short rx_lcp           PACKED; /* 06: */
385         unsigned short tx_lcp           PACKED; /* 08: */
386         unsigned short rx_ipcp          PACKED; /* 0A: */
387         unsigned short tx_ipcp          PACKED; /* 0C: */
388         unsigned short rx_ipxcp         PACKED; /* 0E: */
389         unsigned short tx_ipxcp         PACKED; /* 10: */
390         unsigned short rx_pap           PACKED; /* 12: */
391         unsigned short tx_pap           PACKED; /* 14: */
392         unsigned short rx_chap          PACKED; /* 16: */
393         unsigned short tx_chap          PACKED; /* 18: */
394         unsigned short rx_lqr           PACKED; /* 1A: */
395         unsigned short tx_lqr           PACKED; /* 1C: */
396         unsigned short rx_ip            PACKED; /* 1E: */
397         unsigned short tx_ip            PACKED; /* 20: */
398         unsigned short rx_ipx           PACKED; /* 22: */
399         unsigned short tx_ipx           PACKED; /* 24: */
400 } ppp_pkt_stats_t;
401
402 /*----------------------------------------------------------------------------
403  * LCP Statistics (returned by the PPP_READ_LCP_STATS command).
404  */
405 typedef struct  ppp_lcp_stats
406 {
407         unsigned short rx_unknown       PACKED; /* 00: unknown LCP type */
408         unsigned short rx_conf_rqst     PACKED; /* 02: Configure-Request */
409         unsigned short rx_conf_ack      PACKED; /* 04: Configure-Ack */
410         unsigned short rx_conf_nak      PACKED; /* 06: Configure-Nak */
411         unsigned short rx_conf_rej      PACKED; /* 08: Configure-Reject */
412         unsigned short rx_term_rqst     PACKED; /* 0A: Terminate-Request */
413         unsigned short rx_term_ack      PACKED; /* 0C: Terminate-Ack */
414         unsigned short rx_code_rej      PACKED; /* 0E: Code-Reject */
415         unsigned short rx_proto_rej     PACKED; /* 10: Protocol-Reject */
416         unsigned short rx_echo_rqst     PACKED; /* 12: Echo-Request */
417         unsigned short rx_echo_reply    PACKED; /* 14: Echo-Reply */
418         unsigned short rx_disc_rqst     PACKED; /* 16: Discard-Request */
419         unsigned short tx_conf_rqst     PACKED; /* 18: Configure-Request */
420         unsigned short tx_conf_ack      PACKED; /* 1A: Configure-Ack */
421         unsigned short tx_conf_nak      PACKED; /* 1C: Configure-Nak */
422         unsigned short tx_conf_rej      PACKED; /* 1E: Configure-Reject */
423         unsigned short tx_term_rqst     PACKED; /* 20: Terminate-Request */
424         unsigned short tx_term_ack      PACKED; /* 22: Terminate-Ack */
425         unsigned short tx_code_rej      PACKED; /* 24: Code-Reject */
426         unsigned short tx_proto_rej     PACKED; /* 26: Protocol-Reject */
427         unsigned short tx_echo_rqst     PACKED; /* 28: Echo-Request */
428         unsigned short tx_echo_reply    PACKED; /* 2A: Echo-Reply */
429         unsigned short tx_disc_rqst     PACKED; /* 2E: Discard-Request */
430         unsigned short rx_too_large     PACKED; /* 30: packets too large */
431         unsigned short rx_ack_inval     PACKED; /* 32: invalid Conf-Ack */
432         unsigned short rx_rej_inval     PACKED; /* 34: invalid Conf-Reject */
433         unsigned short rx_rej_badid     PACKED; /* 36: Conf-Reject w/bad ID */
434 } ppp_lcp_stats_t;
435
436 /*----------------------------------------------------------------------------
437  * Loopback Error Statistics (returned by the PPP_READ_LPBK_STATS command).
438  */
439 typedef struct  ppp_lpbk_stats
440 {
441         unsigned short conf_magic       PACKED; /* 00:  */
442         unsigned short loc_echo_rqst    PACKED; /* 02:  */
443         unsigned short rem_echo_rqst    PACKED; /* 04:  */
444         unsigned short loc_echo_reply   PACKED; /* 06:  */
445         unsigned short rem_echo_reply   PACKED; /* 08:  */
446         unsigned short loc_disc_rqst    PACKED; /* 0A:  */
447         unsigned short rem_disc_rqst    PACKED; /* 0C:  */
448         unsigned short echo_tx_collsn   PACKED; /* 0E:  */
449         unsigned short echo_rx_collsn   PACKED; /* 10:  */
450 } ppp_lpbk_stats_t;
451
452 /*----------------------------------------------------------------------------
453  * Protocol Statistics (returned by the PPP_READ_IPCP_STATS and
454  * PPP_READ_IPXCP_STATS commands).
455  */
456 typedef struct  ppp_prot_stats
457 {
458         unsigned short rx_unknown       PACKED; /* 00: unknown type */
459         unsigned short rx_conf_rqst     PACKED; /* 02: Configure-Request */
460         unsigned short rx_conf_ack      PACKED; /* 04: Configure-Ack */
461         unsigned short rx_conf_nak      PACKED; /* 06: Configure-Nak */
462         unsigned short rx_conf_rej      PACKED; /* 08: Configure-Reject */
463         unsigned short rx_term_rqst     PACKED; /* 0A: Terminate-Request */
464         unsigned short rx_term_ack      PACKED; /* 0C: Terminate-Ack */
465         unsigned short rx_code_rej      PACKED; /* 0E: Code-Reject */
466         unsigned short reserved         PACKED; /* 10: */
467         unsigned short tx_conf_rqst     PACKED; /* 12: Configure-Request */
468         unsigned short tx_conf_ack      PACKED; /* 14: Configure-Ack */
469         unsigned short tx_conf_nak      PACKED; /* 16: Configure-Nak */
470         unsigned short tx_conf_rej      PACKED; /* 18: Configure-Reject */
471         unsigned short tx_term_rqst     PACKED; /* 1A: Terminate-Request */
472         unsigned short tx_term_ack      PACKED; /* 1C: Terminate-Ack */
473         unsigned short tx_code_rej      PACKED; /* 1E: Code-Reject */
474         unsigned short rx_too_large     PACKED; /* 20: packets too large */
475         unsigned short rx_ack_inval     PACKED; /* 22: invalid Conf-Ack */
476         unsigned short rx_rej_inval     PACKED; /* 24: invalid Conf-Reject */
477         unsigned short rx_rej_badid     PACKED; /* 26: Conf-Reject w/bad ID */
478 } ppp_prot_stats_t;
479
480 /*----------------------------------------------------------------------------
481  * PAP Statistics (returned by the PPP_READ_PAP_STATS command).
482  */
483 typedef struct  ppp_pap_stats
484 {
485         unsigned short rx_unknown       PACKED; /* 00: unknown type */
486         unsigned short rx_auth_rqst     PACKED; /* 02: Authenticate-Request */
487         unsigned short rx_auth_ack      PACKED; /* 04: Authenticate-Ack */
488         unsigned short rx_auth_nak      PACKED; /* 06: Authenticate-Nak */
489         unsigned short reserved         PACKED; /* 08: */
490         unsigned short tx_auth_rqst     PACKED; /* 0A: Authenticate-Request */
491         unsigned short tx_auth_ack      PACKED; /* 0C: Authenticate-Ack */
492         unsigned short tx_auth_nak      PACKED; /* 0E: Authenticate-Nak */
493         unsigned short rx_too_large     PACKED; /* 10: packets too large */
494         unsigned short rx_bad_peerid    PACKED; /* 12: invalid peer ID */
495         unsigned short rx_bad_passwd    PACKED; /* 14: invalid password */
496 } ppp_pap_stats_t;
497
498 /*----------------------------------------------------------------------------
499  * CHAP Statistics (returned by the PPP_READ_CHAP_STATS command).
500  */
501 typedef struct  ppp_chap_stats
502 {
503         unsigned short rx_unknown       PACKED; /* 00: unknown type */
504         unsigned short rx_challenge     PACKED; /* 02: Authenticate-Request */
505         unsigned short rx_response      PACKED; /* 04: Authenticate-Ack */
506         unsigned short rx_success       PACKED; /* 06: Authenticate-Nak */
507         unsigned short rx_failure       PACKED; /* 08: Authenticate-Nak */
508         unsigned short reserved         PACKED; /* 0A: */
509         unsigned short tx_challenge     PACKED; /* 0C: Authenticate-Request */
510         unsigned short tx_response      PACKED; /* 0E: Authenticate-Ack */
511         unsigned short tx_success       PACKED; /* 10: Authenticate-Nak */
512         unsigned short tx_failure       PACKED; /* 12: Authenticate-Nak */
513         unsigned short rx_too_large     PACKED; /* 14: packets too large */
514         unsigned short rx_bad_peerid    PACKED; /* 16: invalid peer ID */
515         unsigned short rx_bad_passwd    PACKED; /* 18: invalid password */
516         unsigned short rx_bad_md5       PACKED; /* 1A: invalid MD5 format */
517         unsigned short rx_bad_resp      PACKED; /* 1C: invalid response */
518 } ppp_chap_stats_t;
519
520 /*----------------------------------------------------------------------------
521  * Connection Information (returned by the PPP_GET_CONNECTION_INFO command).
522  */
523 typedef struct  ppp_conn_info
524 {
525         unsigned short remote_mru       PACKED; /* 00:  */
526         unsigned char  ip_options       PACKED; /* 02:  */
527         unsigned char  ip_local[4]      PACKED; /* 03:  */
528         unsigned char  ip_remote[4]     PACKED; /* 07:  */
529         unsigned char  ipx_options      PACKED; /* 0B:  */
530         unsigned char  ipx_network[4]   PACKED; /* 0C:  */
531         unsigned char  ipx_local[6]     PACKED; /* 10:  */
532         unsigned char  ipx_remote[6]    PACKED; /* 16:  */
533         unsigned char  ipx_router[48]   PACKED; /* 1C:  */
534         unsigned char  auth_status      PACKED; /* 4C:  */
535         unsigned char  peer_id[0]       PACKED; /* 4D:  */
536 } ppp_conn_info_t;
537
538 /* Data structure for SET_TRIGGER_INTR command
539  */
540
541 typedef struct ppp_intr_info{
542         unsigned char  i_enable         PACKED; /* 0 Interrupt enable bits */
543         unsigned char  irq              PACKED; /* 1 Irq number */
544         unsigned short timer_len        PACKED; /* 2 Timer delay */
545 } ppp_intr_info_t;
546
547
548 #define FT1_MONITOR_STATUS_CTRL                         0x80
549 #define SET_FT1_MODE                                    0x81
550
551
552
553 /* Special UDP drivers management commands */
554 #define PPIPE_ENABLE_TRACING                            0x20
555 #define PPIPE_DISABLE_TRACING                           0x21
556 #define PPIPE_GET_TRACE_INFO                            0x22
557 #define PPIPE_GET_IBA_DATA                              0x23
558 #define PPIPE_KILL_BOARD                                0x24
559 #define PPIPE_FT1_READ_STATUS                           0x25
560 #define PPIPE_DRIVER_STAT_IFSEND                        0x26
561 #define PPIPE_DRIVER_STAT_INTR                          0x27
562 #define PPIPE_DRIVER_STAT_GEN                           0x28
563 #define PPIPE_FLUSH_DRIVER_STATS                        0x29
564 #define PPIPE_ROUTER_UP_TIME                            0x30
565
566 #define DISABLE_TRACING                                 0x00
567 #define TRACE_SIGNALLING_FRAMES                         0x01
568 #define TRACE_DATA_FRAMES                               0x02
569
570
571
572 #ifdef          _MSC_
573 #  pragma       pack()
574 #endif
575 #endif  /* _SDLA_PPP_H */