418 lines
13 KiB
C
418 lines
13 KiB
C
#ifndef _BICCIF_H_
|
|
#define _BICCIF_H_
|
|
|
|
#include "q765_5e.h"
|
|
#include "q1902_3e.h"
|
|
#include "../../../mtp3/src/include/mtp3.h"
|
|
#include "../../../snmp/src/include/snmp.h"
|
|
//#include "../../../public/src/include/proto_pub.h"
|
|
#include "bicc_debug.h"
|
|
#include "../../../pal/pal.h"
|
|
/*********************************/
|
|
/*** BICC Management Structure ***/
|
|
/*********************************/
|
|
|
|
#define BICC_CM_OK 1 //command request success
|
|
#define BICC_CM_FAILED -1 //command request failed
|
|
|
|
/*************************************
|
|
******BICC Resource Structure*********
|
|
*************************************/
|
|
#define BICC_MAX_PORT 8192
|
|
#define BICC_CG_CIRCUIT 32
|
|
#define BICC_CIRCUIT_CIC 32
|
|
|
|
|
|
/*** BICC Primitive Parameter Structure (different to q1902_3e) ***/
|
|
typedef struct AppTransM_struct { //Application Transport Mechanism
|
|
u8 pres;
|
|
ApmUser_struct apm_info;
|
|
} AppTransM_struct;
|
|
/*********************************/
|
|
/**** BICC Primitive Structure ***/
|
|
/*********************************/
|
|
typedef struct BiccSetup_Req {
|
|
NatConnInd_struct natConn;//F
|
|
FwdCallInd_struct fwdCall;//F
|
|
CallingPtyCat_struct callingPtyCat;//F
|
|
TransMedReq_struct transMedReq;//F
|
|
CalledPtyNum_struct calledPtyNum;//V
|
|
AppTransM_struct app;
|
|
CallingPtyNum_struct callingPtyNum;
|
|
CollectCallReq_struct collectCallReq;
|
|
ConfTreatInd_struct confTreat;
|
|
CorrelationId_struct correlationId;
|
|
OrigCalledNum_struct origCalledNum;
|
|
RedirgNum_struct redirgNum;
|
|
RedirInfo_struct redirInfo;
|
|
ScfId_struct scfId;
|
|
UserToUserInd_struct utuInd;
|
|
UserToUserInfo_struct utuInfo;
|
|
} BiccSetup_Req, BiccSetup_Ind;
|
|
|
|
typedef struct BiccSetup_Rsp {
|
|
AppTransM_struct app;
|
|
BackCallInd_struct backCall;//C: use it if no alert req is sent before
|
|
ConfTreatInd_struct confTreat;
|
|
ConnNum_struct connNum;
|
|
UserToUserInd_struct utuInd;
|
|
UserToUserInfo_struct utuInfo;
|
|
} BiccSetup_Rsp, BiccSetup_Cnf;
|
|
|
|
typedef struct BiccAlert_Req {
|
|
BackCallInd_struct backCall;//F
|
|
AppTransM_struct app;
|
|
CauseInd_struct cause;
|
|
ConfTreatInd_struct confTreat;
|
|
OptBackCallInd_struct optBackCall;
|
|
UserToUserInd_struct utuInd;
|
|
UserToUserInfo_struct utuInfo;
|
|
} BiccAlert_Req, BiccAlert_Ind;
|
|
|
|
typedef struct BiccInfo_Req {
|
|
SubseqNum_struct subseqNum;//V
|
|
} BiccInfo_Req, BiccInfo_Ind;
|
|
|
|
typedef struct BiccApm_Req {
|
|
AppTransM_struct app;
|
|
} BiccApm_Req, BiccApm_Ind;
|
|
|
|
typedef struct BiccCpg_Req {
|
|
EventInfo_struct eventInfo;//F
|
|
AppTransM_struct app;
|
|
BackCallInd_struct backCall;
|
|
CallDiverInfo_struct calldiver;
|
|
CauseInd_struct cause;
|
|
ConfTreatInd_struct confTreat;
|
|
ConnNum_struct connNum;
|
|
UserToUserInd_struct utuInd;
|
|
UserToUserInfo_struct utuInfo;
|
|
} BiccCpg_Req, BiccCpg_Ind;
|
|
|
|
typedef struct BiccRel_Req {
|
|
CauseInd_struct cause;//V
|
|
UserToUserInd_struct utuInd;
|
|
UserToUserInfo_struct utuInfo;
|
|
} BiccRel_Req, BiccRel_Ind;
|
|
|
|
typedef struct BiccRel_Rsp {
|
|
CauseInd_struct cause;
|
|
} BiccRel_Rsp, BiccRel_Cnf;
|
|
|
|
typedef struct BiccRes_Req {
|
|
SusResInd_struct susRes;//F
|
|
} BiccRes_Req, BiccRes_Ind;
|
|
|
|
typedef struct BiccSus_Req {
|
|
SusResInd_struct susRes;//F
|
|
} BiccSus_Req, BiccSus_Ind;
|
|
|
|
typedef struct BiccCgb_Req {
|
|
CicGrpSpv_struct cicGrpSpv;//F
|
|
RangeStatus_struct rangeStatus;//V
|
|
} BiccCgb_Req, BiccCgb_Ind;
|
|
|
|
typedef struct BiccCgb_Rsp {
|
|
CicGrpSpv_struct cicGrpSpv;//F
|
|
RangeStatus_struct rangeStatus;//V
|
|
} BiccCgb_Rsp, BiccCgb_Cnf;
|
|
|
|
typedef struct BiccCgu_Req {
|
|
CicGrpSpv_struct cicGrpSpv;//F
|
|
RangeStatus_struct rangeStatus;//V
|
|
} BiccCgu_Req, BiccCgu_Ind;
|
|
|
|
typedef struct BiccCgu_Rsp {
|
|
CicGrpSpv_struct cicGrpSpv;//F
|
|
RangeStatus_struct rangeStatus;//V
|
|
} BiccCgu_Rsp, BiccCgu_Cnf;
|
|
|
|
typedef struct BiccGrs_Req {
|
|
RangeStatus_struct rangeStatus;//V
|
|
} BiccGrs_Req, BiccGrs_Ind;
|
|
|
|
typedef struct BiccGrs_Rsp {
|
|
RangeStatus_struct rangeStatus;//V
|
|
} BiccGrs_Rsp, BiccGrs_Cnf;
|
|
|
|
|
|
typedef struct BiccSta_Req
|
|
{
|
|
BiccMsg_struct biccMsg;
|
|
}BiccSta_Req;
|
|
|
|
typedef struct BiccFac_Req
|
|
{
|
|
FacInd_struct facInd;
|
|
}BiccFac_Req, BiccFac_Ind;
|
|
|
|
typedef struct BiccFac_Rsp
|
|
{
|
|
FacInd_struct facInd;
|
|
}BiccFac_Rsp, BiccFac_Cnf;
|
|
|
|
typedef union BiccWritePrim_union {
|
|
BiccSetup_Req setup_req;
|
|
BiccSetup_Rsp setup_rsp;
|
|
BiccAlert_Req alert_req;
|
|
BiccInfo_Req info_req;
|
|
BiccApm_Req apm_req;
|
|
BiccCpg_Req cpg_req;
|
|
BiccRel_Req rel_req;
|
|
BiccRel_Rsp rel_rsp;
|
|
BiccRes_Req res_req;
|
|
BiccSus_Req sus_req;
|
|
BiccCgb_Req cgb_req;//only used in BICC module
|
|
BiccCgb_Rsp cgb_rsp;//only used in BICC module
|
|
BiccCgu_Req cgu_req;//only used in BICC module
|
|
BiccCgu_Rsp cgu_rsp;//only used in BICC module
|
|
BiccGrs_Req grs_req;//only used in BICC module
|
|
BiccGrs_Rsp grs_rsp;//only used in BICC module
|
|
BiccFac_Req fac_req;
|
|
BiccFac_Rsp fac_rsp;
|
|
} BiccWritePrim_union;
|
|
|
|
typedef union BiccReadPrim_union {
|
|
BiccSetup_Ind setup_ind;
|
|
BiccSetup_Cnf setup_cnf;
|
|
BiccAlert_Ind alert_ind;
|
|
BiccInfo_Ind info_ind;
|
|
BiccApm_Ind apm_ind;
|
|
BiccCpg_Ind cpg_ind;
|
|
BiccRel_Ind rel_ind;
|
|
BiccRel_Cnf rel_cnf;
|
|
BiccRes_Ind res_ind;
|
|
BiccSus_Ind sus_ind;
|
|
BiccCgb_Ind cgb_ind;//only used in BICC module
|
|
BiccCgb_Cnf cgb_cnf;//only used in BICC module
|
|
BiccCgu_Ind cgu_ind;//only used in BICC module
|
|
BiccCgu_Cnf cgu_cnf;//only used in BICC module
|
|
BiccGrs_Ind grs_ind;//only used in BICC module
|
|
BiccGrs_Cnf grs_cnf;//only used in BICC module
|
|
BiccFac_Ind fac_ind;
|
|
BiccFac_Cnf fac_cnf;
|
|
} BiccReadPrim_union;
|
|
|
|
|
|
/********************************************/
|
|
/****** BICC Internal Command *************/
|
|
/********************************************/
|
|
#define BICC_CMD_UNBLO 0x01
|
|
#define BICC_CMD_BLO 0x02
|
|
#define BICC_CMD_RESET 0x03
|
|
#define BICC_CMD_RESET_COMP 0x04
|
|
|
|
|
|
#define BICC_SI_CPCI 0x10
|
|
#define BICC_SI_CPCO 0x20
|
|
#define BICC_SI_BLS 0x30
|
|
#define BICC_SI_BLR 0x40
|
|
#define BICC_SI_MGBR 0x50
|
|
#define BICC_SI_MGBS 0x60
|
|
#define BICC_SI_CRS 0x70
|
|
#define BICC_SI_CRR 0x80
|
|
#define BICC_SI_CGRS 0x90
|
|
#define BICC_SI_CGRR 0xA0
|
|
|
|
/********************************************/
|
|
/****** BICC Event/Primitive Definition *****/
|
|
/********************************************/
|
|
|
|
#define BICC_SETUP_REQ 0x01 //user-defined, first 4-digit:type of primitive second 4-digit:type of event
|
|
#define BICC_SETUP_IND 0x41
|
|
#define BICC_SETUP_RSP 0x81
|
|
#define BICC_SETUP_CNF 0xc1
|
|
#define BICC_ALERT_REQ 0x02
|
|
#define BICC_ALERT_IND 0x42
|
|
#define BICC_INFO_REQ 0x03
|
|
#define BICC_INFO_IND 0x43
|
|
#define BICC_APM_REQ 0x04
|
|
#define BICC_APM_IND 0x44
|
|
#define BICC_PROG_REQ 0x05
|
|
#define BICC_PROG_IND 0x45
|
|
#define BICC_RELEASE_REQ 0x06
|
|
#define BICC_RELEASE_IND 0x46
|
|
#define BICC_RELEASE_RSP 0x86
|
|
#define BICC_RELEASE_CNF 0xc6
|
|
#define BICC_RESET_REQ 0x07
|
|
#define BICC_RESET_IND 0x47
|
|
#define BICC_RESET_CNF 0xc7
|
|
#define BICC_RESET_RSP 0x87
|
|
#define BICC_GROUP_RESET_REQ 0x17
|
|
|
|
#define BICC_BLOCK_REQ 0x08
|
|
#define BICC_BLOCK_IND 0x48
|
|
#define BICC_BLOCK_RSP 0x88
|
|
#define BICC_BLOCK_CNF 0xc8
|
|
#define BICC_UNBLOCK_REQ 0x09
|
|
#define BICC_UNBLOCK_IND 0x49
|
|
#define BICC_UNBLOCK_RSP 0x89
|
|
#define BICC_UNBLOCK_CNF 0xc9
|
|
#define BICC_SUSPEND_REQ 0x0a
|
|
#define BICC_SUSPEND_IND 0x4a
|
|
#define BICC_RESUME_REQ 0x0b
|
|
#define BICC_RESUME_IND 0x4b
|
|
#define BICC_REATTEMPT_IND 0x4c
|
|
#define BICC_FAILURE_IND 0x4f
|
|
#define BICC_FAC_REQ 0x0d
|
|
#define BICC_FAC_RSP 0x8d
|
|
#define BICC_FAC_IND 0x4d
|
|
#define BICC_FAC_CNF 0xcd
|
|
#define BICC_STA_IND 0x4e
|
|
#define BICC_STA_REQ 0x0e
|
|
#define BICC_MAINTENANCE_IND 0x44 //
|
|
|
|
#define BICC_STOP_REQ 0xee
|
|
#define BICC_STOP_CNF 0xef
|
|
|
|
typedef int f_bicc_setup_ind(Pst *pst, const BiccReadPrim_union *prm_ptr);
|
|
typedef int f_bicc_setup_anm_cnf(Pst *pst, const BiccReadPrim_union *prm_ptr);
|
|
typedef int f_bicc_setup_con_cnf(Pst *pst, const BiccReadPrim_union *prm_ptr);
|
|
typedef int f_bicc_release_ind(Pst *pst, const BiccReadPrim_union *prm_ptr);
|
|
typedef int f_bicc_release_cnf(Pst *pst, const BiccReadPrim_union *prm_ptr);
|
|
typedef int f_bicc_alert_ind(Pst *pst, const BiccReadPrim_union *prm_ptr);
|
|
typedef int f_bicc_info_ind(Pst *pst, const BiccReadPrim_union *prm_ptr);
|
|
typedef int f_bicc_prog_ind(Pst *pst, const BiccReadPrim_union *prm_ptr);
|
|
typedef int f_bicc_suspend_ind(Pst *pst, const BiccReadPrim_union *prm_ptr);
|
|
typedef int f_bicc_resume_ind(Pst *pst, const BiccReadPrim_union *prm_ptr);
|
|
typedef int f_bicc_reset_ind(Pst *pst, const BiccReadPrim_union *prm_ptr);
|
|
typedef int f_bicc_reset_cnf(Pst *pst, const BiccReadPrim_union *prm_ptr);
|
|
typedef int f_bicc_apm_ind(Pst *pst, const BiccReadPrim_union *prm_ptr);
|
|
typedef int f_bicc_reattempt_ind(Pst *pst, const BiccReadPrim_union *prm_ptr);
|
|
typedef int f_bicc_failure_ind(Pst *pst, const BiccReadPrim_union *prm_ptr);
|
|
typedef int f_bicc_block_ind(Pst *pst, const BiccReadPrim_union *prm_ptr);
|
|
typedef int f_bicc_block_cnf(Pst *pst, const BiccReadPrim_union *prm_ptr);
|
|
typedef int f_bicc_unblock_ind(Pst *pst, const BiccReadPrim_union *prm_ptr);
|
|
typedef int f_bicc_unblock_cnf(Pst *pst, const BiccReadPrim_union *prm_ptr);
|
|
|
|
typedef struct bicc_eventhandle_struct
|
|
{
|
|
f_bicc_setup_ind *h_bicc_setup_ind;
|
|
f_bicc_setup_anm_cnf *h_bicc_setup_anm_cnf;
|
|
f_bicc_setup_con_cnf *h_bicc_setup_con_cnf;
|
|
f_bicc_release_ind *h_bicc_release_ind;
|
|
f_bicc_release_cnf *h_bicc_release_cnf;
|
|
f_bicc_alert_ind *h_bicc_alert_ind;
|
|
f_bicc_info_ind *h_bicc_info_ind;
|
|
f_bicc_prog_ind *h_bicc_prog_ind;
|
|
f_bicc_suspend_ind *h_bicc_suspend_ind;
|
|
f_bicc_resume_ind *h_bicc_resume_ind;
|
|
f_bicc_block_ind *h_bicc_block_ind;
|
|
f_bicc_block_cnf *h_bicc_block_cnf;
|
|
f_bicc_unblock_ind *h_bicc_unblock_ind;
|
|
f_bicc_unblock_cnf *h_bicc_unblock_cnf;
|
|
f_bicc_reset_ind *h_bicc_reset_ind;
|
|
f_bicc_reset_cnf *h_bicc_reset_cnf;
|
|
f_bicc_apm_ind *h_bicc_apm_ind;
|
|
f_bicc_reattempt_ind *h_bicc_reattempt_ind;
|
|
f_bicc_failure_ind *h_bicc_failure_ind;
|
|
|
|
}BICC_EventHandle_struct;
|
|
|
|
typedef struct _bicc_sap_attrib_
|
|
{
|
|
BICC_EventHandle_struct event_handle;
|
|
}bicc_sap_sttrib_;
|
|
|
|
typedef enum _BICC_network_id
|
|
{
|
|
SI_INTERNATIONAL = 0,
|
|
SI_INTERNATIONAL_SPARE = 1,
|
|
SI_NATIONAL = 2,
|
|
SI_NATIONAL_SPARE = 3,
|
|
|
|
}SI_Netwrok_ID;
|
|
|
|
typedef struct bicc_cic_state
|
|
{
|
|
u8 call_state;
|
|
u8 sus_state; //suspend state, remote hold? local hold?
|
|
u8 blo_state; //block state, remote block? local hold?
|
|
}BICC_CIC_state;
|
|
|
|
typedef struct bicc_fsm_state
|
|
{
|
|
u8 cpc_state;
|
|
u8 mgbs_state;
|
|
u8 mgbr_state;
|
|
u8 crs_state;
|
|
u8 crr_state;
|
|
u8 cgrs_state;
|
|
u8 cgrr_state;
|
|
}BICC_Fsm_state;
|
|
|
|
typedef struct bicc_port_struct
|
|
{
|
|
u8 used_flag;
|
|
u8 trace_flag;
|
|
u32 w_time;
|
|
u32 su_proc_id;
|
|
u8 sprc_cmd;
|
|
u8 primitive_cmd;
|
|
u8 internal_cmd;
|
|
BICC_Fsm_state fsm_state;
|
|
BICC_CIC_state cic_state;
|
|
up_message_2 s_mtp_msg; //message send to mtp3
|
|
}BICC_Port_struct;
|
|
|
|
extern up_message_2 r_mtp_msg; //message receive from mtp3
|
|
|
|
typedef struct BiccDmp_struct {
|
|
// If DMP is active, circuit 0-127 is according to proccessor 0, circuit 128-255 is accroding to proccessor 1 //
|
|
u8 active;
|
|
u8 processor_id;
|
|
u32 remote_ip;
|
|
} BiccDmp_struct;
|
|
|
|
|
|
/**********************
|
|
***upper layer interface***
|
|
***********************
|
|
*/
|
|
|
|
extern int BICC_con_req(Pst *pst, BiccSetup_Req *ptr); //iam //Connection establishment request
|
|
extern int BICC_con_rsp(Pst *pst, BiccSetup_Rsp *ptr); //anm,con //Connection establishment response
|
|
extern int BICC_rel_req(Pst *pst, BiccRel_Req *ptr); //Release request
|
|
extern int BICC_rel_rsp(Pst *pst, BiccRel_Rsp *ptr); //Release response
|
|
extern int BICC_alert_req(Pst *pst, BiccAlert_Req *ptr); //alert
|
|
extern int BICC_info_req(Pst *pst, BiccInfo_Req *ptr); //sam
|
|
extern int BICC_prog_req(Pst *pst, BiccCpg_Req *ptr); //progress
|
|
extern int BICC_apm_req(Pst *pst, BiccApm_Req *ptr);
|
|
extern int BICC_sus_req(Pst *pst, BiccSus_Req *ptr); //Call suspend request
|
|
extern int BICC_resm_req(Pst *pst, BiccRes_Req *ptr); //Call resume request
|
|
extern int BICC_block_req(Pst *pst, BiccCgb_Req *ptr); //block req
|
|
extern int BICC_block_rsp(Pst *pst, BiccCgb_Req *ptr);
|
|
extern int BICC_unblock_req(Pst *pst, BiccCgb_Req *ptr); //unblock req
|
|
extern int BICC_unblock_rsp(Pst *pst, BiccCgb_Req *ptr);
|
|
extern int BICC_reset_req(Pst *pst, BiccGrs_Req *ptr);
|
|
extern int BICC_reset_rsp(Pst *pst, BiccGrs_Rsp *ptr); //reset response
|
|
|
|
extern void BICC_EMPTY_OPTPAR(void *ptr, u8 prim);
|
|
|
|
extern BOOL bicc_trunk_reachable(u32 cg_id);
|
|
/*****************************
|
|
*** layer management interface***
|
|
******************************
|
|
*/
|
|
|
|
int BICC_active_dmp(u8 plat_id, u32 alter_id );
|
|
int BICC_deactive_dmp();
|
|
|
|
/***********************
|
|
*** lower layer interface***
|
|
************************
|
|
*/
|
|
void BICC_msdc_proc(u32 pid, up_message_2 *upmsg_ptr);
|
|
int BICC_mdsc_proc();
|
|
|
|
/******************************
|
|
*** system service interface***
|
|
*******************************
|
|
*/
|
|
|
|
void BICC_init(int interval_ms, int local_id);
|
|
void BICC_timer();
|
|
|
|
#endif
|
|
|