OpenSS7
SS7 for the
Common Man

© Copyright 1997-2004,OpenSS7 Corporation, All Rights Reserved.
Last modified:

Home Overview Status News Documentation Resources About
   
 Overview
 Status
 News
 Documentation
 Resources
 About

   
Home Index Prev Next More Download Info FAQ Mail   Home -> Resources -> Browse Source -> strss7/include/ss7/sli.h


File /code/strss7/include/ss7/sli.h



#ifndef __SS7_SLI_H__
#define __SS7_SLI_H__

#ident "@(#) $Name:  $($Revision: 0.8.2.6 $) Copyright (c) 1997-2002 OpenSS7 Corporation."

typedef lmi_long sl_long;
typedef lmi_ulong sl_ulong;
typedef lmi_ushort sl_ushort;
typedef lmi_uchar sl_uchar;

#define SL_PROTO_BASE				  64L

#define SL_DSTR_FIRST				(  1L + SL_PROTO_BASE)
#define SL_PDU_REQ				(  1L + SL_PROTO_BASE)
#define SL_EMERGENCY_REQ			(  2L + SL_PROTO_BASE)
#define SL_EMERGENCY_CEASES_REQ			(  3L + SL_PROTO_BASE)
#define SL_START_REQ				(  4L + SL_PROTO_BASE)
#define SL_STOP_REQ				(  5L + SL_PROTO_BASE)
#define SL_RETRIEVE_BSNT_REQ			(  6L + SL_PROTO_BASE)
#define SL_RETRIEVAL_REQUEST_AND_FSNC_REQ	(  7L + SL_PROTO_BASE)
#define SL_CLEAR_BUFFERS_REQ			(  8L + SL_PROTO_BASE)
#define SL_CLEAR_RTB_REQ			(  9L + SL_PROTO_BASE)
#define SL_CONTINUE_REQ				( 10L + SL_PROTO_BASE)
#define SL_LOCAL_PROCESSOR_OUTAGE_REQ		( 11L + SL_PROTO_BASE)
#define SL_RESUME_REQ				( 12L + SL_PROTO_BASE)
#define SL_CONGESTION_DISCARD_REQ		( 13L + SL_PROTO_BASE)
#define SL_CONGESTION_ACCEPT_REQ		( 14L + SL_PROTO_BASE)
#define SL_NO_CONGESTION_REQ			( 15L + SL_PROTO_BASE)
#define SL_POWER_ON_REQ				( 16L + SL_PROTO_BASE)
#define SL_OPTMGMT_REQ				( 17L + SL_PROTO_BASE)
#define SL_NOTIFY_REQ				( 18L + SL_PROTO_BASE)
#define SL_DSTR_LAST				( 18L + SL_PROTO_BASE)

#define SL_USTR_LAST				( -1L - SL_PROTO_BASE)
#define SL_PDU_IND				( -1L - SL_PROTO_BASE)
#define SL_LINK_CONGESTED_IND			( -2L - SL_PROTO_BASE)
#define SL_LINK_CONGESTION_CEASED_IND		( -3L - SL_PROTO_BASE)
#define SL_RETRIEVED_MESSAGE_IND		( -4L - SL_PROTO_BASE)
#define SL_RETRIEVAL_COMPLETE_IND		( -5L - SL_PROTO_BASE)
#define SL_RB_CLEARED_IND			( -6L - SL_PROTO_BASE)
#define SL_BSNT_IND				( -7L - SL_PROTO_BASE)
#define SL_IN_SERVICE_IND			( -8L - SL_PROTO_BASE)
#define SL_OUT_OF_SERVICE_IND			( -9L - SL_PROTO_BASE)
#define SL_REMOTE_PROCESSOR_OUTAGE_IND		(-10L - SL_PROTO_BASE)
#define SL_REMOTE_PROCESSOR_RECOVERED_IND	(-11L - SL_PROTO_BASE)
#define SL_RTB_CLEARED_IND			(-12L - SL_PROTO_BASE)
#define SL_RETRIEVAL_NOT_POSSIBLE_IND		(-13L - SL_PROTO_BASE)
#define SL_BSNT_NOT_RETRIEVABLE_IND		(-14L - SL_PROTO_BASE)
#define SL_OPTMGMT_ACK				(-15L - SL_PROTO_BASE)
#define SL_NOTIFY_IND				(-16L - SL_PROTO_BASE)
#define SL_LOCAL_PROCESSOR_OUTAGE_IND		(-17L - SL_PROTO_BASE)
#define SL_LOCAL_PROCESSOR_RECOVERED_IND	(-18L - SL_PROTO_BASE)
#define SL_USTR_FIRST				(-18L - SL_PROTO_BASE)

