Subversion Repositories shark

Rev

Rev 422 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
422 giacomo 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 */