1168 lines
39 KiB
C
1168 lines
39 KiB
C
/*****************************************************************************
|
|
* wanpipe_cfg.h WANPIPE(tm) Sangoma Device Driver.
|
|
******************************************************************************/
|
|
|
|
#ifndef _WANPIPE_CFG_H_
|
|
#define _WANPIPE_CFG_H_
|
|
|
|
# include "sdla_front_end.h"
|
|
# include "wanpipe_cfg_def.h"
|
|
# include "wanpipe_cfg_fr.h"
|
|
# include "wanpipe_cfg_sppp.h"
|
|
# include "wanpipe_cfg_hdlc.h"
|
|
# include "wanpipe_cfg_atm.h"
|
|
# include "wanpipe_cfg_lip.h"
|
|
# include "wanpipe_cfg_adsl.h"
|
|
# include "wanpipe_abstr_types.h"
|
|
|
|
/* The user space applications need the
|
|
wan_time_t define. However we cannot include
|
|
wanpipe_defines.h in kernel mode due to
|
|
binary only apps like adsl/fr/ppp */
|
|
#if !defined(__KERNEL__)
|
|
# include "wanpipe_defines.h"
|
|
#endif
|
|
|
|
/* This is the maximum number of interfaces that any protocol may have.
|
|
For example: a number of DLCIs. */
|
|
#ifndef MAX_NUMBER_OF_PROTOCOL_INTERFACES
|
|
#define MAX_NUMBER_OF_PROTOCOL_INTERFACES 100
|
|
#endif
|
|
|
|
|
|
/* Miscellaneous */
|
|
#if defined(__WINDOWS__)
|
|
|
|
/* Frame Relay definitions for sprotocol.dll
|
|
(the Protocol Configurator in Device Manager) */
|
|
#define MIN_T391 5
|
|
#define MAX_T391 30
|
|
#define MIN_T392 5
|
|
#define MAX_T392 30
|
|
#define MIN_N391 1
|
|
#define MAX_N391 255
|
|
#define MIN_N392 1
|
|
#define MAX_N392 10
|
|
#define MIN_N393 1
|
|
#define MAX_N393 10
|
|
|
|
#define HIGHEST_VALID_DLCI 991
|
|
#define LOWEST_VALID_DLCI 16
|
|
/********** end of sprotocol.dll definitions ************/
|
|
|
|
|
|
/* string definitions shared with the Driver via Registry */
|
|
#define WP_REGSTR_USER_SPECIFIED_WANPIPE_NUMBER "UserWanpipeNumber"
|
|
|
|
|
|
|
|
#pragma warning( disable : 4200 ) /* zero-sized array in struct */
|
|
#endif/* __WINDOWS__ */
|
|
|
|
#define USED_BY_FIELD 128 /* max length of the used by field */
|
|
|
|
|
|
enum wan_codec_format{
|
|
WP_NONE,
|
|
WP_SLINEAR
|
|
};
|
|
|
|
|
|
/* Interface Operation Modes */
|
|
enum {
|
|
WANPIPE, /* TCP/IP over CHDLC, Frame Relay, PPP... */
|
|
API, /* Data OR Voice. Requires API Poll. */
|
|
BRIDGE,
|
|
BRIDGE_NODE,
|
|
WP_SWITCH,
|
|
STACK,
|
|
ANNEXG,
|
|
TTY,
|
|
TDM_VOICE, /* Asterisk/Zaptel support */
|
|
TDM_VOICE_DCHAN, /* Depricated. */
|
|
TDM_VOICE_API, /* Linux: Sangoma Voice API support. Windows: Depricated. */
|
|
TDM_API,
|
|
WP_NETGRAPH,
|
|
TRUNK,
|
|
XMTP2_API,
|
|
TDM_SPAN_VOICE_API, /* Voice API support. Delivers Voice stream from a Span of channels. */
|
|
TDM_CHAN_VOICE_API, /* Voice API support. Delivers Voice stream from a single channel. */
|
|
API_LEGACY, /* Data OR Voice. Windows: Does NOT require API Poll. Linux: runs on Sangoma Socket interface. */
|
|
MTP1_API
|
|
};
|
|
|
|
|
|
/* POS protocols */
|
|
enum {
|
|
IBM4680,
|
|
NCR2127,
|
|
NCR2126,
|
|
NCR1255,
|
|
NCR7000,
|
|
ICL
|
|
};
|
|
|
|
/* Standard Mode */
|
|
enum {
|
|
WANOPT_ADSL_T1_413 = 0,
|
|
WANOPT_ADSL_G_LITE = 1,
|
|
WANOPT_ADSL_G_DMT = 2,
|
|
WANOPT_ADSL_ALCATEL_1_4 = 3,
|
|
WANOPT_ADSL_MULTIMODE = 4,
|
|
WANOPT_ADSL_ADI = 5,
|
|
WANOPT_ADSL_ALCATEL = 6,
|
|
WANOPT_ADSL_T1_413_AUTO = 9
|
|
};
|
|
|
|
/* Trellis Modes */
|
|
#define WANOPT_ADSL_TRELLIS_DISABLE 0x0000
|
|
#define WANOPT_ADSL_TRELLIS_ENABLE 0x8000
|
|
|
|
#define WANOPT_ADSL_TRELLIS_LITE_ONLY_DISABLE 0xF000
|
|
|
|
#define WANOPT_ADSL_0DB_CODING_GAIN 0x0000
|
|
#define WANOPT_ADSL_1DB_CODING_GAIN 0x1000
|
|
#define WANOPT_ADSL_2DB_CODING_GAIN 0x2000
|
|
#define WANOPT_ADSL_3DB_CODING_GAIN 0x3000
|
|
#define WANOPT_ADSL_4DB_CODING_GAIN 0x4000
|
|
#define WANOPT_ADSL_5DB_CODING_GAIN 0x5000
|
|
#define WANOPT_ADSL_6DB_CODING_GAIN 0x6000
|
|
#define WANOPT_ADSL_7DB_CODING_GAIN 0x7000
|
|
#define WANOPT_ADSL_AUTO_CODING_GAIN 0xFF00
|
|
|
|
#define WANOPT_ADSL_RX_BIN_ENABLE 0x01
|
|
#define WANOPT_ADSL_RX_BIN_DISABLE 0x00
|
|
|
|
|
|
#define WANOPT_ADSL_FRAMING_TYPE_0 0x0000
|
|
#define WANOPT_ADSL_FRAMING_TYPE_1 0x0001
|
|
#define WANOPT_ADSL_FRAMING_TYPE_2 0x0002
|
|
#define WANOPT_ADSL_FRAMING_TYPE_3 0x0003
|
|
|
|
#define WANOPT_ADSL_EXPANDED_EXCHANGE 0x8000
|
|
#define WANOPT_ADSL_SHORT_EXCHANGE 0x0000
|
|
|
|
#define WANOPT_ADSL_CLOCK_OSCILLATOR 0x00
|
|
#define WANOPT_ADSL_CLOCK_CRYSTAL 0x04
|
|
|
|
|
|
#define SDLA_DECODE_CARDTYPE(card_type) \
|
|
(card_type == WANOPT_S50X) ? "S50X" : \
|
|
(card_type == WANOPT_S51X) ? "S51X" : \
|
|
(card_type == WANOPT_ADSL) ? "ADSL" : \
|
|
(card_type == WANOPT_AFT) ? "A101/2" : \
|
|
(card_type == WANOPT_AFT101 || \
|
|
card_type == WANOPT_AFT102 || \
|
|
card_type == WANOPT_AFT104 || \
|
|
card_type == WANOPT_AFT108 || \
|
|
card_type == WANOPT_AFT116) ? "A101/1D/2/2D/4/4D/8/8D/16/16D" : \
|
|
(card_type == WANOPT_T116) ? "T116" : \
|
|
(card_type == WANOPT_AFT300) ? "A300" : \
|
|
(card_type == WANOPT_AFT_ANALOG) ? "A200/A400/B600/B700/B800/B610" : \
|
|
(card_type == WANOPT_AFT_GSM) ? "W400" : \
|
|
(card_type == WANOPT_AFT_ISDN) ? "A500/B700/B500" : \
|
|
(card_type == WANOPT_AFT_56K) ? "A056" : \
|
|
(card_type == WANOPT_AFT_SERIAL) ? "A14x" : \
|
|
(card_type == WANOPT_USB_ANALOG) ? "U100" : \
|
|
(card_type == WANOPT_AFT600) ? "A600" : \
|
|
(card_type == WANOPT_AFT610) ? "A610" : \
|
|
(card_type == WANOPT_AFT601) ? "B601" : \
|
|
"Unknown"
|
|
|
|
#define COMPORT_DECODE(port) (port == WANOPT_PRI) ? "PRI" : "SEC"
|
|
|
|
#define STATE_DECODE(state) \
|
|
((state == WAN_UNCONFIGURED) ? "Unconfigured" : \
|
|
(state == WAN_DISCONNECTED) ? "Disconnected" : \
|
|
(state == WAN_CONNECTING) ? "Connecting" : \
|
|
(state == WAN_CONNECTED) ? "Connected": \
|
|
(state == WAN_LIMIT) ? "Limit": \
|
|
(state == WAN_DUALPORT) ? "DualPort": \
|
|
(state == WAN_DISCONNECTING) ? "Disconnecting": \
|
|
(state == WAN_FT1_READY) ? "FT1 Ready": "Invalid")
|
|
|
|
#define CFG_DECODE(value) (value) ? "YES" : "NO"
|
|
|
|
#define CLK_DECODE(clocking) (clocking) ? "INT" : "EXT"
|
|
|
|
#define INT_DECODE(interface) \
|
|
(interface == WANOPT_RS232) ? "RS232" : \
|
|
(interface == WANOPT_V35) ? "V35" : \
|
|
"Invalid"
|
|
|
|
#define SIGNALLING_DECODE(sig) \
|
|
(sig == WANOPT_FR_ANSI) ? "ANSI" : \
|
|
(sig == WANOPT_FR_Q933) ? "Q333" : \
|
|
(sig == WANOPT_FR_LMI) ? "LMI" : "NO"
|
|
|
|
#define COMPORT_DECODE(port) (port == WANOPT_PRI) ? "PRI" : "SEC"
|
|
|
|
#define IP_MODE_DECODE(ip_mode) \
|
|
(ip_mode == WANOPT_PPP_STATIC) ? "STATIC" : \
|
|
(ip_mode == WANOPT_PPP_PEER) ? "PEER" : "HOST"
|
|
|
|
#define X25_STATION_DECODE(station) \
|
|
(station == WANOPT_DTE) ? "DTE" : \
|
|
(station == WANOPT_DCE) ? "DCE" : "DXE"
|
|
|
|
#define FR_STATION_DECODE(station) \
|
|
(station == WANOPT_CPE) ? "CPE" : "Node"
|
|
|
|
#define DEFAULT_TE_RX_SLEVEL 120
|
|
|
|
typedef char devname_t[WAN_DRVNAME_SZ+1];
|
|
|
|
/* Return:
|
|
* sub-media as string or
|
|
* 'N/A' if sub-media does not exist or
|
|
* 'InvalidSubMedia' if error. */
|
|
static __inline const char* wp_decode_submedia(int media, int sub_media)
|
|
{
|
|
switch(media)
|
|
{
|
|
case WAN_MEDIA_FXOFXS:
|
|
switch(sub_media)
|
|
{
|
|
case MOD_TYPE_FXS:
|
|
return "FXS";
|
|
case MOD_TYPE_FXO:
|
|
return "FXO";
|
|
default:
|
|
return "InvalidSubMedia";
|
|
}
|
|
break;/* WAN_MEDIA_FXOFXS */
|
|
|
|
case WAN_MEDIA_BRI:
|
|
switch(sub_media)
|
|
{
|
|
case MOD_TYPE_NT:
|
|
return "ISDN BRI NT";
|
|
case MOD_TYPE_TE:
|
|
return "ISDN BRI TE";
|
|
default:
|
|
return "InvalidSubMedia";
|
|
}
|
|
break;/* WAN_MEDIA_BRI */
|
|
|
|
case WAN_MEDIA_SERIAL:
|
|
return INT_DECODE(sub_media);
|
|
|
|
default:
|
|
return "N/A";/* this media does not have any sub-media (e.g. T1) */
|
|
}
|
|
}
|
|
|
|
#define SDLA_DECODE_WAN_MEDIA(wan_media) \
|
|
(wan_media == WAN_MEDIA_NONE) ? "MEDIA_NONE": \
|
|
(wan_media == WAN_MEDIA_T1) ? "MEDIA_T1": \
|
|
(wan_media == WAN_MEDIA_E1) ? "MEDIA_E1": \
|
|
(wan_media == WAN_MEDIA_56K) ? "MEDIA_56K": \
|
|
(wan_media == WAN_MEDIA_DS3) ? "MEDIA_DS3": \
|
|
(wan_media == WAN_MEDIA_E3) ? "MEDIA_E3": \
|
|
(wan_media == WAN_MEDIA_STS1) ? "MEDIA_STS1": \
|
|
(wan_media == WAN_MEDIA_J1) ? "MEDIA_J1": \
|
|
(wan_media == WAN_MEDIA_FXOFXS) ? "MEDIA_FXOFXS": \
|
|
(wan_media == WAN_MEDIA_BRI) ? "MEDIA_BRI": \
|
|
(wan_media == WAN_MEDIA_SERIAL) ? "MEDIA_SERIAL": "Media Unknown"
|
|
|
|
typedef struct wan_atm_conf
|
|
{
|
|
unsigned char atm_sync_mode;
|
|
unsigned short atm_sync_data;
|
|
unsigned char atm_sync_offset;
|
|
unsigned short atm_hunt_timer;
|
|
|
|
unsigned char atm_cell_cfg;
|
|
unsigned char atm_cell_pt;
|
|
unsigned char atm_cell_clp;
|
|
unsigned char atm_cell_payload;
|
|
}wan_atm_conf_t;
|
|
|
|
|
|
typedef struct wan_bitstrm_conf{
|
|
/* Bitstreaming options */
|
|
unsigned short sync_options;
|
|
unsigned short rx_sync_char;
|
|
unsigned char monosync_tx_time_fill_char;
|
|
unsigned int max_length_tx_data_block;
|
|
unsigned int rx_complete_length;
|
|
unsigned int rx_complete_timer;
|
|
|
|
unsigned int rbs_map;
|
|
|
|
}wan_bitstrm_conf_t;
|
|
|
|
|
|
typedef struct wan_bitstrm_conf_if
|
|
{
|
|
unsigned int max_tx_queue_size;
|
|
unsigned int max_tx_up_size;
|
|
unsigned char seven_bit_hdlc;
|
|
}wan_bitstrm_conf_if_t;
|
|
|
|
/*----------------------------------------------------------------------------
|
|
* X.25-specific link-level configuration.
|
|
*/
|
|
typedef struct wan_x25_conf
|
|
{
|
|
unsigned int lo_pvc; /* lowest permanent circuit number */
|
|
unsigned int hi_pvc; /* highest permanent circuit number */
|
|
unsigned int lo_svc; /* lowest switched circuit number */
|
|
unsigned int hi_svc; /* highest switched circuit number */
|
|
unsigned int hdlc_window; /* HDLC window size (1..7) */
|
|
unsigned int pkt_window; /* X.25 packet window size (1..7) */
|
|
unsigned int t1; /* HDLC timer T1, sec (1..30) */
|
|
unsigned int t2; /* HDLC timer T2, sec (0..29) */
|
|
unsigned int t4; /* HDLC supervisory frame timer = T4 * T1 */
|
|
unsigned int n2; /* HDLC retransmission limit (1..30) */
|
|
unsigned int t10_t20; /* X.25 RESTART timeout, sec (1..255) */
|
|
unsigned int t11_t21; /* X.25 CALL timeout, sec (1..255) */
|
|
unsigned int t12_t22; /* X.25 RESET timeout, sec (1..255) */
|
|
unsigned int t13_t23; /* X.25 CLEAR timeout, sec (1..255) */
|
|
unsigned int t16_t26; /* X.25 INTERRUPT timeout, sec (1..255) */
|
|
unsigned int t28; /* X.25 REGISTRATION timeout, sec (1..255) */
|
|
unsigned int r10_r20; /* RESTART retransmission limit (0..250) */
|
|
unsigned int r12_r22; /* RESET retransmission limit (0..250) */
|
|
unsigned int r13_r23; /* CLEAR retransmission limit (0..250) */
|
|
unsigned int ccitt_compat; /* compatibility mode: 1988/1984/1980 */
|
|
unsigned int x25_conf_opt; /* User defined x25 config optoins */
|
|
unsigned char LAPB_hdlc_only; /* Run in HDLC only mode */
|
|
unsigned char logging; /* Control connection logging */
|
|
unsigned char oob_on_modem; /* Whether to send modem
|
|
status to the user app */
|
|
unsigned char local_station_address; /*Local Station address */
|
|
unsigned short defPktSize;
|
|
unsigned short pktMTU;
|
|
unsigned char cmd_retry_timeout; /* Value is seconds */
|
|
unsigned char station;
|
|
} wan_x25_conf_t;
|
|
|
|
typedef struct wan_rtp_conf
|
|
{
|
|
unsigned int rtp_ip;
|
|
unsigned int rtp_local_ip;
|
|
unsigned short rtp_port;
|
|
unsigned short rtp_sample;
|
|
unsigned char rtp_devname[WAN_IFNAME_SZ+1];
|
|
unsigned char rtp_mac[WAN_IFNAME_SZ+1];
|
|
unsigned char rtp_local_mac[WAN_IFNAME_SZ+1];
|
|
}wan_rtp_conf_t;
|
|
|
|
typedef struct wan_xilinx_conf
|
|
{
|
|
unsigned short dma_per_ch; /* DMA buffers per logic channel */
|
|
unsigned short mru; /* MRU of transparent channels */
|
|
unsigned int rbs; /* Robbit signalling support */
|
|
unsigned int data_mux_map; /* Data mux map */
|
|
unsigned int rx_crc_bytes;
|
|
unsigned char span_tx_only_irq; /* SPAN mode API to use rx irq only */
|
|
unsigned char global_poll_irq;
|
|
unsigned char hw_port_map; /* A108 hw port map: Default or Linear */
|
|
unsigned short rx_fifo_trigger;
|
|
unsigned short tx_fifo_trigger;
|
|
} wan_xilinx_conf_t;
|
|
|
|
typedef struct wan_xilinx_conf_if
|
|
{
|
|
unsigned char station; /* Node or CPE */
|
|
unsigned int signalling; /* local in-channel signalling type */
|
|
unsigned char seven_bit_hdlc;
|
|
unsigned int mru;
|
|
unsigned int mtu;
|
|
unsigned char idle_flag;
|
|
unsigned char data_mux;
|
|
unsigned char ss7_enable;
|
|
unsigned char ss7_mode;
|
|
unsigned char ss7_lssu_size;
|
|
unsigned char tdmv_master_if;
|
|
unsigned char rbs_cas_idle; /* Initial RBS/CAS value */
|
|
unsigned char hdlc_repeat;
|
|
unsigned int mtu_idle;
|
|
unsigned char sw_hdlc;
|
|
unsigned short mtp1_filter;
|
|
}wan_xilinx_conf_if_t;
|
|
|
|
#if defined(CONFIG_PRODUCT_WANPIPE_USB)
|
|
typedef struct wan_usb_conf_if
|
|
{
|
|
int notused;
|
|
|
|
}wan_usb_conf_if_t;
|
|
#endif
|
|
|
|
|
|
typedef struct wan_ss7_conf
|
|
{
|
|
unsigned int line_cfg_opt;
|
|
unsigned int modem_cfg_opt;
|
|
unsigned int modem_status_timer;
|
|
unsigned int api_options;
|
|
unsigned int protocol_options;
|
|
unsigned int protocol_specification;
|
|
unsigned int stats_history_options;
|
|
unsigned int max_length_msu_sif;
|
|
unsigned int max_unacked_tx_msus;
|
|
unsigned int link_inactivity_timer;
|
|
unsigned int t1_timer;
|
|
unsigned int t2_timer;
|
|
unsigned int t3_timer;
|
|
unsigned int t4_timer_emergency;
|
|
unsigned int t4_timer_normal;
|
|
unsigned int t5_timer;
|
|
unsigned int t6_timer;
|
|
unsigned int t7_timer;
|
|
unsigned int t8_timer;
|
|
unsigned int n1;
|
|
unsigned int n2;
|
|
unsigned int tin;
|
|
unsigned int tie;
|
|
unsigned int suerm_error_threshold;
|
|
unsigned int suerm_number_octets;
|
|
unsigned int suerm_number_sus;
|
|
unsigned int sie_interval_timer;
|
|
unsigned int sio_interval_timer;
|
|
unsigned int sios_interval_timer;
|
|
unsigned int fisu_interval_timer;
|
|
} wan_ss7_conf_t;
|
|
|
|
|
|
#define WANOPT_TWO_WAY_ALTERNATE 0
|
|
#define WANOPT_TWO_WAY_SIMULTANEOUS 1
|
|
|
|
#define WANOPT_PRI_DISC_ON_NO_RESP 0
|
|
#define WANOPT_PRI_SNRM_ON_NO_RESP 1
|
|
|
|
typedef struct wan_xdlc_conf {
|
|
|
|
unsigned char station;
|
|
unsigned int address;
|
|
unsigned int max_I_field_length;
|
|
|
|
unsigned int protocol_config;
|
|
unsigned int error_response_config;
|
|
unsigned int TWS_max_ack_count;
|
|
|
|
unsigned int pri_slow_poll_timer;
|
|
unsigned int pri_normal_poll_timer;
|
|
unsigned int pri_frame_response_timer;
|
|
unsigned int sec_nrm_timer;
|
|
|
|
unsigned int max_no_response_cnt;
|
|
unsigned int max_frame_retransmit_cnt;
|
|
unsigned int max_rnr_cnt;
|
|
|
|
unsigned int window;
|
|
|
|
}wan_xdlc_conf_t;
|
|
|
|
|
|
typedef struct wan_sdlc_conf {
|
|
|
|
unsigned char station_configuration;
|
|
unsigned int baud_rate;
|
|
unsigned short max_I_field_length;
|
|
unsigned short general_operational_config_bits;
|
|
unsigned short protocol_config_bits;
|
|
unsigned short exception_condition_reporting_config;
|
|
unsigned short modem_config_bits;
|
|
unsigned short statistics_format;
|
|
unsigned short pri_station_slow_poll_interval;
|
|
unsigned short permitted_sec_station_response_TO;
|
|
unsigned short no_consec_sec_TOs_in_NRM_before_SNRM_issued;
|
|
unsigned short max_lgth_I_fld_pri_XID_frame;
|
|
unsigned short opening_flag_bit_delay_count;
|
|
unsigned short RTS_bit_delay_count;
|
|
unsigned short CTS_timeout_1000ths_sec;
|
|
unsigned char SDLA_configuration;
|
|
|
|
}wan_sdlc_conf_t;
|
|
|
|
|
|
typedef struct wan_bscstrm_conf {
|
|
unsigned int baud_rate; /* the baud rate */
|
|
unsigned int adapter_frequency; /* the adapter frequecy */
|
|
unsigned short max_data_length; /* the maximum length of a BSC data block */
|
|
unsigned short EBCDIC_encoding; /* EBCDIC/ASCII encoding */
|
|
unsigned short Rx_block_type; /* the type of BSC block to be received */
|
|
unsigned short no_consec_PADs_EOB; /* the number of consecutive PADs indicating the end of the block */
|
|
unsigned short no_add_lead_Tx_SYN_chars; /* the number of additional leading transmit SYN characters */
|
|
unsigned short no_bits_per_char; /* the number of bits per character */
|
|
unsigned short parity; /* parity */
|
|
unsigned short misc_config_options; /* miscellaneous configuration options */
|
|
unsigned short statistics_options; /* statistic options */
|
|
unsigned short modem_config_options; /* modem configuration options */
|
|
}wan_bscstrm_conf_t;
|
|
|
|
|
|
/*----------------------------------------------------------------------------
|
|
* PPP-specific link-level configuration.
|
|
*/
|
|
typedef struct wan_ppp_conf
|
|
{
|
|
unsigned restart_tmr; /* restart timer */
|
|
unsigned auth_rsrt_tmr; /* authentication timer */
|
|
unsigned auth_wait_tmr; /* authentication timer */
|
|
unsigned mdm_fail_tmr; /* modem failure timer */
|
|
unsigned dtr_drop_tmr; /* DTR drop timer */
|
|
unsigned connect_tmout; /* connection timeout */
|
|
unsigned conf_retry; /* max. retry */
|
|
unsigned term_retry; /* max. retry */
|
|
unsigned fail_retry; /* max. retry */
|
|
unsigned auth_retry; /* max. retry */
|
|
unsigned auth_options; /* authentication opt. */
|
|
unsigned ip_options; /* IP options */
|
|
char authenticator; /* AUTHENTICATOR or not */
|
|
char ip_mode; /* Static/Host/Peer */
|
|
} wan_ppp_conf_t;
|
|
|
|
/*----------------------------------------------------------------------------
|
|
* CHDLC-specific link-level configuration.
|
|
*/
|
|
typedef struct wan_chdlc_conf
|
|
{
|
|
unsigned char ignore_dcd; /* Protocol options: */
|
|
unsigned char ignore_cts; /* Ignore these to determine */
|
|
unsigned char ignore_keepalive; /* link status (Yes or No) */
|
|
unsigned char hdlc_streaming; /* hdlc_streaming mode (Y/N) */
|
|
unsigned char receive_only; /* no transmit buffering (Y/N) */
|
|
unsigned keepalive_tx_tmr; /* transmit keepalive timer */
|
|
unsigned keepalive_rx_tmr; /* receive keepalive timer */
|
|
unsigned keepalive_err_margin; /* keepalive_error_tolerance */
|
|
unsigned slarp_timer; /* SLARP request timer */
|
|
unsigned char fast_isr; /* Fast interrupt option */
|
|
unsigned int protocol_options;
|
|
} wan_chdlc_conf_t;
|
|
|
|
|
|
|
|
#define X25_CALL_STR_SZ 512
|
|
#define WAN_IF_LABEL_SZ 15
|
|
|
|
typedef struct lapb_parms_struct {
|
|
unsigned int t1;
|
|
unsigned int t1timer;
|
|
unsigned int t2;
|
|
unsigned int t2timer;
|
|
unsigned int n2;
|
|
unsigned int n2count;
|
|
unsigned int t3;
|
|
unsigned int t4;
|
|
unsigned int window;
|
|
unsigned int state;
|
|
unsigned int mode;
|
|
unsigned int mtu;
|
|
unsigned int station;
|
|
unsigned char label[WAN_IF_LABEL_SZ+1];
|
|
unsigned char virtual_addr[WAN_ADDRESS_SZ+1];
|
|
unsigned char real_addr[WAN_ADDRESS_SZ+1];
|
|
}wan_lapb_if_conf_t;
|
|
|
|
|
|
|
|
typedef struct x25_parms_struct {
|
|
|
|
unsigned short X25_API_options;
|
|
unsigned short X25_protocol_options;
|
|
unsigned short X25_response_options;
|
|
unsigned short X25_statistics_options;
|
|
unsigned short packet_window;
|
|
unsigned short default_packet_size;
|
|
unsigned short maximum_packet_size;
|
|
unsigned short lowest_PVC;
|
|
unsigned short highest_PVC;
|
|
unsigned short lowest_incoming_channel;
|
|
unsigned short highest_incoming_channel;
|
|
unsigned short lowest_two_way_channel;
|
|
unsigned short highest_two_way_channel;
|
|
unsigned short lowest_outgoing_channel;
|
|
unsigned short highest_outgoing_channel;
|
|
unsigned short genl_facilities_supported_1;
|
|
unsigned short genl_facilities_supported_2;
|
|
unsigned short CCITT_facilities_supported;
|
|
unsigned short non_X25_facilities_supported;
|
|
unsigned short CCITT_compatibility;
|
|
unsigned int T10_T20;
|
|
unsigned int T11_T21;
|
|
unsigned int T12_T22;
|
|
unsigned int T13_T23;
|
|
unsigned int T16_T26;
|
|
unsigned int T28;
|
|
unsigned short R10_R20;
|
|
unsigned short R12_R22;
|
|
unsigned short R13_R23;
|
|
unsigned char dte;
|
|
unsigned char mode;
|
|
|
|
unsigned char call_string [X25_CALL_STR_SZ+1];
|
|
|
|
/* Accept Call Information */
|
|
unsigned char accept_called [WAN_ADDRESS_SZ+1];
|
|
unsigned char accept_calling[WAN_ADDRESS_SZ+1];
|
|
unsigned char accept_facil [WAN_ADDRESS_SZ+1];
|
|
unsigned char accept_udata [WAN_ADDRESS_SZ+1];
|
|
|
|
unsigned char label [WAN_IF_LABEL_SZ+1];
|
|
|
|
unsigned int call_backoff_timeout;
|
|
unsigned char call_logging;
|
|
|
|
/* X25_SW X.25 switching */
|
|
unsigned char virtual_addr[WAN_ADDRESS_SZ+1];
|
|
unsigned char real_addr[WAN_ADDRESS_SZ+1];
|
|
|
|
unsigned char addr[WAN_ADDRESS_SZ+1]; /* PVC LCN number */
|
|
|
|
} wan_x25_if_conf_t;
|
|
|
|
typedef struct dsp_parms {
|
|
|
|
unsigned char pad_type; /* PAD type: HOST or TERM */
|
|
unsigned int T1; /* Service Timeout perioud */
|
|
unsigned int T2; /* PAD protocol timeout period */
|
|
unsigned int T3; /* Timeout between two packets
|
|
* of the same M_DATA */
|
|
unsigned char auto_ce; /* Automaticaly send Circuit Enabled
|
|
* with ACCEPT CALL packet */
|
|
unsigned char auto_call_req; /* Automaticaly re-send CALL REQUEST
|
|
* if it was failed before (T1) */
|
|
unsigned char auto_ack; /* Automaticaly send ACK for data */
|
|
|
|
unsigned short dsp_mtu; /* MTU size for DSP level */
|
|
|
|
}wan_dsp_if_conf_t;
|
|
|
|
|
|
/*----------------------------------------------------------------------------
|
|
* TDMV configuration structures.
|
|
*/
|
|
|
|
typedef struct wan_tdmv_conf_ {
|
|
|
|
unsigned char span_no;
|
|
unsigned int dchan; /* hwHDLC: PRI SIG */
|
|
unsigned char hw_dtmf; /* TDMV Enable/Disable HW DTMF */
|
|
unsigned char hw_fax_detect; /* TDMV Enable/Disable HW FAX Calling */
|
|
unsigned char hw_faxcalled; /* TDMV Enable/Disable HW FAX Called */
|
|
unsigned char sdla_tdmv_dummy_enable;
|
|
unsigned char ec_off_on_fax; /* Disable hwec on fax event */
|
|
} wan_tdmv_conf_t;
|
|
|
|
typedef struct wan_hwec_conf_
|
|
{
|
|
unsigned int clk_src; /* Octasic Clock Source Port */
|
|
unsigned int persist_disable; /* HW EC Persist */
|
|
unsigned char noise_reduction; /* Noise Reduction control */
|
|
unsigned char noise_reduction_disable; /* Noise Reduction control - because now its on by default */
|
|
unsigned int tone_disabler_delay; /* delay in a fax mode */
|
|
unsigned char dtmf_removal; /* remove dtmf */
|
|
unsigned char operation_mode;
|
|
unsigned char acustic_echo;
|
|
unsigned char nlp_disable;
|
|
int rx_auto_gain;
|
|
int tx_auto_gain;
|
|
int rx_gain;
|
|
int tx_gain;
|
|
unsigned char hw_fax_detect_cnt;
|
|
} wan_hwec_conf_t;
|
|
|
|
typedef struct wan_hwec_dev_state
|
|
{
|
|
u_int32_t ec_state;
|
|
u_int32_t ec_mode_map;
|
|
u_int32_t dtmf_map;
|
|
u_int32_t fax_called_map;
|
|
u_int32_t fax_calling_map;
|
|
}wan_hwec_dev_state_t;
|
|
|
|
#define MAX_PARAM_LEN 50
|
|
#define MAX_VALUE_LEN 50
|
|
typedef struct wan_custom_param_
|
|
{
|
|
char name[MAX_PARAM_LEN+1];
|
|
char sValue[MAX_VALUE_LEN+1];
|
|
unsigned int dValue;
|
|
} wan_custom_param_t;
|
|
|
|
typedef struct wan_custom_conf_
|
|
{
|
|
unsigned int param_no;
|
|
wan_custom_param_t *WP_POINTER_64 params;
|
|
} wan_custom_conf_t;
|
|
|
|
|
|
/*----------------------------------------------------------------------------
|
|
* WAN device configuration. Passed to ROUTER_SETUP IOCTL.
|
|
*/
|
|
typedef struct wandev_conf
|
|
{
|
|
unsigned magic; /* magic number (for verification) */
|
|
unsigned long config_id; /* configuration structure identifier */
|
|
/****** hardware configuration ******/
|
|
unsigned ioport; /* adapter I/O port base */
|
|
unsigned long maddr; /* dual-port memory address */
|
|
unsigned msize; /* dual-port memory size */
|
|
int irq; /* interrupt request level */
|
|
int dma; /* DMA request level */
|
|
char S514_CPU_no[1]; /* S514 PCI adapter CPU number ('A' or 'B') */
|
|
unsigned PCI_slot_no; /* S514 PCI adapter slot number */
|
|
char auto_hw_detect; /* S515 PCI automatic slot detection */
|
|
char usb_busid[30]; /* USB bus id string (FIXME: length is set to 30) (for USB devices) */
|
|
unsigned int comm_port; /* Communication Port (PRI=0, SEC=1) */
|
|
unsigned int bps; /* data transfer rate */
|
|
unsigned int mtu; /* maximum transmit unit size */
|
|
unsigned udp_port; /* UDP port for management */
|
|
unsigned char ttl; /* Time To Live for UDP security */
|
|
unsigned char ft1; /* FT1 Configurator Option */
|
|
char electrical_interface; /* RS-232/V.35, etc. */
|
|
char clocking; /* external/internal */
|
|
char line_coding; /* NRZ/NRZI/FM0/FM1, etc. */
|
|
char connection; /* permanent/switched/on-demand */
|
|
char read_mode; /* read mode: Polling or interrupt */
|
|
char receive_only; /* disable tx buffers */
|
|
char tty; /* Create a fake tty device */
|
|
unsigned tty_major; /* Major number for wanpipe tty device */
|
|
unsigned tty_minor; /* Minor number for wanpipe tty device */
|
|
unsigned tty_mode; /* TTY operation mode SYNC or ASYNC */
|
|
char backup; /* Backup Mode */
|
|
unsigned hw_opt[4]; /* other hardware options */
|
|
unsigned reserved[4];
|
|
|
|
/****** arbitrary data ***************/
|
|
unsigned data_size; /* data buffer size */
|
|
|
|
void *WP_POINTER_64 data; /* data buffer, e.g. firmware */
|
|
|
|
union{ /****** protocol-specific ************/
|
|
wan_x25_conf_t x25; /* X.25 configuration */
|
|
wan_ppp_conf_t ppp; /* PPP configuration */
|
|
wan_fr_conf_t fr; /* frame relay configuration */
|
|
wan_chdlc_conf_t chdlc; /* Cisco HDLC configuration */
|
|
wan_ss7_conf_t ss7; /* SS7 Configuration */
|
|
wan_sdlc_conf_t sdlc; /* SDLC COnfiguration */
|
|
wan_bscstrm_conf_t bscstrm; /* Bisync Streaming Configuration */
|
|
wan_adsl_conf_t adsl; /* ADSL Configuration */
|
|
wan_atm_conf_t atm;
|
|
wan_xilinx_conf_t aft;
|
|
wan_bitstrm_conf_t bitstrm;
|
|
wan_xdlc_conf_t xdlc;
|
|
} u;
|
|
|
|
/* No new variables are allowed above */
|
|
unsigned int card_type; /* Supported Sangoma Card type */
|
|
unsigned int pci_bus_no; /* S514 PCI bus number */
|
|
|
|
sdla_fe_cfg_t fe_cfg; /* Front end configurations */
|
|
|
|
wan_tdmv_conf_t tdmv_conf;
|
|
wan_hwec_conf_t hwec_conf;
|
|
wan_rtp_conf_t rtp_conf;
|
|
wan_custom_conf_t oct_conf;
|
|
|
|
unsigned char line_idle; /* IDLE FLAG/ IDLE MARK */
|
|
unsigned char ignore_front_end_status;
|
|
unsigned int max_trace_queue;
|
|
unsigned int max_rx_queue;
|
|
|
|
#if 0
|
|
/* Bitstreaming options */
|
|
unsigned int sync_options;
|
|
unsigned char rx_sync_char;
|
|
unsigned char monosync_tx_time_fill_char;
|
|
unsigned int max_length_tx_data_block;
|
|
unsigned int rx_complete_length;
|
|
unsigned int rx_complete_timer;
|
|
|
|
unsigned int max_trace_queue;
|
|
unsigned int max_rx_queue;
|
|
#endif
|
|
|
|
} wandev_conf_t;
|
|
|
|
#if defined(__WINDOWS__)
|
|
#define WANCONFIG_AFT_FIRMWARE_UPDATE 89
|
|
#endif
|
|
|
|
/* 'config_id' definitions */
|
|
#define WANCONFIG_X25 101 /* X.25 link */
|
|
#define WANCONFIG_FR 102 /* frame relay link */
|
|
#define WANCONFIG_PPP 103 /* synchronous PPP link */
|
|
#define WANCONFIG_CHDLC 104 /* Cisco HDLC Link */
|
|
#define WANCONFIG_BSC 105 /* BiSync Streaming */
|
|
#define WANCONFIG_HDLC 106 /* HDLC Support */
|
|
#define WANCONFIG_MPPP 107 /* Multi Port PPP over RAW CHDLC */
|
|
#define WANCONFIG_MPROT WANCONFIG_MPPP /* Multi Port Driver HDLC,PPP,CHDLC over RAW CHDLC */
|
|
#define WANCONFIG_BITSTRM 108 /* Bit-Stream protocol */
|
|
#define WANCONFIG_EDUKIT 109 /* Educational Kit support */
|
|
#define WANCONFIG_SS7 110 /* SS7 Support */
|
|
#define WANCONFIG_BSCSTRM 111 /* Bisync Streaming Nasdaq */
|
|
#define WANCONFIG_MFR 112 /* Mulit-Port Frame Relay over RAW HDLC */
|
|
#define WANCONFIG_ADSL 113 /* LLC Ethernet Support */
|
|
#define WANCONFIG_SDLC 114 /* SDLC Support */
|
|
#define WANCONFIG_ATM 115 /* ATM Supprot */
|
|
#define WANCONFIG_POS 116 /* POS Support */
|
|
#define WANCONFIG_AFT 117 /* AFT Original Hardware Support */
|
|
#define WANCONFIG_DEBUG 118 /* Real Time Debugging */
|
|
#define WANCONFIG_ADCCP 119 /* Special HDLC LAPB Driver */
|
|
#define WANCONFIG_MLINK_PPP 120 /* Multi-Link PPP */
|
|
#define WANCONFIG_GENERIC 121 /* WANPIPE Generic driver */
|
|
#define WANCONFIG_AFT_TE3 122 /* AFT TE3 Hardware Support */
|
|
#define WANCONFIG_MPCHDLC 123 /* Multi Port CHDLC */
|
|
#define WANCONFIG_AFT_TE1_SS7 124 /* AFT TE1 SS7 Hardware Support */
|
|
#define WANCONFIG_LAPB 125 /* LIP LAPB Protocol Support */
|
|
#define WANCONFIG_XDLC 126 /* LIP XDLC Protocol Support */
|
|
#define WANCONFIG_TTY 127 /* LIP TTY Support */
|
|
#define WANCONFIG_AFT_TE1 128 /* AFT A1/2/4/8 Hardware Support */
|
|
#define WANCONFIG_XMTP2 129 /* LIP XMTP2 Protocol Support */
|
|
#define WANCONFIG_ASYHDLC 130 /* S514 ASY HDLC API Support */
|
|
#define WANCONFIG_LIP_ATM 131 /* ATM in LIP layer */
|
|
#define WANCONFIG_AFT_ANALOG 132 /* AFT Analog Driver */
|
|
#define WANCONFIG_ZAP 133 /* Used in wanpipemon when working with Zaptel driver */
|
|
#define WANCONFIG_LAPD 134 /* LIP LAPD Q921 Protocol Support */
|
|
#define WANCONFIG_LIP_KATM 135 /* Kernel ATM Stack Support */
|
|
#define WANCONFIG_AFT_56K 136 /* AFT 56K Support */
|
|
#define WANCONFIG_AFT_ISDN_BRI 137 /* AFT ISDN BRI Driver */
|
|
#define WANCONFIG_AFT_SERIAL 138 /* AFT Serial V32/RS232 Driver */
|
|
#define WANCONFIG_LIP_HDLC 139 /* LIP HDLC protocol */
|
|
#define WANCONFIG_USB_ANALOG 140 /* Wanpipe USB Driver */
|
|
#define WANCONFIG_AFT_GSM 141 /* Wanpipe GSM Driver */
|
|
#define WANCONFIG_AFT_T116 142 /* Wanpipe T116 Driver */
|
|
|
|
/*FIXME: This should be taken out, I just
|
|
//used it so I don't break the apps that are
|
|
//using the WANCONFIG_ETH. Once those apps are
|
|
//changed, remove this definition
|
|
*/
|
|
#define WANCONFIG_ETH WANCONFIG_ADSL
|
|
|
|
#define SDLA_DECODE_PROTOCOL(protocol) \
|
|
(protocol == WANCONFIG_X25) ? "X25" : \
|
|
(protocol == WANCONFIG_FR) ? "Frame Relay" : \
|
|
(protocol == WANCONFIG_PPP) ? "PPP" : \
|
|
(protocol == WANCONFIG_CHDLC) ? "CHDLC" : \
|
|
(protocol == WANCONFIG_BSC) ? "BiSync Streaming": \
|
|
(protocol == WANCONFIG_HDLC) ? "HDLC Streaming": \
|
|
(protocol == WANCONFIG_MPPP) ? "PPP": \
|
|
(protocol == WANCONFIG_BITSTRM) ? "Bit Stream": \
|
|
(protocol == WANCONFIG_EDUKIT) ? "WAN EduKit": \
|
|
(protocol == WANCONFIG_SS7) ? "SS7": \
|
|
(protocol == WANCONFIG_BSCSTRM) ? "Bisync Streaming Nasdaq": \
|
|
(protocol == WANCONFIG_MFR) ? "Frame Relay": \
|
|
(protocol == WANCONFIG_ADSL) ? "LLC Ethernet (ADSL)": \
|
|
(protocol == WANCONFIG_SDLC) ? "SDLC": \
|
|
(protocol == WANCONFIG_ATM) ? "ATM": \
|
|
(protocol == WANCONFIG_LIP_ATM)? "LIP_ATM": \
|
|
(protocol == WANCONFIG_LIP_KATM)? "LIP_KATM": \
|
|
(protocol == WANCONFIG_LAPB)? "LIP_LAPB": \
|
|
(protocol == WANCONFIG_LAPD)? "LIP_LAPD": \
|
|
(protocol == WANCONFIG_POS) ? "Point-of-Sale": \
|
|
(protocol == WANCONFIG_AFT) ? "AFT": \
|
|
(protocol == WANCONFIG_AFT_TE3) ? "AFT TE3": \
|
|
(protocol == WANCONFIG_DEBUG) ? "Real Time Debugging": \
|
|
(protocol == WANCONFIG_ADCCP) ? "Special HDLC LAPB": \
|
|
(protocol == WANCONFIG_MLINK_PPP) ? "Multi-Link PPP": \
|
|
(protocol == WANCONFIG_GENERIC) ? "WANPIPE Generic driver": \
|
|
(protocol == WANCONFIG_MPCHDLC) ? "CHDLC": \
|
|
(protocol == WANCONFIG_ZAP) ? "ZAP": \
|
|
(protocol == WANCONFIG_AFT_56K) ? "AFT 56K": \
|
|
(protocol == WANCONFIG_AFT_ISDN_BRI) ? "ISDN BRI": \
|
|
(protocol == WANCONFIG_AFT_SERIAL) ? "Serial V35/RS232": \
|
|
(protocol == WANCONFIG_AFT_ANALOG) ? "Analog FXO/FXS": \
|
|
(protocol == WANCONFIG_AFT_TE1) ? "AFT A1/2/4/8" : \
|
|
(protocol == WANCONFIG_LIP_HDLC) ? "LIP HDLC" : \
|
|
(protocol == WANCONFIG_AFT_SERIAL) ? "AFT Serial" : \
|
|
(protocol == WANCONFIG_AFT_ISDN_BRI) ? "AFT BRI" : \
|
|
(protocol == WANCONFIG_TTY) ? "TTY" : \
|
|
(protocol == WANCONFIG_USB_ANALOG) ? "USB Analog FXO/FXS" : \
|
|
(protocol == WANCONFIG_AFT_GSM) ? "AFT GSM " : \
|
|
"Unknown Protocol"
|
|
|
|
|
|
typedef struct wan_tdmv_if_conf
|
|
{
|
|
unsigned char tdmv_echo_off; /* TDMV echo disable */
|
|
unsigned char tdmv_codec; /* TDMV codec */
|
|
|
|
} wan_tdmv_if_conf_t;
|
|
|
|
typedef struct wan_hwec_if_conf
|
|
{
|
|
unsigned char enable; /* Enable/Disable HW EC */
|
|
|
|
} wan_hwec_if_conf_t;
|
|
|
|
|
|
/*----------------------------------------------------------------------------
|
|
* WAN interface (logical channel) configuration (for ROUTER_IFNEW IOCTL).
|
|
*/
|
|
typedef struct wanif_conf
|
|
{
|
|
unsigned magic; /* magic number */
|
|
unsigned long config_id; /* configuration identifier */
|
|
char name[WAN_IFNAME_SZ+1]; /* interface name, ASCIIZ */
|
|
char addr[WAN_ADDRESS_SZ+1]; /* media address, ASCIIZ */
|
|
char usedby[USED_BY_FIELD+1];/* used by API or WANPIPE */
|
|
unsigned idle_timeout; /* sec, before disconnecting */
|
|
unsigned hold_timeout; /* sec, before re-connecting */
|
|
unsigned cir; /* Committed Information Rate fwd,bwd*/
|
|
unsigned bc; /* Committed Burst Size fwd, bwd */
|
|
unsigned be; /* Excess Burst Size fwd, bwd */
|
|
#ifdef ENABLE_IPV6
|
|
unsigned char enable_IPv4; /* Enable or Disable IPv4 */
|
|
unsigned char enable_IPv6; /* Enable or Disable IPv6 */
|
|
#endif
|
|
unsigned char enable_IPX; /* Enable or Disable IPX */
|
|
unsigned char inarp; /* Send Inverse ARP requests Y/N */
|
|
unsigned inarp_interval; /* sec, between InARP requests */
|
|
unsigned int network_number; /* Network Number for IPX */
|
|
char mc; /* Multicast on or off */
|
|
char local_addr[WAN_ADDRESS_SZ+1];/* local media address, ASCIIZ */
|
|
unsigned char port; /* board port */
|
|
unsigned char protocol; /* prococol used in this channel (TCPOX25 or X25) */
|
|
char pap; /* PAP enabled or disabled */
|
|
char chap; /* CHAP enabled or disabled */
|
|
#ifdef ENABLE_IPV6
|
|
unsigned char chap_userid[WAN_AUTHNAMELEN]; /* List of User Id */
|
|
unsigned char chap_passwd[WAN_AUTHNAMELEN]; /* List of passwords */
|
|
unsigned char pap_userid[WAN_AUTHNAMELEN]; /* List of User Id */
|
|
unsigned char pap_passwd[WAN_AUTHNAMELEN]; /* List of passwords */
|
|
#else
|
|
unsigned char userid[WAN_AUTHNAMELEN]; /* List of User Id */
|
|
unsigned char passwd[WAN_AUTHNAMELEN]; /* List of passwords */
|
|
#endif
|
|
unsigned char sysname[SYSTEM_NAME_LEN]; /* Name of the system */
|
|
unsigned char ignore_dcd; /* Protocol options: */
|
|
unsigned char ignore_cts; /* Ignore these to determine */
|
|
unsigned char ignore_keepalive; /* link status (Yes or No) */
|
|
unsigned char hdlc_streaming; /* Hdlc streaming mode (Y/N) */
|
|
unsigned keepalive_tx_tmr; /* transmit keepalive timer */
|
|
unsigned keepalive_rx_tmr; /* receive keepalive timer */
|
|
unsigned keepalive_err_margin; /* keepalive_error_tolerance */
|
|
unsigned slarp_timer; /* SLARP request timer */
|
|
unsigned char ttl; /* Time To Live for UDP security */
|
|
/* 'interface' is reserved for C++ compiler!! */
|
|
char electrical_interface; /* RS-232/V.35, etc. */
|
|
char clocking; /* external/internal */
|
|
unsigned bps; /* data transfer rate */
|
|
unsigned mtu; /* maximum transmit unit size */
|
|
unsigned char if_down; /* brind down interface when disconnected */
|
|
unsigned char gateway; /* Is this interface a gateway */
|
|
unsigned char true_if_encoding; /* Set the dev->type to true board protocol */
|
|
|
|
unsigned char asy_data_trans; /* async API options */
|
|
unsigned char rts_hs_for_receive; /* async Protocol options */
|
|
unsigned char xon_xoff_hs_for_receive;
|
|
unsigned char xon_xoff_hs_for_transmit;
|
|
unsigned char dcd_hs_for_transmit;
|
|
unsigned char cts_hs_for_transmit;
|
|
unsigned char async_mode;
|
|
unsigned tx_bits_per_char;
|
|
unsigned rx_bits_per_char;
|
|
unsigned stop_bits;
|
|
unsigned char parity;
|
|
unsigned break_timer;
|
|
unsigned inter_char_timer;
|
|
unsigned rx_complete_length;
|
|
unsigned xon_char;
|
|
unsigned xoff_char;
|
|
unsigned char receive_only; /* no transmit buffering (Y/N) */
|
|
|
|
/* x25 media source address, ASCIIZ */
|
|
unsigned char x25_src_addr[WAN_ADDRESS_SZ+1];
|
|
/* pattern match string in -d<string>
|
|
* for accepting calls, ASCIIZ */
|
|
unsigned char accept_dest_addr[WAN_ADDRESS_SZ+1];
|
|
/* pattern match string in -s<string>
|
|
* for accepting calls, ASCIIZ */
|
|
unsigned char accept_src_addr[WAN_ADDRESS_SZ+1];
|
|
/* pattern match string in -u<string>
|
|
* for accepting calls, ASCIIZ */
|
|
unsigned char accept_usr_data[WAN_ADDRESS_SZ+1];
|
|
|
|
unsigned char inarp_rx; /* Receive Inverse ARP requests Y/N */
|
|
unsigned int active_ch;
|
|
unsigned int cfg_active_ch;
|
|
unsigned int max_trace_queue;
|
|
unsigned char sw_dev_name[WAN_IFNAME_SZ+1];
|
|
unsigned char auto_cfg;
|
|
|
|
unsigned char call_logging;
|
|
unsigned char master[WAN_IFNAME_SZ+1];
|
|
unsigned char station;
|
|
unsigned char label[WAN_IF_LABEL_SZ+1];
|
|
|
|
wan_tdmv_if_conf_t tdmv;
|
|
wan_hwec_if_conf_t hwec;
|
|
wan_custom_conf_t ec_conf;
|
|
|
|
/*unsigned char tdmv_echo_off; */ /* TDMV echo disable */
|
|
/*unsigned char tdmv_codec; */ /* TDMV codec */
|
|
unsigned char single_tx_buf; /* Used in low latency applications */
|
|
|
|
unsigned char lip_prot;
|
|
|
|
unsigned char line_mode[USED_BY_FIELD];
|
|
unsigned char interface_number;/* from 0 to 31 */
|
|
|
|
union {
|
|
wan_atm_conf_if_t atm; /* per interface configuration */
|
|
wan_x25_if_conf_t x25;
|
|
wan_lapb_if_conf_t lapb;
|
|
wan_dsp_if_conf_t dsp;
|
|
wan_fr_conf_t fr;
|
|
wan_bitstrm_conf_if_t bitstrm;
|
|
wan_xilinx_conf_if_t aft;
|
|
wan_xdlc_conf_t xdlc;
|
|
/* In LIP layer the same config structure 'wan_sppp_if_conf_t' used
|
|
* for both PPP and CHDLC. */
|
|
wan_sppp_if_conf_t ppp;
|
|
wan_chdlc_conf_t chdlc;
|
|
wan_lip_hdlc_if_conf_t lip_hdlc;
|
|
}u;
|
|
|
|
} wanif_conf_t;
|
|
|
|
|
|
typedef struct {
|
|
unsigned short fr_active;
|
|
unsigned short fr_inactive;
|
|
unsigned short lapb_active;
|
|
unsigned short lapb_inactive;
|
|
unsigned short x25_link_active;
|
|
unsigned short x25_link_inactive;
|
|
unsigned short x25_active;
|
|
unsigned short x25_inactive;
|
|
unsigned short dsp_active;
|
|
unsigned short dsp_inactive;
|
|
}wp_stack_stats_t;
|
|
|
|
/* ALEX_DEBUG*/
|
|
typedef struct wan_debug {
|
|
unsigned long magic; /* for verification */
|
|
unsigned long len;
|
|
unsigned long num;
|
|
unsigned long max_len;
|
|
unsigned long offs;
|
|
int is_more;
|
|
char* data;
|
|
} wan_kernel_msg_t;
|
|
|
|
typedef struct wanpipe_debug_msg_hdr_t {
|
|
int len;
|
|
wan_time_t time;
|
|
} wanpipe_kernel_msg_hdr_t;
|
|
|
|
|
|
#define TRC_INCOMING_FRM 0x00
|
|
#define TRC_OUTGOING_FRM 0x01
|
|
#pragma pack(1)
|
|
typedef struct {
|
|
unsigned char status;
|
|
unsigned char data_avail;
|
|
unsigned short real_length;
|
|
unsigned short time_stamp;
|
|
unsigned char channel;
|
|
wan_time_t sec; /* unsigned long sec; */
|
|
wan_suseconds_t usec; /* unsigned long usec; */
|
|
unsigned char data[0];
|
|
} wan_trace_pkt_t;
|
|
#pragma pack()
|
|
|
|
|
|
#define MODE_OPTION_HDLC "HDLC"
|
|
#define MODE_OPTION_BITSTRM "BitStream"
|
|
#define ISDN_BRI_DCHAN "BRI D-chan"
|
|
|
|
/* Windows note: this macro is used as input to strcmp() ! */
|
|
#define SDLA_DECODE_USEDBY_FIELD(usedby) \
|
|
(usedby == WANPIPE) ? "WANPIPE" : \
|
|
(usedby == API) ? "API" : \
|
|
(usedby == BRIDGE) ? "BRIDGE" : \
|
|
(usedby == BRIDGE_NODE) ? "BRIDGE_NODE" : \
|
|
(usedby == WP_SWITCH) ? "SWITCH" : \
|
|
(usedby == STACK) ? "STACK" : \
|
|
(usedby == TDM_VOICE_API) ? "TDM_VOICE_API" : \
|
|
(usedby == TDM_SPAN_VOICE_API) ? "TDM_SPAN_VOICE_API" : \
|
|
(usedby == TDM_CHAN_VOICE_API) ? "TDM_CHAN_VOICE_API" : \
|
|
(usedby == TDM_VOICE_DCHAN) ? "TDM_VOICE_DCHAN" : \
|
|
(usedby == API_LEGACY) ? "API_LEGACY" : \
|
|
(usedby == ANNEXG) ? "ANNEXG" : "Unknown"
|
|
|
|
#define CARD_WANOPT_DECODE(cardtype) \
|
|
((cardtype == WANOPT_S50X) ? "WANOPT_S50X" : \
|
|
(cardtype == WANOPT_S51X) ? "WANOPT_S51X" : \
|
|
(cardtype == WANOPT_ADSL) ? "WANOPT_ADSL" : \
|
|
(cardtype == WANOPT_AFT) ? "WANOPT_AFT": \
|
|
(cardtype == WANOPT_AFT102) ? "WANOPT_AFT102": \
|
|
(cardtype == WANOPT_AFT104) ? "WANOPT_AFT104": \
|
|
(cardtype == WANOPT_AFT108) ? "WANOPT_AFT108": \
|
|
(cardtype == WANOPT_T116) ? "WANOPT_T116": \
|
|
(cardtype == WANOPT_AFT_ANALOG) ? "WANOPT_AFT_ANALOG": \
|
|
(cardtype == WANOPT_AFT_GSM) ? "WANOPT_AFT_GSM": \
|
|
(cardtype == WANOPT_AFT_56K) ? "WANOPT_AFT_56K": \
|
|
(cardtype == WANOPT_AFT300) ? "WANOPT_AFT300": \
|
|
(cardtype == WANOPT_AFT600) ? "WANOPT_AFT600": \
|
|
(cardtype == WANOPT_AFT610) ? "WANOPT_AFT610": \
|
|
(cardtype == WANOPT_AFT601) ? "WANOPT_AFT601": \
|
|
(cardtype == WANOPT_AFT_ISDN) ? "WANOPT_AFT_ISDN": "Invalid card")
|
|
|
|
|
|
|
|
typedef struct _buffer_settings{
|
|
/* Number of received blocks of data before Receive event is indicated to API caller. */
|
|
unsigned short buffer_multiplier_factor;
|
|
|
|
/* Number of buffers for receiving or transmitting data on an API interface. */
|
|
/* EACH buffer will contain 'buffer_multiplier_factor' blocks of data before
|
|
Receive event is indicated to API caller. */
|
|
unsigned short number_of_buffers_per_api_interface;
|
|
|
|
}buffer_settings_t;
|
|
|
|
#define MIN_BUFFER_MULTIPLIER_FACTOR 1
|
|
#define MAX_BUFFER_MULTIPLIER_FACTOR 7
|
|
|
|
#define MIN_NUMBER_OF_BUFFERS_PER_API_INTERFACE 50
|
|
#define MAX_NUMBER_OF_BUFFERS_PER_API_INTERFACE 100
|
|
|
|
/* Structure used with START_PORT_VOLATILE_CONFIG and START_PORT_REGISTRY_CONFIG
|
|
commands. The commands are defined in sang_api.h. */
|
|
typedef struct {
|
|
unsigned int command_code; /* Configuration Command Code */
|
|
unsigned int operation_status; /* operation completion status*/
|
|
unsigned short port_no; /* Port No */
|
|
|
|
/* Port configuration such T1 or E1... */
|
|
wandev_conf_t wandev_conf;
|
|
|
|
/* Number of interfaces in if_cfg array */
|
|
unsigned int num_of_ifs;
|
|
|
|
/* Per-Interface configuration.
|
|
For AFT card maximum NUM_OF_E1_CHANNELS (32) logic channels.
|
|
Configuration of each logic channel ('active_ch', HDLC or Transparent...) */
|
|
wanif_conf_t if_cfg[NUM_OF_E1_CHANNELS];
|
|
|
|
buffer_settings_t buffer_settings;
|
|
|
|
}wanpipe_port_cfg_t;
|
|
|
|
#define port_cfg_t wanpipe_port_cfg_t
|
|
|
|
/* normal driver operation */
|
|
#define DRV_MODE_NORMAL 0
|
|
/* driver will run in 'AFT firmware update' mode */
|
|
#define DRV_MODE_AFTUP 1
|
|
|
|
/* cpecial id - when driver installed, it is "not configured".
|
|
user should select a protocol.*/
|
|
#define WANCONFIG_NONE 10
|
|
/* special id - for AFT firmware update */
|
|
/*#define WANCONFIG_AFT_FIRMWARE_UPDATE 11*/
|
|
|
|
#if defined(__WINDOWS__)
|
|
/* restore warning behavior to its default value*/
|
|
# pragma warning( default : 4200 ) /* zero-sized array in struct */
|
|
#endif
|
|
|
|
#endif
|