/*
 *  SLI PROTOCOL PRIMITIVES
 */

/*
 *  SL_PDU_REQ, optional M_PROTO type, with M_DATA block(s)
 */
typedef struct {
	sl_long sl_primitive;
	sl_ulong sl_mp;
} sl_pdu_req_t;

/*
 *  SL_PDU_IND, optional M_PROTO type, with M_DATA block(s)
 */
typedef struct {
	sl_long sl_primitive;
	sl_ulong sl_mp;
} sl_pdu_ind_t;

/*
 *  PROTOCOL CONTROL PRIMITIVES
 */

/*
 *  SL_EMERGENCY_REQ, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
} sl_emergency_req_t;

/*
 *  SL_EMERGENCY_CEASES_REQ, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
} sl_emergency_ceases_req_t;

/*
 *  SL_START_REQ, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
} sl_start_req_t;

/*
 *  SL_STOP_REQ, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
} sl_stop_req_t;

/*
 *  SL_RETRIEVE_BSNT_REQ, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
} sl_retrieve_bsnt_req_t;

/*
 *  SL_RETRIEVAL_REQUEST_AND_FSNC_REQ, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
	sl_ulong sl_fsnc;
} sl_retrieval_req_and_fsnc_t;

/*
 *  SL_CLEAR_BUFFERS_REQ, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
} sl_clear_buffers_req_t;

/*
 *  SL_CLEAR_RTB_REQ, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
} sl_clear_rtb_req_t;

/*
 *  SL_CONTINUE_REQ, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
} sl_continue_req_t;

/*
 *  SL_LOCAL_PROCESSOR_OUTAGE_REQ, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
} sl_local_proc_outage_req_t;

/*
 *  SL_RESUME_REQ, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
} sl_resume_req_t;

/*
 *  SL_CONGESTION_DISCARD_REQ, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
} sl_cong_discard_req_t;

/*
 *  SL_CONGESTION_ACCEPT_REQ, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
} sl_cong_accept_req_t;

/*
 *  SL_NO_CONGESTION_REQ, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
} sl_no_cong_req_t;

/*
 * SL_POWER_ON_REQ, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
} sl_power_on_req_t;

/*
 *  SL_LINK_CONGESTED_IND, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
	sl_ulong sl_timestamp;
	sl_ulong sl_cong_status;	/* congestion status */
	sl_ulong sl_disc_status;	/* discard status */
} sl_link_cong_ind_t;

/*
 *  SL_LINK_CONGESTION_CEASED_IND, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
	sl_ulong sl_timestamp;
	sl_ulong sl_cong_status;	/* congestion status */
	sl_ulong sl_disc_status;	/* discard status */
} sl_link_cong_ceased_ind_t;

/*
 *  SL_RETRIEVED_MESSAGE_IND, M_PROTO or M_PCPROTO type with M_DATA block(s)
 */
typedef struct {
	sl_long sl_primitive;
	sl_ulong sl_mp;
} sl_retrieved_msg_ind_t;

/*
 *  SL_RETRIEVAL_COMPLETE_IND, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
	sl_ulong sl_mp;
} sl_retrieval_comp_ind_t;

/*
 *  SL_RETRIEVAL_NOT_POSSIBLE_IND, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
} sl_retrieval_not_poss_ind_t;

/*
 *  SL_RB_CLEARED_IND, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
} sl_rb_cleared_ind_t;

/*
 *  SL_BSNT_IND, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
	sl_ulong sl_bsnt;
} sl_bsnt_ind_t;

/*
 *  SL_BSNT_NOT_RETRIEVABLE_IND, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
	sl_ulong sl_bsnt;
} sl_bsnt_not_retr_ind_t;

/*
 *  SL_IN_SERVICE_IND, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
} sl_in_service_ind_t;

/*
 *  SL_OUT_OF_SERVICE_IND, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
	sl_ulong sl_timestamp;
	sl_ulong sl_reason;
} sl_out_of_service_ind_t;

/*
 *  These reasons for failure as so that upstream module can
 *  collect statistics per link per ITU-T Q.752 Table 1
 *  requirements.
 */
