1056 lines
56 KiB
C
1056 lines
56 KiB
C
/*
|
|
****************************************************************************
|
|
* *
|
|
* SS7L2API.H - the 'C' header file for the Sangoma S508/S514 SS7 code API. *
|
|
* *
|
|
****************************************************************************
|
|
*/
|
|
|
|
#ifndef _SDLA_SS7_H
|
|
#define _SDLA_SS7_H
|
|
|
|
|
|
#pragma pack(1)
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
* Constants defining the shared memory control block (mailbox)
|
|
* --------------------------------------------------------------------------*/
|
|
|
|
#define PRI_BASE_ADDR_MB_STRUCT 0xE000 /* the base address of the mailbox structure (primary port) */
|
|
#define NUMBER_MB_RESERVED_BYTES 0x0B /* the number of reserved bytes in the mailbox header area */
|
|
#define SIZEOF_MB_DATA_BFR 2032 /* the size of the actual mailbox data area */
|
|
|
|
/* the control block mailbox structure */
|
|
#if 0
|
|
typedef struct {
|
|
unsigned char opp_flag; /* the opp flag */
|
|
unsigned char command; /* the user command */
|
|
unsigned short buffer_length; /* the data length */
|
|
unsigned char return_code; /* the return code */
|
|
char MB_reserved[NUMBER_MB_RESERVED_BYTES]; /* reserved for later use */
|
|
char data[SIZEOF_MB_DATA_BFR]; /* the data area */
|
|
} SS7_MAILBOX_STRUCT;
|
|
#endif
|
|
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
* Interface commands
|
|
* --------------------------------------------------------------------------*/
|
|
|
|
/* global interface commands */
|
|
#define READ_GLOBAL_EXCEPTION_CONDITION 0x01 /* read a global exception condition from the adapter */
|
|
#define SET_GLOBAL_CONFIGURATION 0x02 /* set the global operational configuration */
|
|
#define READ_GLOBAL_CONFIGURATION 0x03 /* read the global configuration */
|
|
#define READ_GLOBAL_STATISTICS 0x04 /* retrieve the global statistics */
|
|
#define FLUSH_GLOBAL_STATISTICS 0x05 /* flush the global statistics */
|
|
#define SET_MODEM_STATUS 0x06 /* set the status of DTR and/or RTS */
|
|
#define READ_MODEM_STATUS 0x07 /* read the current status of CTS and DCD */
|
|
#undef READ_COMMS_ERROR_STATS
|
|
#define READ_COMMS_ERROR_STATS 0x08 /* read the communication error statistics */
|
|
#undef FLUSH_COMMS_ERROR_STATS
|
|
#define FLUSH_COMMS_ERROR_STATS 0x09 /* flush the communication error statistics */
|
|
#define SET_TRACE_CONFIGURATION 0x0A /* set the line trace configuration */
|
|
#define READ_TRACE_CONFIGURATION 0x0B /* read the line trace configuration */
|
|
#define READ_TRACE_STATISTICS 0x0C /* read the trace statistics */
|
|
#define FLUSH_TRACE_STATISTICS 0x0D /* flush the trace statistics */
|
|
|
|
/* SS7-level interface commands */
|
|
#define READ_SS7_CODE_VERSION 0x20 /* read the SS7 code version */
|
|
#define L2_READ_EXCEPTION_CONDITION 0x21 /* L2 - read an exception condition from the adapter */
|
|
#define L2_SET_CONFIGURATION 0x22 /* L2 - set the operational configuration */
|
|
#define L2_READ_CONFIGURATION 0x23 /* L2 - read the current configuration */
|
|
#define L2_READ_LINK_STATUS 0x24 /* L2 - read the link status */
|
|
#define L2_READ_OPERATIONAL_STATS 0x25 /* L2 - retrieve the operational statistics */
|
|
#define L2_FLUSH_OPERATIONAL_STATS 0x26 /* L2 - flush the operational statistics */
|
|
#define L2_READ_HISTORY_TABLE 0x27 /* L2 - read the history table */
|
|
#define L2_FLUSH_HISTORY_TABLE 0x28 /* L2 - flush the history table */
|
|
#define L2_SET_INTERRUPT_TRIGGERS 0x30 /* L2 - set the application interrupt triggers */
|
|
#define L2_READ_INTERRUPT_TRIGGERS 0x31 /* L2 - read the application interrupt trigger configuration */
|
|
#define L2_POWER_ON 0x40 /* L2 - power on */
|
|
#define L2_EMERGENCY 0x41 /* L2 - emergency */
|
|
#define L2_EMERGENCY_CEASES 0x42 /* L2 - emergency ceases */
|
|
#define L2_START 0x43 /* L2 - start */
|
|
#define L2_STOP 0x44 /* L2 - stop */
|
|
#define L2_RESUME 0x45 /* L2 - resume (ANSI) / local processor recovered (ITU) */
|
|
#define L2_RETRIEVE_BSNT 0x46 /* L2 - retrieve BSNT */
|
|
#define L2_RETRIEVAL_REQ_AND_FSNC 0x47 /* L2 - retrieval request and FSNC */
|
|
#define L2_CLEAR_BUFFERS 0x48 /* L2 - clear buffers (ANSI) / flush buffers (ITU) */
|
|
#define L2_CLEAR_RTB 0x49 /* L2 - clear RTB */
|
|
#define L2_LOCAL_PROCESSOR_OUTAGE 0x4A /* L2 - local processor outage */
|
|
#define L2_CONTINUE 0x4B /* L2 - continue (ITU) */
|
|
#define L2_SET_TX_CONG_CFG 0x50 /* L2 - set the transmission congestion configuration */
|
|
#define L2_READ_TX_CONG_STATUS 0x51 /* L2 - read the transmission congestion status */
|
|
#define L2_SET_RX_CONG_CFG 0x52 /* L2 - set the receive congestion configuration */
|
|
#define L2_READ_RX_CONG_STATUS 0x53 /* L2 - read the receive congestion status */
|
|
#define L2_DEBUG 0x5F /* L2 - debug */
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
* Return codes from interface commands
|
|
* --------------------------------------------------------------------------*/
|
|
|
|
#define OK 0x00 /* the interface command was successful */
|
|
|
|
/* return codes from global interface commands */
|
|
#define NO_GLOBAL_EXCEP_COND_TO_REPORT 0x01 /* there is no global exception condition to report */
|
|
#define LGTH_GLOBAL_CFG_DATA_INVALID 0x01 /* the length of the passed global configuration data is invalid */
|
|
#define LGTH_TRACE_CFG_DATA_INVALID 0x01 /* the length of the passed trace configuration data is invalid */
|
|
#define IRQ_TIMEOUT_VALUE_INVALID 0x02 /* an invalid application IRQ timeout value was selected */
|
|
#define TRACE_CONFIG_INVALID 0x02 /* the passed line trace configuration is invalid */
|
|
#define ADAPTER_OPERATING_FREQ_INVALID 0x03 /* an invalid adapter operating frequency was selected */
|
|
#define TRC_DEAC_TMR_INVALID 0x03 /* the trace deactivation timer is invalid */
|
|
|
|
/* return codes from command READ_GLOBAL_EXCEPTION_CONDITION */
|
|
#define EXCEP_MODEM_STATUS_CHANGE 0x10 /* a modem status change occurred */
|
|
#define EXCEP_TRC_DISABLED 0x11 /* the trace has been disabled */
|
|
#define EXCEP_APP_IRQ_TIMEOUT 0x12 /* an application IRQ timeout has occurred */
|
|
#define EXCEP_FT1_INS_ALARM_COND 0x16 /* an FT1 in-service/alarm condition has occurred */
|
|
|
|
/* return codes from SS7 L2 interface commands */
|
|
#define NO_L2_EXCEP_COND_TO_REPORT 0x21 /* there is no L2 exception condition to report */
|
|
#define L2_STOP_BEFORE_CFG 0x21 /* stop L2 communications before setting the configuration */
|
|
#define L2_INVALID_CONGESTION_STATUS 0x21 /* invalid congestion status selected */
|
|
#define L2_CFG_BEFORE_POWER_ON 0x22 /* perform a L2_SET_CONFIGURATION before L2_POWER_ON */
|
|
#define LGTH_L2_CFG_DATA_INVALID 0x22 /* the length of the passed configuration data is invalid */
|
|
#define LGTH_INT_TRIGGERS_DATA_INVALID 0x22 /* the length of the passed interrupt trigger data is invalid */
|
|
#define LGTH_L2_TX_CONG_DATA_INVALID 0x22 /* the length of the passed Tx congestion data is invalid */
|
|
#define LGTH_L2_RX_CONG_DATA_INVALID 0x22 /* the length of the passed Rx congestion data is invalid */
|
|
#define INVALID_L2_CFG_DATA 0x23 /* the passed SS7 configuration data is invalid */
|
|
#define INVALID_L2_TX_CONG_CFG 0x23 /* the passed Tx congestion configuration data is invalid */
|
|
#define INVALID_L2_RX_CONG_CFG 0x23 /* the passed Rx congestion configuration data is invalid */
|
|
#define L2_INVALID_FSNC 0x23 /* an invalid FSNC value was selected */
|
|
#define INVALID_IRQ_SELECTED 0x23 /* an invalid IRQ was selected in the SET_SS7_INTERRUPT_TRIGGERS */
|
|
#define IRQ_TMR_VALUE_INVALID 0x24 /* an invalid application IRQ timer value was selected */
|
|
#define L2_INVALID_STATE_FOR_CMND 0x25 /* the command is invalid for the current SS7 L2 state */
|
|
#define L2_INVALID_PROTOCOL_FOR_CMND 0x26 /* the command is invalid for the protocol specification */
|
|
#define INVALID_SS7_COMMAND 0x8F /* the defined SS7 interface command is invalid */
|
|
|
|
/* return codes from command L2_READ_EXCEPTION_CONDITION */
|
|
#define L2_EXCEP_IN_SERVICE 0x30 /* the link is 'In service' */
|
|
#define L2_EXCEP_OUT_OF_SERVICE 0x31 /* the link is 'Out of service' */
|
|
#define L2_EXCEP_REMOTE_PROC_OUTAGE 0x32 /* the remote processor has reported an outage */
|
|
#define L2_EXCEP_REMOTE_PROC_RECOVERED 0x33 /* the remote processor has recovered after an outage */
|
|
#define L2_EXCEP_RTB_CLEARED 0x34 /* a L2_CLEAR_RTB command has been completed */
|
|
#define L2_EXCEP_RB_CLEARED 0x35 /* a L2_CLEAR_BUFFERS command has been completed */
|
|
#define L2_EXCEP_BSNT 0x36 /* a L2_RETRIEVE_BSNT command has been completed */
|
|
#define L2_EXCEP_RETRIEVAL_COMPLETE 0x37 /* a L2_RETRIEVAL_REQ_AND_FSNC command has been completed */
|
|
#define L2_EXCEP_CONG_OUTBOUND 0x38 /* outbound congestion status change */
|
|
#define L2_EXCEP_CONG_INBOUND 0x39 /* inbound congestion status change */
|
|
#define L2_EXCEP_CORRECT_SU 0x3A /* a correct SU was received after a link inactivity timeout */
|
|
#define L2_EXCEP_TX_MSU_DISC_LGTH_ERR 0x3E /* an outbound MSU was discarded due to a length error */
|
|
#define L2_EXCEP_RX_MSU_DISC 0x3F /* a received MSU was discarded due to a format error */
|
|
|
|
/* qualifiers for the L2_EXCEP_OUT_OF_SERVICE return code */
|
|
typedef struct { /* the structure used for retrieving the 'out of service' qualifier */
|
|
unsigned char OOS_qualifier; /* the 'out of service' qualifier */
|
|
} L2_EXCEP_OOS_STRUCT;
|
|
|
|
/* L2_EXCEP_OUT_OF_SERVICE qualifiers */
|
|
#define L2_OOS_L3_CMND_STOP 0x10 /* an application level L2_STOP command was issued */
|
|
#define L2_OOS_L3_CMND_PROC_OUT 0x11 /* an application level L2_LOCAL_PROCESSOR_OUTAGE command was issued */
|
|
#define L2_OOS_IAC_ALIGN_NOT_POSS 0x21 /* link failure - alignment not possible (alignment control) */
|
|
#define L2_OOS_TXC_T6_EXP 0x30 /* link failure - T6 expired (transmission control) */
|
|
#define L2_OOS_TXC_T7_EXP 0x31 /* link failure - T7 expired (transmission control) */
|
|
#define L2_OOS_RXC_SIO 0x40 /* link failure - SIO received (reception control) */
|
|
#define L2_OOS_RXC_SIN 0x41 /* link failure - SIN received (reception control) */
|
|
#define L2_OOS_RXC_SIE 0x42 /* link failure - SIE received (reception control) */
|
|
#define L2_OOS_RXC_SIOS 0x43 /* link failure - SIOS received (reception control) */
|
|
#define L2_OOS_RXC_ABNORMAL_BSNR 0x45 /* link failure - abnormal BSNR (reception control) */
|
|
#define L2_OOS_RXC_ABNORMAL_FIBR 0x46 /* link failure - abnormal FIBR (reception control) */
|
|
#define L2_OOS_SUERM_ERR 0x50 /* link failure - SU in error (SUERM) */
|
|
#define L2_OOS_SUERM_INACTIVITY 0x51 /* link failure - inactivity timeout (SUERM) */
|
|
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
* Constants for the SET_GLOBAL_CONFIGURATION/READ_GLOBAL_CONFIGURATION commands
|
|
* --------------------------------------------------------------------------*/
|
|
|
|
/* the global configuration structure */
|
|
typedef struct {
|
|
unsigned short adapter_config_options; /* adapter configuration options */
|
|
unsigned short app_IRQ_timeout; /* application IRQ timeout */
|
|
unsigned long adapter_operating_frequency; /* adapter operating frequency */
|
|
} GLOBAL_CONFIGURATION_STRUCT;
|
|
|
|
/* settings for the 'adapter_config_options' */
|
|
#define ADPTR_CFG_S514 0x0001 /* S514 adapter */
|
|
|
|
/* settings for the 'app_IRQ_timeout' */
|
|
#define MAX_APP_IRQ_TIMEOUT_VALUE 5000 /* the maximum permitted IRQ timeout */
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
* Constants for the READ_GLOBAL_STATISTICS command
|
|
* --------------------------------------------------------------------------*/
|
|
|
|
/* the global statistics structure */
|
|
typedef struct {
|
|
unsigned short app_IRQ_timeout_count; /* application IRQ timeout count */
|
|
} GLOBAL_STATS_STRUCT;
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
* Constants for the READ_COMMS_ERROR_STATS command
|
|
* --------------------------------------------------------------------------*/
|
|
|
|
/* the communications error statistics structure */
|
|
typedef struct {
|
|
unsigned short Rx_overrun_err_count; /* receiver overrun error count */
|
|
unsigned short CRC_err_count; /* receiver CRC error count */
|
|
unsigned short Rx_abort_count; /* abort frames received count */
|
|
unsigned short Rx_dis_pri_bfrs_full_count; /* receiver disabled count */
|
|
unsigned short reserved_1; /* reserved */
|
|
unsigned short reserved_2;
|
|
unsigned short reserved_3;
|
|
unsigned short DCD_state_change_count; /* DCD state change count */
|
|
unsigned short CTS_state_change_count; /* CTS state change count */
|
|
} COMMS_ERROR_STATS_STRUCT;
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
* Constants used for line tracing
|
|
* --------------------------------------------------------------------------*/
|
|
|
|
/* the trace configuration structure (SET_TRACE_CONFIGURATION/READ_TRACE_CONFIGURATION commands) */
|
|
typedef struct {
|
|
unsigned char trace_config; /* trace configuration */
|
|
unsigned short trace_deactivation_timer; /* trace deactivation timer */
|
|
unsigned long ptr_trace_stat_el_cfg_struct; /* a pointer to the line trace element configuration structure */
|
|
} LINE_TRACE_CONFIG_STRUCT;
|
|
|
|
/* 'trace_config' bit settings */
|
|
#define TRACE_INACTIVE 0x00 /* trace is inactive */
|
|
#define TRACE_ACTIVE 0x01 /* trace is active */
|
|
#define TRACE_DELAY_MODE 0x04 /* operate the trace in the delay mode */
|
|
#define TRACE_FISU 0x08 /* trace FISUs */
|
|
#define TRACE_LSSU 0x10 /* trace LSSUs */
|
|
#define TRACE_MSU 0x20 /* trace MSUs */
|
|
|
|
/* permitted range for the 'trace_deactivation_timer' */
|
|
#define MIN_TRC_DEAC_TMR_VAL 0 /* the minimum trace deactivation timer value */
|
|
#define MAX_TRC_DEAC_TMR_VAL 8000 /* the maximum trace deactivation timer value */
|
|
|
|
/* the line trace status element configuration structure */
|
|
typedef struct {
|
|
unsigned short number_trace_status_elements; /* number of line trace elements */
|
|
unsigned long base_addr_trace_status_elements;/* base address of the trace element list */
|
|
unsigned long next_trace_element_to_use; /* pointer to the next trace element to be used */
|
|
unsigned long base_addr_trace_buffer; /* base address of the trace data buffer */
|
|
unsigned long end_addr_trace_buffer; /* end address of the trace data buffer */
|
|
} TRACE_STATUS_EL_CFG_STRUCT;
|
|
|
|
/* the line trace status element structure */
|
|
typedef struct {
|
|
unsigned char opp_flag; /* opp flag */
|
|
unsigned short trace_length; /* trace length */
|
|
unsigned char trace_type; /* trace type */
|
|
unsigned short trace_time_stamp; /* time stamp */
|
|
unsigned short trace_reserved_1; /* reserved for later use */
|
|
unsigned long trace_reserved_2; /* reserved for later use */
|
|
unsigned long ptr_data_bfr; /* pointer to the trace data buffer */
|
|
} TRACE_STATUS_ELEMENT_STRUCT;
|
|
|
|
/* the line trace statistics structure */
|
|
typedef struct {
|
|
unsigned long frames_traced_count; /* number of frames traced */
|
|
unsigned long trc_frms_not_recorded_count; /* number of trace frames discarded */
|
|
unsigned short trc_disabled_internally_count;/* number of times the trace was disabled internally */
|
|
} LINE_TRACE_STATS_STRUCT;
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
* Constants for the L2_SET_CONFIGURATION/L2_READ_CONFIGURATION command
|
|
* --------------------------------------------------------------------------*/
|
|
|
|
/* the SS7 L2 configuration structure */
|
|
typedef struct {
|
|
unsigned long baud_rate; /* the baud rate */
|
|
unsigned short line_config_options; /* line configuration options */
|
|
unsigned short modem_config_options; /* modem configuration options */
|
|
unsigned short modem_status_timer; /* timer for monitoring modem status changes */
|
|
unsigned short L2_API_options; /* L2 API options */
|
|
unsigned short L2_protocol_options; /* L2 protocol options */
|
|
unsigned short L2_protocol_specification; /* L2 protocol specification */
|
|
unsigned short L2_stats_history_options; /* L2 operational statistics options */
|
|
unsigned short max_length_MSU_SIF; /* maximum length of the MSU Signal Information Field */
|
|
unsigned short max_unacked_Tx_MSUs; /* maximum number of unacknowledged outgoing MSUs */
|
|
unsigned short link_inactivity_timer; /* link inactivity timer */
|
|
unsigned short T1_timer; /* T1 'aligned/ready' timer */
|
|
unsigned short T2_timer; /* T2 'not aligned' timer */
|
|
unsigned short T3_timer; /* T3 'aligned' timer */
|
|
unsigned short T4_timer_emergency; /* T4 'emergency proving period' timer */
|
|
unsigned short T4_timer_normal; /* T4 'normal proving period' timer */
|
|
unsigned short T5_timer; /* T5 'sending SIB' timer */
|
|
unsigned short T6_timer; /* T6 'remote congestion' timer */
|
|
unsigned short T7_timer; /* T7 'excessive delay of acknowledgement' timer */
|
|
unsigned short T8_timer; /* T8 'errored interval' timer */
|
|
unsigned short N1; /* maximum sequence number values for retransmission (PCR) */
|
|
unsigned short N2; /* maximum MSU octets for retransmission (PCR) */
|
|
unsigned short Tin; /* normal alignment error rate monitor threshold */
|
|
unsigned short Tie; /* emergency alignment error rate monitor threshold */
|
|
unsigned short SUERM_error_threshold; /* SUERM error rate threshold */
|
|
unsigned short SUERM_number_octets; /* SUERM octet counter */
|
|
unsigned short SUERM_number_SUs; /* SUERM number SUs/SU error */
|
|
unsigned short SIE_interval_timer; /* timer interval between LSSUs (SIE) */
|
|
unsigned short SIO_interval_timer; /* timer interval between LSSUs (SIO) */
|
|
unsigned short SIOS_interval_timer; /* timer interval between LSSUs (SIOS) */
|
|
unsigned short FISU_interval_timer; /* timer interval between FISUs */
|
|
unsigned long ptr_shared_mem_info_struct; /* a pointer to the shared memory area information structure */
|
|
unsigned long ptr_L2_Tx_stat_el_cfg_struct; /* a pointer to the transmit status element configuration structure */
|
|
unsigned long ptr_L2_Rx_stat_el_cfg_struct; /* a pointer to the receive status element configuration structure */
|
|
} L2_CONFIGURATION_STRUCT;
|
|
|
|
/* settings for the 'line_config_options' */
|
|
#define INTERFACE_LEVEL_V35 0x0000 /* V.35 interface level */
|
|
#define INTERFACE_LEVEL_RS232 0x0001 /* RS-232 interface level */
|
|
|
|
/* settings for the 'modem_config_options' */
|
|
#define DONT_RAISE_DTR_RTS_ON_EN_COMMS 0x0001 /* don't automatically raise DTR and RTS when performing an */
|
|
/* ENABLE_SS7_COMMUNICATIONS command */
|
|
#define DONT_REPORT_CHG_IN_MODEM_STAT 0x0002 /* don't report changes in modem status to the application */
|
|
|
|
/* bit settings for the 'L2_protocol_options' */
|
|
#define LSSU_TWO_BYTE_SF 0x0001 /* LSSUs have a 2-byte Status Field */
|
|
#define MODULO_4096 0x0001 /* modulo 4096 */
|
|
#define AUTO_START_WHEN_OUT_OF_SERVICE 0x0010 /* automatically start link when out of service */
|
|
#define AUTO_RECOVERY_AFTR_REM_PROC_REC 0x0020 /* automatic local recovery after remote processor recovery */
|
|
#define LINK_INACTIVITY_TMR_SUERM 0x0040 /* include a link inactivity timer in the SUERM */
|
|
#define PREVENTIVE_CYCLIC_RETRANS 0x1000 /* use preventive cyclic retransmission */
|
|
|
|
/* bit settings for the 'L2_protocol_specification' */
|
|
#define L2_PROTOCOL_ANSI 0x0001 /* L2 protocol is ANSI T1.111.3 */
|
|
#define L2_PROTOCOL_ITU 0x0002 /* L2 protocol is ITU-T Q.703 */
|
|
#define L2_PROTOCOL_NTT 0x0004 /* L2 protocol is NTT (Japan) */
|
|
|
|
/* settings for the 'L2_stats_history_options' */
|
|
#define L2_TX_SIF_BYTE_COUNT_STAT 0x0001 /* record the number of MSU SIF bytes transmitted */
|
|
#define L2_RX_SIF_BYTE_COUNT_STAT 0x0002 /* record the number of MSU SIF bytes received */
|
|
#define L2_TX_THROUGHPUT_STAT 0x0004 /* compute the MSU transmit throughput */
|
|
#define L2_RX_THROUGHPUT_STAT 0x0008 /* compute the MSU frame receive throughput */
|
|
#define L2_HIST_ALL 0x0100 /* include all state transactions in the history table */
|
|
#define L2_HIST_MANUAL_FLUSH 0x0200 /* manually flush the L2 history table */
|
|
|
|
/* permitted minimum and maximum values for setting the SS7 configuration - note that all timer values are in units */
|
|
/* of 1/100th of a second */
|
|
#define MAX_BAUD_RATE 64000 /* maximum baud rate */
|
|
#define MIN_PERMITTED_MODEM_TIMER 0 /* minimum modem status timer */
|
|
#define MAX_PERMITTED_MODEM_TIMER 5000 /* maximum modem status timer */
|
|
#define MAX_LENGTH_MSU_SIF 272 /* maximum length of the MSU Signal Information Field */
|
|
#define MAX_UNACKED_TX_MSUs 126 /* maximum number of unacknowledged outgoing MSUs */
|
|
#define MIN_INACTIVITY_TIMER 1 /* minimum link inactivity timer value */
|
|
#define MAX_INACTIVITY_TIMER 60000 /* maximum link inactivity timer value */
|
|
#define MIN_T1_TIMER 1 /* minimum T1 timer value */
|
|
#define MAX_T1_TIMER 60000 /* maximum T1 timer value */
|
|
#define MIN_T2_TIMER 1 /* minimum T2 timer value */
|
|
#define MAX_T2_TIMER 60000 /* maximum T2 timer value */
|
|
#define MIN_T3_TIMER 1 /* minimum T3 timer value */
|
|
#define MAX_T3_TIMER 60000 /* maximum T3 timer value */
|
|
#define MIN_T4_TIMER 1 /* minimum T4 timer value */
|
|
#define MAX_T4_TIMER 60000 /* maximum T4 timer value */
|
|
#define MIN_T5_TIMER 1 /* minimum T5 timer value */
|
|
#define MAX_T5_TIMER 60000 /* maximum T5 timer value */
|
|
#define MIN_T6_TIMER 1 /* minimum T6 timer value */
|
|
#define MAX_T6_TIMER 60000 /* maximum T6 timer value */
|
|
#define MIN_T7_TIMER 1 /* minimum T7 timer value */
|
|
#define MAX_T7_TIMER 60000 /* maximum T7 timer value */
|
|
#define MIN_T8_TIMER 1 /* minimum T8 timer value */
|
|
#define MAX_T8_TIMER 60000 /* maximum T8 timer value */
|
|
#define MIN_N1 1 /* minimum N1 */
|
|
#define MAX_N1 4095 /* maximum N1 */
|
|
#define MIN_N2 1 /* minimum N2 */
|
|
#define MAX_N2 64000 /* maximum N2 */
|
|
#define MIN_Tin 1 /* minimum normal alignment error rate monitor threshold */
|
|
#define MAX_Tin 1000 /* maximum normal alignment error rate monitor threshold */
|
|
#define MIN_Tie 1 /* minimum emergency alignment error rate monitor threshold */
|
|
#define MAX_Tie 1000 /* maximum emergency alignment error rate monitor threshold */
|
|
#define MIN_SUERM_ERROR_THRESHOLD 1 /* minimum SUERM error rate threshold */
|
|
#define MAX_SUERM_ERROR_THRESHOLD 1024 /* maximum SUERM error rate threshold */
|
|
#define MIN_SUERM_NUMBER_OCTETS 1 /* minimum SUERM octet counter */
|
|
#define MAX_SUERM_NUMBER_OCTETS 1024 /* maximum SUERM octet counter */
|
|
#define MIN_SUERM_NUMBER_SUs 1 /* minimum SUERM number SUs/SU error */
|
|
#define MAX_SUERM_NUMBER_SUs 1024 /* maximum SUERM number SUs/SU error */
|
|
#define MIN_SIE_INTERVAL_TIMER 1 /* minimum timer interval between LSSUs (SIE) */
|
|
#define MAX_SIE_INTERVAL_TIMER 60000 /* maximum timer interval between LSSUs (SIE) */
|
|
#define MIN_SIO_INTERVAL_TIMER 1 /* minimum timer interval between LSSUs (SIO) */
|
|
#define MAX_SIO_INTERVAL_TIMER 60000 /* maximum timer interval between LSSUs (SIO) */
|
|
#define MIN_SIOS_INTERVAL_TIMER 1 /* minimum timer interval between LSSUs (SIOS) */
|
|
#define MAX_SIOS_INTERVAL_TIMER 60000 /* maximum timer interval between LSSUs (SIOS) */
|
|
#define MIN_FISU_INTERVAL_TIMER 1 /* minimum timer interval between FISUs */
|
|
#define MAX_FISU_INTERVAL_TIMER 60000 /* maximum timer interval between FISUs */
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
* Constants for the L2_READ_LINK_STATUS command
|
|
* --------------------------------------------------------------------------*/
|
|
|
|
/* the SS7 status structure */
|
|
typedef struct {
|
|
unsigned short L2_link_status; /* L2 link status */
|
|
unsigned short no_Tx_MSU_bfrs_occupied; /* number of Tx MSU buffers occupied */
|
|
unsigned short no_Rx_MSUs_avail_for_L3; /* number of MSUs available for the application */
|
|
unsigned char receiver_status; /* receiver status (enabled/disabled) */
|
|
} L2_LINK_STATUS_STRUCT;
|
|
|
|
/* settings for 'L2_link_status' variable */
|
|
#define L2_LINK_STAT_POWER_OFF 0x0001 /* power off */
|
|
#define L2_LINK_STAT_OUT_OF_SERVICE 0x0002 /* out of service */
|
|
#define L2_LINK_STAT_INIT_ALIGN 0x0004 /* initial alignment */
|
|
#define L2_LINK_STAT_ALIGNED_READY 0x0008 /* aligned ready */
|
|
#define L2_LINK_STAT_ALIGNED_NOT_READY 0x0010 /* aligned/not ready */
|
|
#define L2_LINK_STAT_IN_SERVICE 0x0020 /* in service */
|
|
#define L2_LINK_STAT_PROCESSOR_OUTAGE 0x0040 /* processor outage */
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
* Constants for the L2_READ_OPERATIONAL_STATS command
|
|
* --------------------------------------------------------------------------*/
|
|
|
|
/* the L2 operational statistics structure */
|
|
typedef struct {
|
|
|
|
/* MSU transmission statistics */
|
|
unsigned long MSU_Tx_ack_count; /* number of MSUs transmitted and acknowledged */
|
|
unsigned long SIF_bytes_Tx_ack_count; /* number of SIF bytes transmitted and acknowledged */
|
|
unsigned long MSU_re_Tx_count; /* number of MSUs re-transmitted */
|
|
unsigned long SIF_bytes_re_Tx_count; /* number of SIF bytes re-transmitted */
|
|
unsigned long MSU_Tx_throughput; /* transmit throughput */
|
|
unsigned long no_hs_for_MSU_Tx_thruput_comp; /* 1/100th second time used for the Tx throughput computation */
|
|
unsigned short Tx_MSU_disc_lgth_err_count; /* number of outgoing MSUs discarded (length error) */
|
|
unsigned long reserved_MSU_Tx_stat1; /* reserved for later use */
|
|
unsigned long reserved_MSU_Tx_stat2; /* reserved for later use */
|
|
unsigned long reserved_MSU_Tx_stat3; /* reserved for later use */
|
|
|
|
/* MSU reception statistics */
|
|
unsigned long MSU_Rx_count; /* number of MSUs received */
|
|
unsigned long SIF_bytes_Rx_count; /* number of SIF bytes received */
|
|
unsigned long MSU_Rx_throughput; /* receive throughput */
|
|
unsigned long no_hs_for_MSU_Rx_thruput_comp; /* 1/100th second time used for the Rx throughput computation */
|
|
unsigned short Rx_MSU_disc_short_count; /* received MSUs discarded (too short) */
|
|
unsigned short Rx_MSU_disc_long_count; /* received MSUs discarded (too long) */
|
|
unsigned short Rx_MSU_disc_bad_LI_count; /* received MSUs discarded (bad LI) */
|
|
unsigned long Rx_MSU_disc_cong_count; /* received MSUs discarded (congestion) */
|
|
unsigned long reserved_MSU_Rx_stat1; /* reserved for later use */
|
|
unsigned long reserved_MSU_Rx_stat2; /* reserved for later use */
|
|
unsigned long reserved_MSU_Rx_stat3; /* reserved for later use */
|
|
|
|
/* General SU transmission/reception statistics */
|
|
unsigned long SU_Tx_count; /* number of SUs transmitted */
|
|
unsigned long SU_Rx_count; /* number of SUs received */
|
|
unsigned long LSSU_Tx_count; /* number of LSSUs transmitted */
|
|
unsigned long LSSU_Rx_count; /* number of LSSUs received */
|
|
unsigned long FISU_Tx_count; /* number of FISUs transmitted */
|
|
unsigned long FISU_Rx_count; /* number of FISUs received */
|
|
unsigned long reserved_SU_stat1; /* reserved for later use */
|
|
unsigned long reserved_SU_stat2; /* reserved for later use */
|
|
|
|
/* Incoming SUs with a format error statistics */
|
|
unsigned short Rx_SU_disc_short_count; /* SUs discarded - too short */
|
|
unsigned short Rx_SU_disc_long_count; /* SUs discarded - too long */
|
|
unsigned short Rx_LSSU_disc_short_count; /* LSSUs discarded - too short */
|
|
unsigned short Rx_LSSU_disc_long_count; /* LSSUs discarded - too long */
|
|
unsigned short Rx_LSSU_disc_invalid_SF_count; /* LSSUs discarded - invalid Status Field */
|
|
unsigned short Rx_FISU_disc_short_count; /* FISUs discarded - too short */
|
|
unsigned short Rx_FISU_disc_long_count; /* FISUs discarded - too long */
|
|
unsigned long reserved_SU_format_err1; /* reserved for later use */
|
|
unsigned long reserved_SU_format_err2; /* reserved for later use */
|
|
unsigned long reserved_SU_format_err3; /* reserved for later use */
|
|
unsigned long reserved_SU_format_err4; /* reserved for later use */
|
|
|
|
/* Incoming frames discarded statistics */
|
|
unsigned long Rx_SU_disc_RC_idle_count; /* SUs discarded - Reception Control in 'idle' state */
|
|
unsigned long Rx_SU_disc_MSU_FISU_NA_count; /* SUs discarded - MSU/FISU not accepted */
|
|
|
|
/* SS7 timeout/retry statistics */
|
|
unsigned long To_retry_reserved_stat1; /* reserved for later use */
|
|
unsigned long To_retry_reserved_stat2; /* reserved for later use */
|
|
unsigned long To_retry_reserved_stat3; /* reserved for later use */
|
|
|
|
/* link state statistics */
|
|
unsigned short link_in_service_count; /* number of times that the link went 'in service' */
|
|
unsigned short link_start_fail_T1_exp_count; /* link 'start' failure (T1 expired) count */
|
|
unsigned short align_fail_T2_exp_count; /* link alignment failure (T2 expired) count */
|
|
unsigned short align_fail_T3_exp_count; /* link alignment failure (T3 expired) count */
|
|
unsigned short link_fail_abnrm_BSNR_Rx_count; /* link failure (abnormal BSNR received) count */
|
|
unsigned short link_fail_abnrm_FIBR_Rx_count; /* link failure (abnormal FIBR received) count */
|
|
unsigned short link_fail_T6_exp_count; /* link failure (T6 expired) count */
|
|
unsigned short link_fail_T7_exp_count; /* link failure (T6 expired) count */
|
|
unsigned short link_fail_SUERM_count; /* link failure (SUERM) count */
|
|
unsigned short link_fail_EIM_count; /* link failure (EIM) count */
|
|
unsigned short link_fail_inactivity_count; /* link failure (inactivity timeout) count */
|
|
unsigned short link_out_of_serv_SIO_Rx_count; /* link 'out of service' due to reception of SIO */
|
|
unsigned short link_out_of_serv_SIN_Rx_count; /* link 'out of service' due to reception of SIN */
|
|
unsigned short link_out_of_serv_SIE_Rx_count; /* link 'out of service' due to reception of SIE */
|
|
unsigned short link_out_of_serv_SIOS_Rx_count; /* link 'out of service' due to reception of SIOS */
|
|
unsigned long link_status_reserved_stat1; /* reserved for later use */
|
|
unsigned long link_status_reserved_stat2; /* reserved for later use */
|
|
|
|
/* processor outage statistics */
|
|
unsigned short loc_proc_out_count; /* local processor outage count */
|
|
unsigned short rem_proc_out_count; /* rem processor outage count */
|
|
|
|
/* miscellaneous statistics */
|
|
unsigned long NACK_Tx_count; /* number of negative acknowledgements transmitted */
|
|
unsigned long NACK_Rx_count; /* number of negative acknowledgements received */
|
|
unsigned long abnrm_BSNR_Rx_count; /* 'abnormal BSNR received' count */
|
|
unsigned long abnrm_FIBR_Rx_count; /* 'abnormal FIBR received' count */
|
|
unsigned long abnrm_FSNR_Rx_count; /* 'abnormal FSNR received' count */
|
|
unsigned long reserved_misc_stat1; /* reserved for later use */
|
|
unsigned long reserved_misc_stat2; /* reserved for later use */
|
|
unsigned long reserved_misc_stat3; /* reserved for later use */
|
|
unsigned long reserved_misc_stat4; /* reserved for later use */
|
|
|
|
/* DAEDR statistics */
|
|
unsigned long DAEDR_OCM_7_consec_1s; /* DAEDR - number of octet counting mode conditions (7 consecutive 1s) */
|
|
unsigned long DAEDR_OCM_Nmax; /* DAEDR - number of octet counting mode conditions (Nmax + 1) */
|
|
|
|
/* congestion statistics */
|
|
unsigned long start_outbound_cong_count; /* start of outbound congestion */
|
|
unsigned long start_inbound_cong_disc_count; /* start of inbound 'congestion discard' */
|
|
unsigned long start_inbound_cong_acc_count; /* start of inbound 'congestion accept' */
|
|
unsigned long start_auto_inbound_cong_count; /* start of inbound congestion (instigated internally) */
|
|
|
|
} L2_OPERATIONAL_STATS_STRUCT;
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
* Constants for the L2_READ_HISTORY_TABLE command
|
|
* --------------------------------------------------------------------------*/
|
|
|
|
/* the L2 operational statistics structure */
|
|
|
|
typedef struct {
|
|
unsigned char function;
|
|
unsigned short action;
|
|
unsigned short status_before_action;
|
|
unsigned char LSSU_SF;
|
|
unsigned short time;
|
|
} L2_HISTORY_STRUCT;
|
|
|
|
/* L2 history 'function' definitions */
|
|
#define L2_HISTORY_LSC 0x00 /* Link State Control */
|
|
#define L2_HISTORY_IAC 0x01 /* Initial Alignment Control */
|
|
#define L2_HISTORY_POC 0x02 /* Processor Outage Control */
|
|
#define L2_HISTORY_DAEDR 0x03 /* Delimination, Alignment and Error Detection (Receiving) */
|
|
#define L2_HISTORY_DAEDT 0x04 /* Delimination, Alignment and Error Detection (Transmitting) */
|
|
#define L2_HISTORY_TXC 0x05 /* Transmission Control */
|
|
#define L2_HISTORY_RXC 0x06 /* Reception Control */
|
|
#define L2_HISTORY_AERM 0x07 /* Alignment Error Rate Monitor */
|
|
#define L2_HISTORY_SUERM 0x08 /* Signal Unit Error Rate Monitor */
|
|
#define L2_HISTORY_CC 0x09 /* Congestion Control */
|
|
#define L2_HISTORY_EIM 0x0A /* Errored Interval Monitor */
|
|
|
|
/* L2 history 'action' definitions (Link State Control) */
|
|
#define LSC_ACT_POWER_ON_RETRIEVE_BSNT 0x0001 /* power on / retrieve BSNT */
|
|
#define LSC_ACT_START_RTB_CLEARED 0x0002 /* start / RTB cleared */
|
|
#define LSC_ACT_EMERGENCY_CONTINUE 0x0004 /* emergency / continue (ITU) */
|
|
#define LSC_ACT_EMERG_CEASES 0x0008 /* emergency ceases */
|
|
#define LSC_ACT_LOC_PROC_OUT 0x0010 /* local processor outage */
|
|
#define LSC_ACT_RESUME 0x0020 /* resume */
|
|
#define LSC_ACT_CLEAR_BFRS 0x0040 /* clear buffers */
|
|
#define LSC_ACT_ALIGN_CPLT_RET_REQ_FSNC 0x0080 /* alignment complete / retrieval request and FSNC */
|
|
#define LSC_ACT_STOP 0x0100 /* stop */
|
|
#define LSC_ACT_LINK_FAIL 0x0200 /* link failure */
|
|
#define LSC_ACT_ALIGN_NOT_POSS_CLR_RTB 0x0400 /* aligment not possible / clear RTB */
|
|
#define LSC_ACT_FISU_MSU_RX 0x0800 /* FISU/MSU received */
|
|
#define LSC_ACT_SIPO 0x1000 /* SIPO */
|
|
#define LSC_ACT_SIO_SIOS 0x2000 /* SIO, SIOS */
|
|
#define LSC_ACT_T1_EXPIRED_NO_PROC_OUT 0x4000 /* timer T1 expired / no processor outage (ITU) */
|
|
#define LSC_ACT_SIO_SIN_SIE_SIOS 0x8000 /* SIO, SIN, SIE, SIOS */
|
|
|
|
/* L2 history 'status_before_action' definitions (Link State Control) */
|
|
#define LSC_STAT_POWER_OFF 0x0001 /* power off */
|
|
#define LSC_STAT_OUT_OF_SERVICE 0x0002 /* out of service */
|
|
#define LSC_STAT_INIT_ALIGN 0x0004 /* initial alignment */
|
|
#define LSC_STAT_ALIGNED_READY 0x0008 /* aligned ready */
|
|
#define LSC_STAT_ALIGNED_NOT_READY 0x0010 /* aligned/not ready */
|
|
#define LSC_STAT_IN_SERVICE 0x0020 /* in service */
|
|
#define LSC_STAT_PROCESSOR_OUTAGE 0x0040 /* processor outage */
|
|
#define LSC_STAT_EMERGENCY 0x0080 /* emergency */
|
|
#define LSC_STAT_LOC_PROC_OUT 0x0100 /* local processor outage */
|
|
#define LSC_STAT_REM_PROC_OUT 0x0200 /* remote processor outage (ANSI) */
|
|
#define LSC_STAT_PROC_OUT 0x0400 /* processor outage (ITU) */
|
|
#define LSC_STAT_T1_RUNNING 0x0800 /* timer T1 running */
|
|
#define LSC_STAT_LVL_3_IND_RX 0x1000 /* Level 3 indication received */
|
|
|
|
/* L2 history 'action' definitions (Initial Alignment Control) */
|
|
#define IAC_ACT_EMERGENCY 0x0001 /* emergency */
|
|
#define IAC_ACT_START 0x0002 /* start */
|
|
#define IAC_ACT_SIO_SIN 0x0004 /* SIO, SIN */
|
|
#define IAC_ACT_SIE 0x0008 /* SIE */
|
|
#define IAC_ACT_STOP 0x0010 /* stop */
|
|
#define IAC_ACT_T2_EXPIRED 0x0020 /* timer T2 expired */
|
|
#define IAC_ACT_SIN 0x0040 /* SIN */
|
|
#define IAC_ACT_T3_EXPIRED 0x0080 /* timer T3 expired */
|
|
#define IAC_ACT_SIOS 0x0100 /* SIOS */
|
|
#define IAC_ACT_CORRECT_SU 0x0200 /* correct SU */
|
|
#define IAC_ACT_T4_EXPIRED 0x0400 /* timer T4 expired */
|
|
#define IAC_ACT_ABRT_PRV 0x0800 /* abort proving */
|
|
#define IAC_ACT_SIO 0x1000 /* SIO */
|
|
|
|
/* L2 history 'status_before_action' definitions (Initial Alignment Control) */
|
|
#define IAC_STAT_IDLE 0x0001 /* idle */
|
|
#define IAC_STAT_NOT_ALIGNED 0x0002 /* not aligned */
|
|
#define IAC_STAT_ALIGNED 0x0004 /* aligned */
|
|
#define IAC_STAT_PROVING 0x0008 /* proving */
|
|
#define IAC_STAT_FURTHER_PRV 0x0010 /* further proving */
|
|
#define IAC_STAT_EMERGENCY 0x0020 /* emergency */
|
|
#define IAC_STAT_T2_RUNNING 0x0040 /* timer T2 running */
|
|
#define IAC_STAT_T3_RUNNING 0x0080 /* timer T3 running */
|
|
#define IAC_STAT_T4_RUNNING 0x0100 /* timer T4 running */
|
|
|
|
/* L2 history 'action' definitions (Processor Outage Control) */
|
|
#define POC_ACT_LOC_PROC_OUT 0x0001 /* local processor outage */
|
|
#define POC_ACT_REM_PROC_OUT 0x0002 /* remote processor outage */
|
|
#define POC_ACT_STOP 0x0004 /* stop */
|
|
#define POC_ACT_LOC_PROC_RECOVERED 0x0008 /* local processor recovered */
|
|
#define POC_ACT_REM_PROC_RECOVERED 0x0010 /* remote processor recovered */
|
|
|
|
/* L2 history 'status_before_action' definitions (Processor Outage Control) */
|
|
#define POC_STAT_IDLE 0x0001 /* idle */
|
|
#define POC_STAT_LOC_PROC_OUT 0x0002 /* local processor outage */
|
|
#define POC_STAT_REM_PROC_OUT 0x0004 /* remote processor outage */
|
|
#define POC_STAT_BOTH_PROC_OUT 0x0008 /* both processors out */
|
|
|
|
/* L2 history 'action' definitions (Delimination, Alignment and Error Detection - Receiving) */
|
|
#define DAEDR_ACT_START 0x0001 /* start */
|
|
#define DAEDR_ACT_7_CONSEC_ONES 0x0002 /* 7 consecutive one's */
|
|
#define DAEDR_ACT_Nmax_PLS_1_OCT_NO_FLG 0x0004 /* Nmax + 1 octets without flags */
|
|
#define DAEDR_ACT_16_OCTETS 0x0008 /* 16 octets */
|
|
#define DAEDR_ACT_BITS_RX 0x0010 /* bits received */
|
|
|
|
/* L2 history 'status_before_action' definitions (Delimination, Alignment and Error Detection - Receiving) */
|
|
#define DAEDR_STAT_IDLE 0x0001 /* idle */
|
|
#define DAEDR_STAT_IN_SERVICE 0x0002 /* in service */
|
|
#define DAEDR_STAT_OCTET_COUNT_MODE 0x0004 /* octet counting mode */
|
|
|
|
/* L2 history 'action' definitions (Delimination, Alignment and Error Detection - Transmitting) */
|
|
#define DAEDT_ACT_START 0x0001 /* start */
|
|
#define DAEDT_ACT_SIGNAL_UNIT 0x0002 /* signal unit */
|
|
|
|
/* L2 history 'status_before_action' definitions (Delimination, Alignment and Error Detection - Transmitting) */
|
|
#define DAEDT_STAT_IDLE 0x0001 /* idle */
|
|
#define DAEDT_STAT_IN_SERVICE 0x0002 /* in service */
|
|
|
|
/* L2 history 'action' definitions (Transmission Control) */
|
|
#define TXC_ACT_START 0x0001 /* start */
|
|
#define TXC_ACT_T6_EXPIRED 0x0002 /* timer T6 expired */
|
|
#define TXC_ACT_T7_EXPIRED 0x0004 /* timer T7 expired */
|
|
#define TXC_ACT_TX_REQ 0x0008 /* transmission request */
|
|
#define TXC_ACT_CLEAR_TB 0x0010 /* clear TB */
|
|
#define TXC_ACT_CLEAR_RTB 0x0020 /* clear RTB */
|
|
#define TXC_ACT_SEND_FISU 0x0040 /* send FISU */
|
|
#define TXC_ACT_SEND_MSU 0x0080 /* send MSU */
|
|
#define TXC_ACT_MSG_FOR_TX 0x0100 /* message for transmission */
|
|
#define TXC_ACT_RET_REQ_AND_FSNC 0x0200 /* retrieval request and FSNC */
|
|
#define TXC_ACT_SEND_LSSU 0x0400 /* send LSSU (includes 'send SIB', 'send SIOS,SIPO' and */
|
|
/* 'send SIO, SIN, SIE') */
|
|
#define TXC_ACT_FSNX_VALUE 0x0800 /* FSNX value */
|
|
#define TXC_ACT_NACK_TO_BE_TX 0x1000 /* NACK to be sent */
|
|
#define TXC_ACT_BSNR_AND_BIBR 0x2000 /* BSNR and BIBR */
|
|
#define TXC_ACT_SIB_RX 0x4000 /* SIB received */
|
|
#define TXC_ACT_FLUSH_BFRS 0x8000 /* flush buffers (ITU) */
|
|
|
|
/* L2 history 'status_before_action' definitions (Transmission Control) */
|
|
#define TXC_STAT_IDLE 0x0001 /* idle */
|
|
#define TXC_STAT_IN_SERVICE 0x0002 /* in service */
|
|
#define TXC_STAT_RTB_FULL 0x0004 /* RTB full */
|
|
#define TXC_STAT_LSSU_AVAIL 0x0008 /* LSSU available */
|
|
#define TXC_STAT_MSU_INHIB 0x0010 /* MSU inhibited */
|
|
#define TXC_STAT_CLEAR_RTB 0x0020 /* clear RTB */
|
|
#define TXC_STAT_SIB_RX 0x0040 /* SIB received */
|
|
#define TXC_STAT_PCR_FORCED_RE_TX 0x0080 /* forced retransmission (PCR) */
|
|
#define TXC_STAT_T6_RUNNING 0x0100 /* timer T6 running */
|
|
#define TXC_STAT_T7_RUNNING 0x0200 /* timer T7 running */
|
|
|
|
/* L2 history 'action' definitions (Reception Control) */
|
|
#define RXC_ACT_START 0x0001 /* start */
|
|
#define RXC_ACT_RETRIEVE_BSNT 0x0002 /* retrieve BSNT */
|
|
#define RXC_ACT_FSNT_VALUE 0x0004 /* FSNT value */
|
|
#define RXC_ACT_SIGNAL_UNIT 0x0008 /* signal unit */
|
|
#define RXC_ACT_REJ_MSU_FISU 0x0010 /* reject MSU/FISU */
|
|
#define RXC_ACT_ACCEPT_MSU_FISU 0x0020 /* accept MSU/FISU */
|
|
#define RXC_ACT_ALIGN_FSNX 0x0040 /* align FSNX / retrieve FSNX (ITU) */
|
|
#define RXC_ACT_CLEAR_RB 0x0080 /* clear RB */
|
|
#define RXC_ACT_STOP 0x0100 /* stop */
|
|
#define RXC_ACT_CONGESTION_DISC 0x0200 /* congestion discard */
|
|
#define RXC_ACT_CONGESTION_ACC 0x0400 /* congestion accept */
|
|
#define RXC_ACT_NO_CONGESTION 0x0800 /* no congestion */
|
|
#define RXC_ACT_SIGNAL_UNIT_LSSU 0x1000 /* signal unit (LSSU) */
|
|
|
|
/* L2 history 'status_before_action' definitions (Reception Control) */
|
|
#define RXC_STAT_IDLE 0x0001 /* idle */
|
|
#define RXC_STAT_IN_SERVICE 0x0002 /* in service */
|
|
#define RXC_STAT_MSU_FISU_ACCEPTED 0x0004 /* MSU/FISU accepted */
|
|
#define RXC_STAT_ABNORMAL_BSNR 0x0008 /* abnormal BSNR */
|
|
#define RXC_STAT_ABNORMAL_FIBR 0x0010 /* abnormal FIBR */
|
|
#define RXC_STAT_CONGESTION_DISC 0x0020 /* congestion discard */
|
|
#define RXC_STAT_CONGESTION_ACC 0x0040 /* congestion accept */
|
|
|
|
/* L2 history 'action' definitions (Alignment Error Rate Monitor) */
|
|
#define AERM_ACT_SET_Ti_TO_Tin 0x0001 /* set Ti to Tin */
|
|
#define AERM_ACT_START 0x0002 /* start */
|
|
#define AERM_ACT_SET_Ti_TO_Tie 0x0004 /* set Ti to Tie */
|
|
#define AERM_ACT_STOP 0x0008 /* stop */
|
|
#define AERM_ACT_SU_IN_ERROR 0x0010 /* SU in error */
|
|
|
|
/* L2 history 'status_before_action' definitions (Alignment Error Rate Monitor) */
|
|
#define AERM_STAT_IDLE 0x0001 /* idle */
|
|
#define AERM_STAT_MONITORING 0x0002 /* monitoring */
|
|
|
|
/* L2 history 'action' definitions (Signal Unit Error Rate Monitor) */
|
|
#define SUERM_ACT_START 0x0001 /* start */
|
|
#define SUERM_ACT_STOP 0x0002 /* stop */
|
|
#define SUERM_ACT_SU_IN_ERROR 0x0004 /* SU in error */
|
|
#define SUERM_ACT_CORRECT_SU 0x0008 /* correct SU */
|
|
|
|
/* L2 history 'status_before_action' definitions (Signal Unit Error Rate Monitor) */
|
|
#define SUERM_STAT_IDLE 0x0001 /* idle */
|
|
#define SUERM_STAT_IN_SERVICE 0x0002 /* in service */
|
|
|
|
/* L2 history 'action' definitions (Congestion Control) */
|
|
#define CC_ACT_BUSY 0x0001 /* busy */
|
|
#define CC_ACT_NORMAL 0x0002 /* normal */
|
|
#define CC_ACT_STOP 0x0004 /* stop */
|
|
#define CC_ACT_T5_EXPIRED 0x0008 /* timer T5 expired */
|
|
|
|
/* L2 history 'status_before_action' definitions (Congestion Control) */
|
|
#define CC_STAT_IDLE 0x0001 /* idle */
|
|
#define CC_STAT_LVL_2 0x0002 /* level 2 congestion */
|
|
#define CC_STAT_T5_RUNNING 0x0004 /* timer T5 running */
|
|
|
|
/* L2 history 'action' definitions (Errored Interval Monitor) */
|
|
#define EIM_ACT_START 0x0001 /* start */
|
|
#define EIM_ACT_STOP 0x0002 /* stop */
|
|
#define EIM_ACT_T8_EXPIRED 0x0004 /* timer T8 expired */
|
|
#define EIM_ACT_CORRECT_SU 0x0008 /* correct SU */
|
|
#define EIM_ACT_SU_IN_ERROR 0x0010 /* SU in error */
|
|
|
|
/* L2 history 'status_before_action' definitions (Errored Interval Monitor) */
|
|
#define EIM_STAT_IDLE 0x0001 /* idle */
|
|
#define EIM_STAT_MONITORING 0x0002 /* monitoring */
|
|
#define EIM_STAT_INTERVAL_ERROR 0x0004 /* interval error */
|
|
#define EIM_STAT_SU_RECEIVED 0x0008 /* SU received */
|
|
#define EIM_STAT_T8_RUNNING 0x0010 /* timer T8 running */
|
|
|
|
/* L2 history 'LSSU_SF' definitions (LSSU Status Field) */
|
|
#define LSSU_SIO 0x00 /* status indication "O" (out of alignment) */
|
|
#define LSSU_SIN 0x01 /* status indication "N" (normal alignment) */
|
|
#define LSSU_SIE 0x02 /* status indication "E" (emergency alignment) */
|
|
#define LSSU_SIOS 0x03 /* status indication "OS" (out of service) */
|
|
#define LSSU_SIPO 0x04 /* status indication "PO" (processor outage) */
|
|
#define LSSU_SIB 0x05 /* status indication "B" (busy) */
|
|
#define NO_LSSU 0xFF /* no LSSU transmitted or received */
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
* Constants for the L2_RETRIEVE_BSNT command
|
|
* --------------------------------------------------------------------------*/
|
|
|
|
/* the structure used for retrieving the BSNT value */
|
|
typedef struct {
|
|
unsigned short BSNT; /* the retrieved BSNT value */
|
|
} L2_RETRIEVE_BSNT_STRUCT;
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
* Constants for the L2_RETRIEVAL_REQ_AND_FSNC command
|
|
* --------------------------------------------------------------------------*/
|
|
|
|
/* the structure used for handling the L2_RETRIEVAL_REQ_AND_FSNC command and the L2_EXCEP_RETRIEVAL_COMPLETE */
|
|
/* exception condition */
|
|
typedef struct {
|
|
unsigned short FSNC; /* the FSNC value to be used in buffer retrieval */
|
|
unsigned short number_MSUs; /* number of MSU buffers to be retrieved */
|
|
unsigned long ptr_first_MSU_bfr; /* pointer to the first MSU buffer to be retrieved */
|
|
} L2_RETRIEVAL_STRUCT;
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
* Constants for the L2_SET_TX_CONG_CFG command
|
|
* --------------------------------------------------------------------------*/
|
|
|
|
typedef struct {
|
|
unsigned short Tx_cong_config; /* transmission congestion configuration */
|
|
unsigned short Tx_cong_onset_1; /* transmit congestion onset threshold #1 */
|
|
unsigned short Tx_cong_abatement_1; /* transmit congestion abatement threshold #1 */
|
|
unsigned short Tx_cong_discard_1; /* transmit congestion discard threshold #1 */
|
|
unsigned short Tx_cong_onset_2; /* transmit congestion onset threshold #2 */
|
|
unsigned short Tx_cong_abatement_2; /* transmit congestion abatement threshold #2 */
|
|
unsigned short Tx_cong_discard_2; /* transmit congestion discard threshold #2 */
|
|
unsigned short Tx_cong_onset_3; /* transmit congestion onset threshold #3 */
|
|
unsigned short Tx_cong_abatement_3; /* transmit congestion abatement threshold #3 */
|
|
unsigned short Tx_cong_discard_3; /* transmit congestion discard threshold #3 */
|
|
} L2_SET_TX_CONG_CFG_STRUCT;
|
|
|
|
/* 'Tx_cong_config' settings */
|
|
#define NO_TX_NEW_MSUs_SIB_RX 0x0001 /* no new MSUs are transmitted on SIB reception */
|
|
#define L2_EXCEP_TX_CONG_THRESHOLDS 0x0010 /* cause an L2 exception condition on congestion thresholds */
|
|
#define L2_EXCEP_TX_CONG_SIB_RX 0x0020 /* cause an L2 exception condition on reception of a SIB LSSU */
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
* Constants for the L2_READ_TX_CONG_STATUS command
|
|
* --------------------------------------------------------------------------*/
|
|
|
|
typedef struct {
|
|
unsigned short no_MSU_Tx_bfrs_configured; /* the number of MSU transmit buffers configured */
|
|
unsigned short no_MSU_Tx_bfrs_occupied; /* the number of MSU transmit buffers occupied */
|
|
unsigned char Tx_cong_status; /* transmission congestion status */
|
|
unsigned char Tx_discard_status; /* transmission discard status */
|
|
unsigned char SIB_Rx_status; /* LSSU SIB reception status */
|
|
} L2_READ_TX_CONG_STATUS_STRUCT;
|
|
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
* Constants for the L2_SET_RX_CONG_CFG command
|
|
* --------------------------------------------------------------------------*/
|
|
|
|
typedef struct {
|
|
unsigned short Rx_cong_config; /* reception congestion configuration */
|
|
unsigned short Rx_cong_bfr_count; /* the number of MSU receive buffers occupied to trigger congestion */
|
|
} L2_SET_RX_CONG_CFG_STRUCT;
|
|
|
|
/* 'Rx_cong_config' bit settings */
|
|
#define L2_RX_CONGESTION_ACCEPT 0x0001 /* congestion accept */
|
|
#define L2_RX_CONGESTION_DISCARD 0x0002 /* congestion discard */
|
|
#define L2_AUTO_RX_FLOW_CTRL 0x0010 /* automatic receive flow control */
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
* Constants for the L2_READ_RX_CONG_STATUS command
|
|
* --------------------------------------------------------------------------*/
|
|
|
|
typedef struct {
|
|
unsigned short no_MSU_Rx_bfrs_configured; /* the number of MSU receive buffers configured */
|
|
unsigned short no_MSU_Rx_bfrs_occupied; /* the number of MSU receive buffers occupied */
|
|
unsigned char Rx_cong_status; /* reception congestion status */
|
|
} L2_READ_RX_CONG_STATUS_STRUCT;
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
* Constants for using application interrupts
|
|
* --------------------------------------------------------------------------*/
|
|
|
|
/* the structure used for the L2_SET_INTERRUPT_TRIGGERS/L2_READ_INTERRUPT_TRIGGERS command */
|
|
typedef struct {
|
|
unsigned char L2_interrupt_triggers; /* SS7 L2 interrupt trigger configuration */
|
|
unsigned char IRQ; /* IRQ to be used */
|
|
unsigned short interrupt_timer; /* interrupt timer */
|
|
unsigned short misc_interrupt_bits; /* miscellaneous interrupt bits */
|
|
} L2_INT_TRIGGERS_STRUCT;
|
|
|
|
/* 'L2_interrupt_triggers' bit settings */
|
|
#define APP_INT_ON_RX_FRAME 0x01 /* interrupt on MSU reception */
|
|
#define APP_INT_ON_TX_FRAME 0x02 /* interrupt when an MSU may be transmitted */
|
|
#define APP_INT_ON_COMMAND_COMPLETE 0x04 /* interrupt when an interface command is complete */
|
|
#define APP_INT_ON_TIMER 0x08 /* interrupt on a defined millisecond timeout */
|
|
#define APP_INT_ON_GLOBAL_EXCEP_COND 0x10 /* interrupt on a global exception condition */
|
|
#define APP_INT_ON_L2_EXCEP_COND 0x20 /* interrupt on an SS7 L2 exception condition */
|
|
#define APP_INT_ON_TRACE_DATA_AVAIL 0x80 /* interrupt when trace data is available */
|
|
|
|
/* 'interrupt_timer' limitation */
|
|
#define MAX_INTERRUPT_TIMER_VALUE 60000 /* the maximum permitted timer interrupt value */
|
|
|
|
/* interrupt types indicated at 'interrupt_type' byte of the INTERRUPT_INFORMATION_STRUCT */
|
|
#define NO_APP_INTS_PEND 0x00 /* no interrups are pending */
|
|
#define RX_APP_INT_PEND 0x01 /* a receive interrupt is pending */
|
|
#define TX_APP_INT_PEND 0x02 /* a transmit interrupt is pending */
|
|
#define COMMAND_COMPLETE_APP_INT_PEND 0x04 /* a 'command complete' interrupt is pending */
|
|
#define TIMER_APP_INT_PEND 0x08 /* a timer interrupt is pending */
|
|
#define GLOBAL_EXCEP_COND_APP_INT_PEND 0x10 /* a global exception condition interrupt is pending */
|
|
#define L2_EXCEP_COND_APP_INT_PEND 0x20 /* an SS7 L2 exception condition interrupt is pending */
|
|
#define TRACE_DATA_AVAIL_APP_INT_PEND 0x80 /* a trace data available interrupt is pending */
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
* Constants for MSU transmission
|
|
* --------------------------------------------------------------------------*/
|
|
|
|
/* the MSU transmit status element configuration structure */
|
|
typedef struct {
|
|
unsigned short number_Tx_status_elements; /* number of transmit status elements */
|
|
unsigned long base_addr_Tx_status_elements; /* base address of the transmit element list */
|
|
unsigned long next_Tx_status_element_to_use; /* pointer to the next transmit element to be used */
|
|
} L2_TX_STATUS_EL_CFG_STRUCT;
|
|
|
|
/* the MSU transmit status element structure */
|
|
typedef struct {
|
|
unsigned char opp_flag; /* opp flag */
|
|
unsigned short frame_length; /* length of the frame to be transmitted */
|
|
unsigned char SIO; /* Service Information Octet */
|
|
unsigned char misc_Tx_bits; /* miscellaneous bits */
|
|
unsigned char reserved_1; /* reserved for internal use */
|
|
unsigned short reserved_2; /* reserved for internal use */
|
|
unsigned long reserved_3; /* reserved for internal use */
|
|
unsigned long ptr_data_bfr; /* pointer to the data area */
|
|
} L2_MSU_TX_STATUS_EL_STRUCT;
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
* Constants for MSU reception
|
|
* --------------------------------------------------------------------------*/
|
|
|
|
/* the MSU receive status element configuration structure */
|
|
typedef struct {
|
|
unsigned short number_Rx_status_elements; /* number of receive status elements */
|
|
unsigned long base_addr_Rx_status_elements; /* base address of the receive element list */
|
|
unsigned long next_Rx_status_element_to_use; /* pointer to the next receive element to be used */
|
|
} L2_RX_STATUS_EL_CFG_STRUCT;
|
|
|
|
/* the MSU receive status element structure */
|
|
typedef struct {
|
|
unsigned char opp_flag; /* opp flag */
|
|
unsigned short frame_length; /* length of the received frame */
|
|
unsigned char SIO; /* Service Information Octet */
|
|
unsigned char misc_Rx_bits; /* miscellaneous bits */
|
|
unsigned short time_stamp; /* receive time stamp */
|
|
unsigned char reserved_1; /* reserved for internal use */
|
|
unsigned long reserved_2; /* reserved for internal use */
|
|
unsigned long ptr_data_bfr; /* pointer to the data area */
|
|
} L2_MSU_RX_STATUS_EL_STRUCT;
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
* Constants defining the shared memory information area
|
|
* --------------------------------------------------------------------------*/
|
|
|
|
/* the global information structure */
|
|
typedef struct {
|
|
unsigned char global_status; /* global status */
|
|
unsigned char modem_status; /* current modem status */
|
|
unsigned char global_excep_conditions; /* global exception conditions */
|
|
unsigned char Rx_disabled_Rx_bfrs_full; /* receiver disabled */
|
|
unsigned char glob_info_reserved[4]; /* reserved */
|
|
unsigned char code_name[4]; /* code name */
|
|
unsigned char code_version[4]; /* code version */
|
|
} GLOBAL_INFORMATION_STRUCT;
|
|
|
|
/* the SS7 L2 information structure */
|
|
typedef struct {
|
|
unsigned char L2_in_service; /* SS7 L2 'in service' flag */
|
|
unsigned short L2_excep_conditions; /* SS7 L2 exception conditions */
|
|
unsigned short no_MSU_Tx_bfrs_occupied; /* the number of MSU transmit buffers occupied */
|
|
unsigned char Tx_cong_status; /* transmission congestion status */
|
|
unsigned char Tx_discard_status; /* transmission discard status */
|
|
unsigned char SIB_Rx_status; /* LSSU SIB reception status */
|
|
unsigned char L2_info_reserved[8]; /* reserved */
|
|
} L2_INFORMATION_STRUCT;
|
|
|
|
typedef struct {
|
|
unsigned char reserved[16]; /* reserved */
|
|
} RES_INFORMATION_STRUCT;
|
|
|
|
/* the interrupt information structure */
|
|
typedef struct {
|
|
unsigned char interrupt_type; /* type of interrupt triggered */
|
|
unsigned char interrupt_permission; /* interrupt permission mask */
|
|
unsigned char int_info_reserved[14]; /* reserved */
|
|
} INTERRUPT_INFORMATION_STRUCT;
|
|
|
|
/* the FT1 information structure */
|
|
typedef struct {
|
|
unsigned char parallel_port_A_input; /* input - parallel port A */
|
|
unsigned char parallel_port_B_input; /* input - parallel port B */
|
|
unsigned char FT1_INS_alarm_condition; /* the current FT1 in-service/alarm condition */
|
|
unsigned char FT1_info_reserved[13]; /* reserved */
|
|
} FT1_INFORMATION_STRUCT;
|
|
|
|
/* the shared memory area information structure */
|
|
typedef struct {
|
|
GLOBAL_INFORMATION_STRUCT global_info_struct;/* the global information structure */
|
|
L2_INFORMATION_STRUCT L2_info_struct; /* the SS7 L2 information structure */
|
|
RES_INFORMATION_STRUCT res0_info_struct; /* reserved information structure */
|
|
RES_INFORMATION_STRUCT res1_info_struct; /* reserved information structure */
|
|
INTERRUPT_INFORMATION_STRUCT interrupt_info_struct;/* the interrupt information structure */
|
|
FT1_INFORMATION_STRUCT FT1_info_struct; /* the FT1 information structure */
|
|
} SHARED_MEMORY_INFO_STRUCT;
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
* Constants for SS7 L2 debugging
|
|
* --------------------------------------------------------------------------*/
|
|
/* the SS7 debug structure */
|
|
typedef struct {
|
|
unsigned short LSC_action;
|
|
unsigned short LSC_status;
|
|
unsigned short IAC_action;
|
|
unsigned short IAC_status;
|
|
unsigned short POC_action;
|
|
unsigned short POC_status;
|
|
unsigned short DAEDR_action;
|
|
unsigned short DAEDR_status;
|
|
unsigned short DAEDT_action;
|
|
unsigned short DAEDT_status;
|
|
unsigned short TXC_action;
|
|
unsigned short TXC_status;
|
|
unsigned char Tx_LSSU_SF;
|
|
unsigned short RXC_action;
|
|
unsigned short RXC_status;
|
|
unsigned short CC_action;
|
|
unsigned short CC_status;
|
|
unsigned short AERM_action;
|
|
unsigned short AERM_status;
|
|
unsigned short SUERM_action;
|
|
unsigned short SUERM_status;
|
|
unsigned short EIM_action;
|
|
unsigned short EIM_status;
|
|
unsigned short FSNL;
|
|
unsigned short FSNF;
|
|
unsigned short FSNT_TXC;
|
|
unsigned short FSNT_RXC;
|
|
unsigned short FSNX_TXC;
|
|
unsigned short FSNX_RXC;
|
|
unsigned short FSNR;
|
|
unsigned short BSNR;
|
|
unsigned short BSNT;
|
|
unsigned char FIBT;
|
|
unsigned char FIBR;
|
|
unsigned char FIBX;
|
|
unsigned char FIB;
|
|
unsigned char BIBT;
|
|
unsigned char BIBR;
|
|
unsigned char BIBX;
|
|
unsigned char BIB;
|
|
unsigned short Cm;
|
|
unsigned char UNF;
|
|
unsigned char UNB;
|
|
unsigned char RTR;
|
|
unsigned char Cp;
|
|
unsigned char Tx_frm_status;
|
|
} L2_DEBUG_STRUCT;
|
|
|
|
#pragma pack()
|
|
|
|
|
|
#undef wan_udphdr_data
|
|
#define wan_udphdr_data wan_udphdr_u.ss7.data
|
|
|
|
#ifdef __KERNEL__
|
|
#undef wan_udp_data
|
|
#define wan_udp_data wan_udp_hdr.wan_udphdr_u.ss7.data
|
|
#endif
|
|
|
|
#endif
|