#define SL_FAIL_UNSPECIFIED		0x0001
#define SL_FAIL_CONG_TIMEOUT		0x0002
#define SL_FAIL_ACK_TIMEOUT		0x0004
#define SL_FAIL_ABNORMAL_BSNR		0x0008
#define SL_FAIL_ABNORMAL_FIBR		0x0010
#define SL_FAIL_SUERM_EIM		0x0020
#define SL_FAIL_ALIGNMENT_NOT_POSSIBLE	0x0040
#define SL_FAIL_RECEIVED_SIO		0x0080
#define SL_FAIL_RECEIVED_SIN		0x0100
#define SL_FAIL_RECEIVED_SIE		0x0200
#define SL_FAIL_RECEIVED_SIOS		0x0400
#define SL_FAIL_T1_TIMEOUT		0x0800

/*
 *  SL_REMOTE_PROCESSOR_OUTAGE_IND, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
	sl_ulong sl_timestamp;
} sl_rem_proc_out_ind_t;

/*
 *  SL_REMOTE_PROCESSOR_RECOVERED_IND, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
	sl_ulong sl_timestamp;
} sl_rem_proc_recovered_ind_t;

/*
 *  SL_RTB_CLEARED_IND, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
} sl_rtb_cleared_ind_t;

/*
 *  SL_LOCAL_PROCESSOR_OUTAGE_IND, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
	sl_ulong sl_timestamp;
} sl_loc_proc_out_ind_t;

/*
 *  SL_LOCAL_PROCESSOR_RECOVERED_IND, M_PROTO or M_PCPROTO type
 */
typedef struct {
	sl_long sl_primitive;
	sl_ulong sl_timestamp;
} sl_loc_proc_recovered_ind_t;

/*
 *  Generic single argument type
 */
typedef struct {
	sl_ulong sl_cmd;
	sl_ulong sl_arg;
} sl_cmd_arg_t;

/*
 *  Generic double argument type
 */
typedef struct {
	sl_ulong sl_cmd;
	sl_ulong sl_arg1;
	sl_ulong sl_arg2;
} sl_cmd_2arg_t;

/*
 *  Generic triple argument type
 */
typedef struct {
	sl_ulong sl_cmd;
	sl_ulong sl_arg1;
	sl_ulong sl_arg2;
	sl_ulong sl_arg3;
} sl_cmd_3arg_t;

union SL_primitives {
	sl_long sl_primitive;
	sl_cmd_arg_t cmd_arg;
	sl_cmd_2arg_t cmd_2arg;
	sl_cmd_3arg_t cmd_3arg;
	sl_pdu_req_t pdu_req;
	sl_pdu_ind_t pdu_ind;
	sl_emergency_req_t emergency_req;
	sl_emergency_ceases_req_t emergency_ceases_req;
	sl_start_req_t start_req;
	sl_stop_req_t stop_req;
	sl_retrieve_bsnt_req_t retrieve_bsnt_req;
	sl_retrieval_req_and_fsnc_t retrieval_req_and_fsnc;
	sl_resume_req_t resume_req;
	sl_clear_buffers_req_t clear_buffers_req;
	sl_clear_rtb_req_t clear_rtb_req;
	sl_local_proc_outage_req_t local_proc_outage_req;
	sl_cong_discard_req_t cong_discard_req;
	sl_cong_accept_req_t cong_accept_req;
	sl_no_cong_req_t no_cong_req;
	sl_power_on_req_t power_on_req;
	sl_link_cong_ind_t link_cong_ind;
	sl_link_cong_ceased_ind_t link_cong_ceased_ind;
	sl_retrieved_msg_ind_t retrieved_msg_ind;
	sl_retrieval_comp_ind_t retrieval_comp_ind;
	sl_retrieval_not_poss_ind_t retrieval_not_poss_ind;
	sl_rb_cleared_ind_t rb_cleared_ind;
	sl_bsnt_ind_t bsnt_ind;
	sl_bsnt_not_retr_ind_t bsnt_not_retr_ind;
	sl_in_service_ind_t in_service_ind;
	sl_out_of_service_ind_t out_of_service_ind;
	sl_rem_proc_out_ind_t rem_proc_out_ind;
	sl_rem_proc_recovered_ind_t rem_proc_recovered_ind;
	sl_rtb_cleared_ind_t rtb_cleared_ind;
	sl_loc_proc_out_ind_t loc_proc_out_ind;
	sl_loc_proc_recovered_ind_t loc_proc_recovered_ind;
};

typedef union SL_primitives sl_prim_t;

#define SL_CMD_ARG_SIZE			sizeof(sl_cmd_arg_t)
#define SL_CMD_2ARG_SIZE		sizeof(sl_cmd_2arg_t)
#define SL_CMD_3ARG_SIZE		sizeof(sl_cmd_3arg_t)
#define SL_PDU_REQ_SIZE			sizeof(sl_pdu_req_t)
#define SL_PDU_IND_SIZE			sizeof(sl_pdu_ind_t)
#define SL_EMERGENCY_REQ_SIZE		sizeof(sl_emergency_req_t)
#define SL_EMERGENCY_CEASES_REQ_SIZE	sizeof(sl_emergency_ceases_req_t)
#define SL_START_REQ_SIZE		sizeof(sl_start_req_t)
#define SL_STOP_REQ_SIZE		sizeof(sl_stop_req_t)
#define SL_RETRIEVE_BSNT_REQ_SIZE	sizeof(sl_retrieve_bsnt_req_t)
#define SL_RETRIEVAL_REQ_AND_FSNC_SIZE	sizeof(sl_retrieval_req_and_fsnc_t)
#define SL_RESUME_REQ_SIZE		sizeof(sl_resume_req_t)
#define SL_CLEAR_BUFFERS_REQ_SIZE	sizeof(sl_clear_buffers_req_t)
#define SL_CLEAR_RTB_REQ_SIZE		sizeof(sl_clear_rtb_req_t)
#define SL_LOCAL_PROC_OUTAGE_REQ_SIZE	sizeof(sl_local_proc_outage_req_t)
#define SL_CONG_DISCARD_REQ_SIZE	sizeof(sl_cong_discard_req_t)
#define SL_CONG_ACCEPT_REQ_SIZE		sizeof(sl_cong_accept_req_t)
#define SL_NO_CONG_REQ_SIZE		sizeof(sl_no_cong_req_t)
#define SL_POWER_ON_REQ_SIZE		sizeof(sl_power_on_req_t)
#define SL_LINK_CONG_IND_SIZE		sizeof(sl_link_cong_ind_t)
#define SL_LINK_CONG_CEASED_IND_SIZE	sizeof(sl_link_cong_ceased_ind_t)
#define SL_RETRIEVED_MSG_IND_SIZE	sizeof(sl_retrieved_msg_ind_t)
#define SL_RETRIEVAL_COMP_IND_SIZE	sizeof(sl_retrieval_comp_ind_t)
#define SL_RETRIEVAL_NOT_POSS_IND_SIZE	sizeof(sl_retrieval_not_poss_ind_t)
#define SL_RB_CLEARED_IND_SIZE		sizeof(sl_rb_cleared_ind_t)
#define SL_BSNT_IND_SIZE		sizeof(sl_bsnt_ind_t)
#define SL_BSNT_NOT_RETR_IND_SIZE	sizeof(sl_bsnt_not_retr_ind_t)
#define SL_IN_SERVICE_IND_SIZE		sizeof(sl_in_service_ind_t)
#define SL_OUT_OF_SERVICE_SIZE		sizeof(sl_out_of_service_ind_t)
#define SL_REM_PROC_OUT_IND_SIZE	sizeof(sl_rem_proc_out_ind_t)
#define SL_REM_PROC_RECOVERED_IND_SIZE	sizeof(sl_rem_proc_recovered_ind_t)
#define SL_RTB_CLEARED_IND_SIZE		sizeof(sl_rtb_cleared_ind_t)
#define SL_LOC_PROC_OUT_IND_SIZE	sizeof(sl_loc_proc_out_ind_t)
#define SL_LOC_PROC_RECOVERED_IND_SIZE	sizeof(sl_loc_proc_recovered_ind_t)

#define	SL_OPT_PROTOCOL		LMI_OPT_PROTOCOL
#define SL_OPT_STATISTICS	LMI_OPT_STATISTICS
#define SL_OPT_CONFIG		3	/* use struct sl_config */
#define SL_OPT_STATEM		4	/* use struct sl_statem */
#define SL_OPT_STATS		5	/* use struct sl_stats */

#endif				/* __SS7_SLI_H__ */


Home Index Prev Next More Download Info FAQ Mail   Home -> Resources -> Browse Source -> strss7/include/ss7/sli.h

OpenSS7
SS7 for the
Common Man
Home Overview Status News Documentation Resources About

© Copyright 1997-2004,OpenSS7 Corporation, All Rights Reserved.
Last modified: