This commit is contained in:
zhangsz
2025-03-03 11:01:26 +08:00
parent 5f1710dc22
commit dae6fc93f7
1057 changed files with 519829 additions and 0 deletions

View File

@@ -0,0 +1,172 @@
#include "../../../iptrans/src/include/iptrans.h"
#ifdef _INCLUDE_M2UA
#include "../../../m2ua/src/include/m2ua.h"
#endif
#ifndef _MTP3_HEAD_FILE
#define _MTP3_HEAD_FILE
#define _up_message up_message
#define MAX_SS7_MSG_LEN 400 //272
typedef struct up_message{
long dest_ip;
long dpc;
long opc;
BYTE cic[2];
WORD link;
BYTE sio;
// BYTE len;/* len not include itself */
WORD len;//long message
BYTE msgList[MAX_SS7_MSG_LEN];
}up_message;
typedef struct up_message_2{
long dest_ip;
long dpc;
long opc;
BYTE cic[4];
WORD link;
BYTE sio; // 13 for BICC
// BYTE len;/* len not include itself */
WORD len;//long message
BYTE msgList[MAX_SS7_MSG_LEN];
}up_message_2;
typedef struct up_buffer /* user part buffer. user part:telephone user part,
isdn user part, and sccp part */
{
BYTE RSub; /* subscript of array msgList for reader */
BYTE WSub; /* subscript of array msgList for writer */
up_message msgNum[256];/* this buffer can storge up to 256
messages */
}up_buffer;
typedef struct up_buffer_2 /* user part buffer. user part:telephone user part,
isdn user part, and sccp part */
{
BYTE RSub; /* subscript of array msgList for reader */
BYTE WSub; /* subscript of array msgList for writer */
up_message_2 msgNum[256];/* this buffer can storge up to 256
messages */
}up_buffer_2;
#define _tup_shm tup_shm
typedef struct tup_shm {
up_buffer TM_Buf;
up_buffer MT_Buf;
} tup_shm;
#define _isup_shm isup_shm
typedef struct isup_shm {
up_buffer IM_Buf;
up_buffer MI_Buf;
} isup_shm;
#define _bicc_shm bicc_shm
typedef struct bicc_shm {
up_buffer_2 IM_Buf;
up_buffer_2 MI_Buf;
} bicc_shm;
#define _sccp_shm sccp_shm
typedef struct sccp_shm {
up_buffer SM_Buf;
up_buffer MS_Buf;
} sccp_shm;
typedef struct iprt1
{
BYTE pad[20];// __attribute__((packed));
message_list io_msg __attribute__((packed));
}iprt1;
typedef struct mtp_primitive
{
long pc;
BYTE nw_indicator;
BYTE availability;
}mtp_primitive;
typedef struct primitive_to_tup
{
mtp_primitive primitive[16];
BYTE WSub;
BYTE RSub;
}primitive_to_tup;
typedef struct primitive_to_isup
{
mtp_primitive primitive[16];
BYTE WSub;
BYTE RSub;
}primitive_to_isup;
typedef struct primitive_to_bicc
{
mtp_primitive primitive[16];
BYTE WSub;
BYTE RSub;
}primitive_to_bicc;
typedef struct primitive_to_sccp
{
mtp_primitive primitive[16];
BYTE WSub;
BYTE RSub;
}primitive_to_sccp;
typedef struct mtp3_routing_result
{
WORD tupMsgOutLink[256];
WORD isupMsgOutLink[256];
WORD biccMsgOutLink[256];
WORD sccpMsgOutLink[256];
}mtp3_routing_result;
#define MTP3DB_CMD 0
#define MTP3DB_SNMMSG 1
#define MTP3DB_SCCPMSG 2
#define MTP3DB_TUPMSG 3
#define MTP3DB_ISUPMSG 4
#define MTP3DB_ERROR 5
#define MTP3DB_EVENT 6
#define MTP3DB_ALLLKON 7
#define MTP3DB_PFHB 8// platform heartbeat
#define MTP3DB_APP_APP_MSG 9// msg from app to app
#define MTP3DB_PRIMITIVE_MSG 10// msg from MTP3 to MTP2
#define MTP3DB_BICCMSG 11
void mtp_shm_init(WORD moduleid_systemid, DWORD localip, DWORD peerip);
//moduleid = 8/9/11 vss/mss/aas
//void iptrans_init();
void mtp3_proc();
int tup_to_mtp3(up_message *msgptr);
int isup_to_mtp3(up_message *msgptr);
int bicc_to_mtp3(up_message_2 *msgptr);
int sccp_to_mtp3(up_message *msgptr);
int sccp_redirect(up_message *msgptr);
int bicc_redirect(up_message_2 *msgptr);
int isup_redirect(up_message *msgptr);
int tup_GetMsg(up_message *msgptr);
int isup_GetMsg(up_message *msgptr);
int bicc_GetMsg(up_message_2 *msgptr);
int sccp_GetMsg(up_message *msgptr);
int sccp_get_SPstate(mtp_primitive *ptr);
int isup_get_SPstate(mtp_primitive *ptr);
int bicc_get_SPstate(mtp_primitive *ptr);
int tup_get_SPstate(mtp_primitive *ptr);
BYTE *spc_to_acn(BYTE netID,ulong spc);
BYTE mtp3_ansiFlag(BYTE netID);
BYTE *check_MTP3LinkType();
BYTE *check_MTP3LinkL2State();
void MTP3_activate(ulong ip);
void MTP3_deactivate(ulong ip);
void MTP3_Enable_SubSystem(BYTE SubSystem);
void MTP3_Disable_SubSystem(BYTE SubSystem);
void mtp3_init_serial(char *Serial);
int mtp3_create_opc(BYTE nw, ulong opc);
int mtp3_delete_opc(BYTE nw, ulong opc);
int check_m3ua_rc_verify(DWORD rc, WORD link);
BYTE mtp3_check_dpc_equal_to_opc(BYTE nw, ulong dpc);
#endif

View File

@@ -0,0 +1,28 @@
#ifndef _MTP3LITE_H
#define _MTP3LITE_H
#include "mtp3lite_pub.h"
typedef struct _mtp3lite_lk
{
int connfd;
int cliSockfd;
WORD remote_port;
WORD local_inactive;
WORD local_reconnect;
WORD remote_inactive;
BYTE remote_inactive_timeouts;
WORD init_guard_timer;
}mtp3lite_lk;
void mtp3lite_init(void);
void mtp3lite_timer(void);
int put_mtp3lite_msg(BYTE *msg_ptr);
#define MTP3LITE_TCP_FAILURE 16
#define MTP3LITE_INACTIVITY_TIMEOUT 17
#define MTP3LITE_MSG_BUF_SIZE_PER_LINK 1024
#endif

View File

@@ -0,0 +1,53 @@
#ifndef _MTP3LITE_PUB__H
#define _MTP3LITE_PUB__H
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <errno.h>
#include <string.h>
#include <ctype.h>
#include <math.h>
#include <memory.h>
#include <netdb.h>
#include <setjmp.h>
#include <unistd.h>
#include <signal.h>
#include <time.h>
#include <syslog.h>
#include <termio.h>
#include <fcntl.h>
#include <net/if.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <sys/ioctl.h>
//#include <sys/io.h>
#include <sys/poll.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/sem.h>
#include <sys/msg.h>
#include <sys/time.h>
#include <sys/timeb.h>
#include <sys/socket.h>
#include <sys/select.h>
#ifndef _T_BYTE
#define _T_BYTE
typedef unsigned char BYTE;
#endif
#ifndef _T_WORD
#define _T_WORD
typedef unsigned short WORD;
#endif
#ifndef _T_DWORD
#define _T_DWORD
typedef unsigned int DWORD;
#endif
#endif

View File

@@ -0,0 +1,579 @@
#ifndef _T_ULL
#define _T_ULL
typedef unsigned long long ull;
#endif
#define SIGNAL_TFA 0x54
#define SIGNAL_TFP 0x14
#define SIGNAL_TRA 0x17
#define SIGNAL_RST 0x15
#define SIGNAL_COO 0x11
#define SIGNAL_COA 0x21
#define SIGNAL_CBD 0x51
#define SIGNAL_CBA 0x61
#define SIGNAL_ECO 0x12
#define SIGNAL_ECA 0x22
#define SIGNAL_LIN 0x16
#define SIGNAL_LUN 0x26
#define SIGNAL_LIA 0x36
#define SIGNAL_LUA 0x46
#define SIGNAL_LID 0x56
#define SIGNAL_LFU 0x66
#define SIGNAL_LLT 0x76
#define SIGNAL_LRT 0x86
#define SIGNAL_SLTM 0x11
#define SIGNAL_SLTA 0x21
#define MTP3_ISUP_IAM 0x01
#define MTP3_ISUP_ACM 0x06
#define MTP3_ISUP_CPG 0x2c
#define MTP3_ISUP_ANM 0x09
#define MTP3_ISUP_REL 0x0c
#define MTP3_ISUP_RLC 0x10
#define MTP3_ISUP_UBL 0x14
#define MTP3_ISUP_UBA 0x16
#define MTP3_ISUP_GRA 0x19
#define MTP3_TUP_IAM 0x11
#define MTP3_TUP_IAI 0x21
#define MTP3_TUP_SAM 0x31
#define MTP3_TUP_SAO 0x41
#define MTP3_TUP_GSM 0x12
#define MTP3_TUP_COT 0x32
/*#define MTP3_TUP_CCF '0x42',*/
#define MTP3_TUP_GRQ 0x13
#define MTP3_TUP_ACM 0x14
#define MTP3_TUP_SEC 0x15
#define MTP3_TUP_CGC 0x25
#define MTP3_TUP_CFL 0x55
#define MTP3_TUP_SSB 0x65
/*#define MTP3_TUP_SLB 0x1E,
#define MTP3_TUP_STB 0x2E,*/
#define MTP3_TUP_UNN 0x75
#define MTP3_TUP_LOS 0x85
#define MTP3_TUP_SST 0x95
#define MTP3_TUP_ACB 0xa5
#define MTP3_TUP_DPN 0xb5
#define MTP3_TUP_ANU 0x06
#define MTP3_TUP_ANC 0x16
#define MTP3_TUP_ANN 0x26
#define MTP3_TUP_CBK 0x36
#define MTP3_TUP_CLF 0x46
#define MTP3_TUP_CCL 0x76
#define MTP3_TUP_RLG 0x17
#define MTP3_TUP_BLO 0x27
#define MTP3_TUP_BLA 0x37
#define MTP3_TUP_UBL 0x47
#define MTP3_TUP_UBA 0x57
#define MTP3_TUP_ADI 0x45
#define MTP3_SCCP_CR 1
#define MTP3_SCCP_CC 2
#define MTP3_SCCP_CREF 3
#define MTP3_SCCP_RLSD 4
#define MTP3_SCCP_RLC 5
#define MTP3_SCCP_DT1 6
#define MTP3_SCCP_DT2 7
#define MTP3_SCCP_AK 8
#define MTP3_SCCP_UDT 9
#define MTP3_SCCP_UDTS 10
#define MTP3_SCCP_ED 11
#define MTP3_SCCP_EA 12
#define MTP3_SCCP_RSR 13
#define MTP3_SCCP_RSC 14
#define MTP3_SCCP_ERR 15
#define MTP3_SCCP_IT 16
#define MTP3_SCCP_XUDT 17
#define MTP3_SCCP_XUDTS 18
#define MTP3_SCCP_LUDT 19
#define MTP3_SCCP_LUDTS 20
#define BETWEEN_LS 0x00
#define WITHIN_LS 0x01
#define NORMAL_LS 0x00
#define ALTERNATIVE_LS 0x01
#define NO_ROUTE 0x02
/**************************************TCOC INPUT**************************************/
/* TCOC INPUT FROM L2 */
#define TCOC_L2_BSNT 1
#define TCOC_L2_BSNT_CANNOT_RECOVER 2
#define TCOC_L2_RETRIEVED_MSG 3
#define TCOC_L2_RETRIEVAL_CMP 4
#define TCOC_L2_RETRIEVAL_NOT_POSSIBLE 5
/* TCOC INPUT FROM TSRC */
#define TCOC_ALTERATIVE_ROUTE_DT 1
/* TCOC INPUT FROM STM */
#define TCOC_LINK_UNAVAILABLE 1
#define TCOC_LINK_AVAILABLE 2
#define TCOC_TLAC_COO_COMMAND 3
#define TCOC_TLAC_ECO_COMMAND 4
/* TCOC INPUT FROM HMDT */
#define TCOC_HMDT_COA_COMMAND 1
#define TCOC_HMDT_ECA_COMMAND 2
/* TCOC INPUT FROM L2 */
//#define TCOC_L2_RETRIEVED_MSG 1
#define TCOC_L2_RETRIEVE_CMP 254
#define TCOC_L2_RETRIEVE_NOT_POSSIBLE 255
/**************************************TCOC INPUT**************************************/
/**************************************TCBC INPUT**************************************/
#define TCBC_LINK_UNAVAILABLE 1
#define TCBC_LINK_AVAILABLE 2
#define TCBC_HMDT_CBD_COMMAND 3
#define TCBC_HMDT_CBA_COMMAND 4
/* TCBC INPUT FROM TSRC */
#define TCBC_ALTERATIVE_ROUTE_DT 1
/**************************************TCBC INPUT**************************************/
/**************************************TLAC INPUT**************************************/
/* TLAC INPUT FROM HMDT*/
#define TLAC_HMDT_INHIBIT_SIGLINK 1
#define TLAC_HMDT_UINHIBIT_SIGLINK 2
#define TLAC_HMDT_INHIBIT_ACK 3
#define TLAC_HMDT_UNINHIBIT_ACK 4
#define TLAC_HMDT_INHIBIT_DENIED 5
#define TLAC_HMDT_FORCE_UNINHIBIT_SIGLINK 6
#define TLAC_HMDT_CHANGEOVER_ORDER 7
#define TLAC_HMDT_ECHANGEOVER_ORDER 8
#define TLAC_HMDT_LOCAL_INHIBIT_TEST 9
#define TLAC_HMDT_REMOTE_INHIBIT_TEST 10
/* TLAC INPUT FROM MGMT */
#define TLAC_MGMT_INHIBIT_SIGLINK 1
#define TLAC_MGMT_UINHIBIT_SIGLINK 2
/* TLAC INPUT FROM SLM */
#define TLAC_LSAC_SIGLINK_FAILED 1
#define TLAC_LSAC_LINK_IN_SERVICE 2
#define TLAC_LSAC_REMOTE_PROCESSOR_OUTAGE 3
#define TLAC_LSAC_REMOTE_PROCESSOR_RECOVER 4
/* TLAC INPUT FROM STM */
#define TLAC_TCBC_CHANGEBACK_TERMINATED 1
#define TLAC_TCOC_CHANGEOVER_EXECUTED 2
#define TLAC_TCOC_CHANGEOVER_NOT_REQ 3
#define TLAC_LOCAL_INHIBIT_ALLOWED 4
#define TLAC_REMOTE_INHIBIT_ALLOWED 5
#define TLAC_LOCAL_INHIBIT_DENIED 6
#define TLAC_REMOTE_INHIBIT_DENIED 7
#define TLAC_UINHIBIT_SIGLINK_FROM_TSRC 8
#define TLAC_UNINHIBIT_NOT_POSSIBLE 9
#define TLAC_UNINHIBIT_POSSIBLE 10
#define TLAC_ADJACENT_SP_RESTARTING 11
#define TLAC_RESTART_BEGINS 12
#define TLAC_RESTART_ENDS 13
#define TLAC_ADJACENT_SP_RESTART_ENDS 14
/* TLAC INPUT FROM TIMER CONTROL */
#define TLAC_T12_EXPIRED 1
#define TLAC_T13_EXPIRED 2
#define TLAC_T14_EXPIRED 3
#define TLAC_T22_EXPIRED 4
#define TLAC_T23_EXPIRED 5
/**************************************TLAC INPUT**************************************/
/**************************************TSRC INPUT**************************************/
/* TSRC_INPUT_FROM_TCOC */
#define TSRC_TCOC_ALTERNATIVE_ROUTING_DATA_REQUEST 1
#define TSRC_TCOC_ACCESS_DATA_REQ 2
#define TSRC_TCOC_CHANGEOVER_EXECUTED 3
#define TSRC_TCOC_CHANGEOVER_NOT_REQ 4
/* TSRC_INPUT_FROM_TCBC */
#define TSRC_TCBC_ALTERNATIVE_ROUTING_DATA_REQUEST 1
#define TSRC_PROCEDURE_TERMINATED 2
/*TSRC_INPUT_FROM_STM*/
#define TSRC_TFRC_ALTERNATIVE_ROUTING_DATA_REQUEST 1
#define TSRC_TCRC_ALTERNATIVE_ROUTING_DATA_REQUEST 2
#define TSRC_RESTART_BEGINS 3
#define TSRC_RESTART_ENDS 4
#define TSRC_TRAFFIC_RESTART_ALLOWED 5
#define TSRC_SENDING_STATUS_PHASE 6
/*TSRC_INPUT_FROM_SRM*/
#define TSRC_RTAC_ROUTE_AVAILABLE 1
#define TSRC_RTPC_ROUTE_UNAVAILABLE 2
/* TSRC_INPUT_FROM_TLAC */
#define TSRC_TLAC_LINK_UNAVAILABLE 1
#define TSRC_TLAC_LINK_AVAILABLE 2
#define TSRC_TLAC_LOCAL_INHIBIT_REQ 3
#define TSRC_TLAC_REMOTE_INHIBIT_REQ 4
#define TSRC_TLAC_LINK_INHIBITED 5
#define TSRC_TLAC_CANCEL_LINK_INHIBITED 6
#define TSRC_TLAC_UNINHIBIT_REQ 7
/**************************************TSRC INPUT**************************************/
/**************************************TFRC INPUT**************************************/
#define TFRC_SIG_RT_UNAVAILABLE 0
#define TFRC_SIG_RT_AVAILABLE 1
#define TFRC_ALTERNATIVE_RT_DT 2
/**************************************TFRC INPUT**************************************/
/**************************************TCRC INPUT**************************************/
#define TCRC_SIG_RT_AVAILABLE 0
#define TCRC_ALTERNATIVE_RT_DT 1
/**************************************TCRC INPUT**************************************/
/**************************************TPRC INPUT**************************************/
#define TPRC_ADJACENT_SP_RESTARTING 1
#define TPRC_TRA_MSG 2
#define TPRC_RTPC_TFP_SENT 3
/**************************************TPRC INPUT ABOUT dst**************************************/
#define TPRC_LINK_AVAILABLE 1
#define TPRC_LINK_UNAVAILABLE 2
#define TPRC_SP_RESTART_INDICATION 3
#define TPRC_STATUS_SENT 4
/**************************************TPRC INPUT**************************************/
/**************************************RTPC INPUT**************************************/
#define RTPC_MSGREV_FOR_INACCESS_SP 1
#define RTPC_RSRT_SEND_TFP_MSG 2
#define RTPC_TSRC_SEND_TFP_MSG 3
#define RTPC_DEST_INACCESSIBLE 4
#define RTPC_TFP_MSG 5
#define RTPC_CTRL_RERT_TERMINATED 6
#define RTPC_CONTROLLED_RERT 7
#define RTPC_RESTART_BEGINS 8
#define RTPC_RESTART_ENDS 9
/**************************************RTPC INPUT**************************************/
/**************************************RTAC INPUT**************************************/
#define RTAC_TFA_MSG 1
#define RTAC_DEST_ACCESSIBLE 2
#define RTAC_STP_NOLONGER_FOR_DEST 3
#define RTAC_SEND_TFA_MSG 4
#define RTAC_FORCED_RERT 5
#define RTAC_FORCED_RERT_TERMINATED 6
#define RTAC_FORCED_RERT_NOT_REQ 7
#define RTAC_RESTART_BEGINS 8
#define RTAC_RESTART_ENDS 9
/**************************************RTAC INPUT**************************************/
#define RSRT_RTPC_ROUTE_SET_TEST 1
#define RSRT_TSRC_ROUTE_SET_TEST 2
#define RSRT_RTAC_ROUTE_AVAILABLE 3
#define RSRT_IDLE_STATE 0
#define RSRT_WAIT_STATE 1
/**************************************LSAC INPUT**************************************/
/* LSAC INPUT FROM L2*/
#define LSAC_L2_IN_SERVICE 1
#define LSAC_L2_OUT_OF_SERVICE 2
#define LSAC_L2_REMOTE_PROCESSOR_RECOV 3
#define LSAC_L2_REMOTE_PROCESSOR_OUTAGE 4
/* LSAC INPUT FROM SLTC */
#define LSAC_SLTC_SLT_SUCCESSFUL 1
#define LSAC_SLTC_SLT_FAILED 2
/* LSAC INPUT FROM TCOC */
#define LSAC_TCOC_STM_READY 1
#define LSAC_TCOC_STOP_L2 2
/* LSAC INPUT FROM STM */
#define LSAC_TLAC_CHANGEOVER_ORDER_RECEIVED 1
/* LSAC INPUT FROM SLM */
#define LSAC_ACTIVATE_LINK_FROM_LLSC 1
#define LSAC_DEACTIVATE_LINK_FROM_LLSC 2
#define LSAC_EMERGENCY 3
#define LSAC_EMERGENCY_CEASES 4
/* LSAC INPUT FROM MGMT */
#define LSAC_MGMT_ACTIVATE_LINK 1
#define LSAC_MGMT_DEACTIVATE_LINK 0
/**************************************LSAC INPUT**************************************/
#define LLSC_MGMT_ACTIVATE_LINKSET 1
#define LLSC_MGMT_DEACTIVATE_LINKSET 2
#define LLSC_TPRC_RESTART_BEGINS 3
/* MGMT INPUT */
#define MGMT_TLAC_LINK_INHIBITED 1
#define MGMT_TLAC_LINK_UNINHIBITED 2
#define MGMT_UNINHIBIT_NOT_POSSIBLE 3
#define MGMT_INHIBIT_DENIED 4
#define TCOC_IDLE_STATE 0
#define TCOC_WAIT01_STATE 1
#define TCOC_WAIT02_STATE 2
#define TCOC_WAIT05_STATE 3
#define TCOC_WAIT06_STATE 4
#define TCOC_WAIT07_STATE 5
#define TCOC_WAITACK_STATE 6
#define TCOC_RETRIEVING_STATE 7
#define TCOC_SEND_BUFMSG_STATE 8
#define TLAC_UNAVAILABLE_STATE 0
#define TLAC_AVAILABLE_STATE 1
#define TLAC_SP_RESTARTING_STATE 2
#define LSAC_INACTIVE_STATE 0
#define LSAC_RESTORING_STATE 1
#define LSAC_ACTIVE_STATE 2
#define LSAC_WAIT_STATE 3
#define LSAC_FAILED_STATE 4
#define TSRC_IDLE_STATE 0
#define TSRC_WAIT01_STATE 1
#define TSRC_WAIT02_STATE 2
#define TSRC_WAIT03_STATE 3
#define TSRC_WAIT04_STATE 4
#define TSRC_WAIT05_STATE 5
#define TCBC_IDLE_STATE 0
#define TCBC_WAIT_FOR_ROUTING_DATA_STATE 1
#define TCBC_TCTRL_DIVERSION_STATE 2
#define TCBC_FIRST_ATTEMPT_STATE 3
#define TCBC_SECOND_ATTEMPT_STATE 4
#define RTPC_IDLE_STATE 0
#define RTPC_WAIT_STATE 1
#define TPRC_IDLE_STATE 0
#define TPRC_WAIT01_STATE 1
#define TPRC_WAIT02_STATE 2
#define TPRC_WAIT03_STATE 3
#define TPRC_RESTART_ENDS_STATE 4
#define SLTC_IDLE_STATE 0
#define SLTC_FIRST_TRY_STATE 1
#define SLTC_SECOND_TRY_STATE 2
#define SLTC_THIRD_TRY_STATE 3
#define SLTC_RUNNING_STATE 4
#define SLTC_START 1
#define SLTA_MSG 2
#define SLTC_SECOND_TRY 3
#define SLTC_STOP 4
#ifndef IDLE
#define IDLE 0xee
#endif
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
#define COMMAND_START 1
#define COMMAND_STOP 0
#define TIMER_START 1
#define TIMER_STOP 2
#define SP_ACCESSIBLE 1
#define SP_INACCESSIBLE 0
//#define LS_UNAVAILABLE 2
#define LOCAL_INHIBIT_REQ 0
#define REMOTE_INHIBIT_REQ 1
#define UNAVAILABLE 0
#define AVAILABLE 1
#define INHIBITED 2
#define LOCAL_INHIBIT_REQ 0
#define REMOTE_INHIBIT_REQ 1
#define MTP3_DEBUG_ID 1
//#define MTP3_OID {1,3,6,1,4,1,1373,1,3,2,2,2}
#define MTP3_OID {1,3,6,1,4,1,1373,2,3,2,2}
#define MTP3_OID_LEN 11
//#define MTP3_OMC_OID {1,3,6,1,4,1,1373,1,4}
#define MTP3_OMC_OID {1,3,6,1,4,1,1373,2,4}
#define MTP3_OMC_OID_LEN 9
//#define PLATFORM_HB_OID {1,3,6,1,4,1,1373,1,3,2,1}
#define PLATFORM_HB_OID {1,3,6,1,4,1,1373,2,3,2}
#define PLATFORM_HB_LEN 10
#define MTP2_HB_OID {1,3,6,1,4,1,1373,1,3,1,1,3,4}
#define MTP2_HBOID_LEN 13
#define MTP2_ACTIVE_LINK 1
#define MTP2_DEACTIVE_LINK 2
#define MTP2_STOP_L2 3
#define MTP2_EMERGEN_ALIGNMENT 4
#define MTP2_RETRIEVE 5
#define MTP3_M2UA_DISABLE 6
#define MTP3_M2UA_ENABLE 7
#define MTP3_M3UA_ENABLE 7
#define MTP3_M3UA_DISABLE 6
#define ROUTE_AVAILABLE 0
#define ROUTE_UNAVAILABLE 1
#define MTP_MAX_ASCIIOUT_LEN 2048
#define DISPLAY_SNM_MESSAGE 0
#define DISPLAY_TM_MESSAGE 1
#define DISPLAY_SCCP_MESSAGE 3
#define DISPLAY_TUP_MESSAGE 4
#define DISPLAY_ISUP_MESSAGE 5
#define DISPLAY_MTP3_ERROR_LOG 6
#define MTP3_MSGLOG_ON 1
#define MTP3_MSGLOG_OFF 0
#define SNM_SIO 0
#define TM_SIO 1/* T+M */
#define SCCP_SIO 3
#define TUP_SIO 4
#define ISUP_SIO 5
#define BICC_SIO 13
#define MTP2_STATE_IDLE 0
#define MTP2_STATE_STOP 1
#define MTP2_STATE_ASSIGN 2
#define MTP2_STATE_READY 3
#define MTP2_STATE_NOT_READY 4
#define MTP2_STATE_WORKING 5
#define MTP2_STATE_ERROR 6
#define MTP2_STATE_WAITING 7
#define MTP2_STATE_STATE_CONGEST 8
#define MTP3_TO_USERPART 0
#define USERPART_TO_MTP3 1
#define MTP_MSG_UP 0
#define MTP_MSG_DOWN 1
#define MTP_MSG_STP 2
#define MTP_MSG_OTHER_SERVER 3
#define MTP_SNM_MSG 4
#define MTP_TO_LITE 5
#define MTP_FROM_LITE 6
#define SS7_PORT 4950
#define M2UA_PORT 2904
#define MTP3_MULTICAST_PORT 4969
#define MTP3_IPTX_MSG 0
#define MTP3_UP_MSG 1
#define E1CARD_BASE_IP 0x010012AC
#define E1CARD_BASE_IP_MASK 0xff00ffff
#define PARA_CONFIGURED 1
#define PARA_NOT_CONFIGURED 0
#define LS_AVAILABLE 0
#define LS_UNAVAILABLE 1
#define NLS_AVAILABLE 0
#define ALS_AVAILABLE 0
#define NLS_UNAVAILABLE 2
#define ALS_UNAVAILABLE 2
#define UPDATE_NLS 0
#define UPDATE_ALS 1
#define LINK_TO_IP(link) (link >> 3) << 16 | 0x010012AC
#define MAX_LS_DPC 128
#define MAX_LS_DPC_ADD1 129
#define MAX_LS_NUM 128
#define MTP3_14BIT_PC 14
#define MTP3_24BIT_PC 24
#define MSG_FROM_MTP2 0
#define MSG_FROM_MTP3 1
#define MAX_ACN_NUM 36
#define MAX_MTP3_NUM 64
#define MTP3_LINK_COMPONENT 23
#define MTP3_LINKSET_COMPONENT 279
#define MTP3_SG_COMPONENT 264
#define MTP3_VERSION {1, 0, 02}
//9,0,2 change ss7 format to "link-0, len -1-2, sio-3 "
//9,0,3 support m3ua msg
#define MTP3_COMPONENT_ID 1
#define ALARM_LINK_UNAVAILABLE 0
#define ALARM_LINK_AVAILABLE 1
#define ALARM_LINK_INHIBIT 2
#define ALARM_LS_UNAVAILABLE 3
#define ALARM_LS_AVAILABLE 4
#define ALARM_LS_INHIBIT 5
#define NORMAL_HEARTBEAT 6
#define M2UAALARM_SCTP_Failure 1
#define M2UAALARM_SG_Maintenance 2
#define M2UAALARM_Remote_MTP2_down 3
#define M2UAALARM_Local_MTP3_Request_Link_Down 4
#define M2UAALARM_Local_SGLink_Maintenance 5
#define M2UAALARM_SCCPLite_TCP_Failure 16
#define M2UAALARM_SCCPLite_Inactivity_Timeout 17
#define MTP3ALARM_LINK_TEST_FAILED 1
#define MTP3ALARM_LINK_COO_RECEIVED 2
#define MTP3ALARM_LINK_CHANGE_OVER 3
#define MTP3ALARM_LINK_MGMT_REQUEST 4
#define MTP3ALARM_LINK_CB_TO_NMTP3 5
#define MTP3ALARM_LINK_LOCAL_INHIBITED 6
#define MTP3ALARM_LINK_REMOTE_INHIBITED 7
//#define MTP3_HB_LEN 134
#define MTP3_HB_LEN 422
#define MTP3_SERNUM_LEN 4//4 bytes
typedef enum
{
LKTYPE_NONE_SIGTRAN = 0,
LKTYPE_SIGTRAN = 1,
LKTYPE_MTP3_LITE = 2,
LKTYPE_RESERVED1 = 3,
LKTYPE_M3UA = 4,
LKTYPE_RESERVED3 = 5,
LKTYPE_RESERVED4 = 6,
LKTYPE_RESERVED5 = 7,
}MTP3_LKTYPE_LIST;
typedef enum
{
MTP3_SUB_SNM = 0,
MTP3_SUB_STM = 1,
MTP3_SUB_STM2 = 2,
MTP3_SUB_SCCP = 3,
MTP3_SUB_TUP = 4,
MTP3_SUB_ISUP = 5,
MTP3_SUB_DUP1 = 6,
MTP3_SUB_DUP2 = 7,
MTP3_SUB_NONE2 = 8,
MTP3_SUB_BISUP = 9,
MTP3_SUB_SISUP = 10,
MTP3_SUB_NONE3 = 11,
MTP3_SUB_NONE4 = 12,
MTP3_SUB_BICC = 13
}MTP3_SUB_NAME;
#define MTP3_MAX_DYNAMIC_OPC_PER_NW 16
#define MAX_LK 1024
#define MAX_LK_INDEX 1023
#define MAX_ROUTE 1024
#define MAX_LS 512

View File

@@ -0,0 +1,159 @@
#if 0
WORD ls_slc[MAX_LS*16];
WORD ls_sls[MAX_LS*16];
WORD sls_to_link[MAX_LS*16];
/** link mark **/
BYTE link_available[MAX_LK];
BYTE link_unavailable[MAX_LK];
BYTE changeover_possible[MAX_LK];
BYTE retrieval_required[MAX_LK];
BYTE remote_bsnt_retrieved[MAX_LK];
BYTE changeback_in_progress[MAX_LK];
BYTE changeover_in_progress[MAX_LK];
BYTE changeback_required[MAX_LK];
BYTE changeover_required[MAX_LK];
BYTE emergency_changeover_order[MAX_LK];
BYTE changeover_order[MAX_LK];
BYTE changeover_completed[MAX_LK];
BYTE failed[MAX_LK];
BYTE blocked_by[MAX_LK];
BYTE local_blocked[MAX_LK];
BYTE remote_blocked[MAX_LK];
BYTE first_failure[MAX_LK];
BYTE changeover_select[MAX_LK];
BYTE changeback_select[MAX_LK];
BYTE co_msg_can_exchange[MAX_LK];
BYTE cb_msg_can_exchange[MAX_LK];
BYTE local_bsnt_retrievable[MAX_LK];
BYTE retrieved_bsnt[MAX_LK];
BYTE fsnt[MAX_LK];
BYTE fsnl[MAX_LK];
BYTE fsnc[MAX_LK];
BYTE bsnt[MAX_LK];
BYTE tcbc_route_change[MAX_LK];
BYTE command3[MAX_LK];
BYTE cbd_cbc_r[MAX_LK];
BYTE cba_cbc_r[MAX_LK];
WORD cbc_s[MAX_LK];
BYTE controlled_rerouting_in_progress[MAX_LK];
BYTE transfer_prohibited[MAX_LK];
BYTE own_sp_restarting;
BYTE link_remotely_inhibited[MAX_LK];
BYTE link_locally_inhibited[MAX_LK];
BYTE link_inhibited[MAX_LK];
BYTE local_inhibit_in_progress[MAX_LK];
BYTE uninhibit_in_progress[MAX_LK];
BYTE management_req[MAX_LK];
BYTE t12_expired_2nd_time[MAX_LK];
BYTE t13_expired_2nd_time[MAX_LK];
BYTE sending_phase_finished[MAX_LS];
WORD mtp3_timer[24];
BYTE sd_buf_h[256];
BYTE sd_buf_t[256];
MTP3Parameter *mtp3_para;
MTP3Parameter mtp3_para_init;
mtp mtp3;
mtp3_csta mtp3_measure;
measure_of_mtp3 *current_measure;
BYTE current_mtime;/* current measure time */
heartbeat_compoent_of_mtp3 mtp3_heartbeat;
/** debug **/
BYTE mtp_asciout_buf[2048];
char mtp_asciin_buf[80];
BYTE t1_delay_mtp3[MAX_LK];
BYTE t2_delay_mtp3[MAX_LK];
BYTE t3_delay_mtp3[MAX_LK];
BYTE t4_delay_mtp3[MAX_LK];
BYTE t5_delay_mtp3[MAX_LK];
BYTE t6_delay_mtp3[MAX_LK];
BYTE t7_delay_mtp3[MAX_LK];
BYTE t8_delay_mtp3[MAX_LK];
BYTE t9_delay_mtp3[MAX_LK];
BYTE t10_delay_mtp3[MAX_LK];
BYTE t11_delay_mtp3[MAX_LK];
BYTE t12_delay_mtp3[MAX_LK];
BYTE t13_delay_mtp3[MAX_LK];
BYTE t14_delay_mtp3[MAX_LK];
BYTE t15_delay_mtp3[MAX_LK];
BYTE t16_delay_mtp3[MAX_LK];
BYTE t17_delay_mtp3[MAX_LK];
BYTE t18_delay_mtp3;
BYTE t19_delay_mtp3;
BYTE t20_delay_mtp3;
BYTE t21_delay_mtp3[MAX_LK];
BYTE t22_delay_mtp3[MAX_LK];
BYTE t23_delay_mtp3[MAX_LK];
BYTE t24_delay_mtp3[MAX_LK];
BYTE sltc_t1_delay[MAX_LK];
BYTE sltc_t2_delay[MAX_LK];
BYTE mtp3_t21_flag[MAX_LS];
BYTE mtp3_t22_flag[MAX_LK];
BYTE mtp3_t23_flag[MAX_LK];
BYTE mtp3_t12_flag[MAX_LK];
BYTE mtp3_t13_flag[MAX_LK];
BYTE mtp3_t14_flag[MAX_LK];
BYTE srm_nw;
BYTE active_ls_num;
BYTE current_active_ls_num;
BYTE rv_TRA_num;
BYTE tprc_nw;
//BYTE taprc_loop[128];
BYTE taprc_loop[MAX_LS];
BYTE mtp_t1[256];
BYTE mtp_t2[256];
BYTE mtp_t3[256];
BYTE mtp_t4[256];
BYTE mtp_t5[256];
BYTE mtp_t7[256];
BYTE mtp_t12[256];
BYTE mtp_t13[256];
BYTE mtp_t14[256];
BYTE mtp_t17[256];
BYTE mtp_t22[256];
BYTE mtp_t23[256];
BYTE mtp_t24[256];
BYTE mtp2_flag_new[32];
BYTE mtp2_flag_old[32];
ulong mtp3_localip;
ulong mtp3_alterip;
WORD wx5[256];
BYTE debug_link[MAX_LK];
long mtp3_timestamp;
long mtp3_csta_p;
ulong mtp3_get_msg;
BYTE local_change_over[MAX_LK];
BYTE mtp2_buf_full[MAX_LK];
BYTE nld_cause_lkd[MAX_LK];
BYTE init_lsac_state[MAX_LK];
BYTE init_tlac_state[MAX_LK];
ulong TFAmsg_OPC;
WORD TFAmsg_SrcLk;
ulong TFPmsg_OPC;
WORD TFPmsg_SrcLk;
WORD sdTFP_Ls;
WORD sdTFA_Ls;
BYTE mtp2_module;
BYTE mtp2_systemid;
// mtp3 dynamic opc
mtp3_dynamic_opc mtp3_opc;
#endif

View File

@@ -0,0 +1,140 @@
extern WORD ls_slc[MAX_LS*16];
extern WORD ls_sls[MAX_LS*16];
extern WORD sls_to_link[MAX_LS*16];
/** link mark **/
extern BYTE link_available[MAX_LK];
extern BYTE changeover_possible[MAX_LK];
extern BYTE retrieval_required[MAX_LK];
extern BYTE remote_bsnt_retrieved[MAX_LK];
extern BYTE changeback_in_progress[MAX_LK];
extern BYTE changeover_in_progress[MAX_LK];
extern BYTE changeback_required[MAX_LK];
extern BYTE changeover_required[MAX_LK];
extern BYTE emergency_changeover_order[MAX_LK];
extern BYTE changeover_order[MAX_LK];
extern BYTE changeover_completed[MAX_LK];
extern BYTE failed[MAX_LK];
extern BYTE blocked_by[MAX_LK];
extern BYTE local_blocked[MAX_LK];
extern BYTE remote_blocked[MAX_LK];
extern BYTE first_failure[MAX_LK];
extern BYTE changeback_select[MAX_LK];
extern BYTE changeover_select[MAX_LK];
extern BYTE co_msg_can_exchange[MAX_LK];
extern BYTE cb_msg_can_exchange[MAX_LK];
extern BYTE local_bsnt_retrievable[MAX_LK];
extern BYTE retrieved_bsnt[MAX_LK];
extern BYTE fsnt[MAX_LK];
extern BYTE fsnl[MAX_LK];
extern BYTE fsnc[MAX_LK];
extern BYTE bsnt[MAX_LK];
extern BYTE tcbc_route_change[MAX_LK];
extern BYTE command3[MAX_LK];
extern BYTE cbd_cbc_r[MAX_LK];
extern BYTE cba_cbc_r[MAX_LK];
extern BYTE cbc_s[MAX_LK];
extern BYTE controlled_rerouting_in_progress[MAX_LK];
extern BYTE transfer_prohibited[MAX_LK];
extern BYTE own_sp_restarting;
extern BYTE link_remotely_inhibited[MAX_LK];
extern BYTE link_locally_inhibited[MAX_LK];
extern BYTE link_inhibited[MAX_LK];
extern BYTE local_inhibit_in_progress[MAX_LK];
extern BYTE uninhibit_in_progress[MAX_LK];
extern BYTE management_req[MAX_LK];
extern BYTE t12_expired_2nd_time[MAX_LK];
extern BYTE t13_expired_2nd_time[MAX_LK];
extern BYTE sending_phase_finished[MAX_LS];
extern WORD mtp3_timer[24];
extern BYTE sd_buf_h[256];
extern BYTE sd_buf_t[256];
extern MTP3Parameter *mtp3_para;
extern mtp mtp3;
extern mtp3_csta mtp3_measure;
extern measure_of_mtp3 *current_measure;
extern BYTE current_mtime;/* current measure time */
/** debug **/
extern BYTE mtp_asciout_buf[2048];
extern char mtp_asciin_buf[80];
extern BYTE t1_delay_mtp3[MAX_LK];
extern BYTE t2_delay_mtp3[MAX_LK];
extern BYTE t3_delay_mtp3[MAX_LK];
extern BYTE t4_delay_mtp3[MAX_LK];
extern BYTE t5_delay_mtp3[MAX_LK];
extern BYTE t6_delay_mtp3[MAX_LK];
extern BYTE t7_delay_mtp3[MAX_LK];
extern BYTE t8_delay_mtp3[MAX_LK];
extern BYTE t9_delay_mtp3[MAX_LK];
extern BYTE t10_delay_mtp3[MAX_LK];
extern BYTE t11_delay_mtp3[MAX_LK];
extern BYTE t12_delay_mtp3[MAX_LK];
extern BYTE t13_delay_mtp3[MAX_LK];
extern BYTE t14_delay_mtp3[MAX_LK];
extern BYTE t15_delay_mtp3[MAX_LK];
extern BYTE t16_delay_mtp3[MAX_LK];
extern BYTE t17_delay_mtp3[MAX_LK];
extern BYTE t18_delay_mtp3;
extern BYTE t19_delay_mtp3;
extern BYTE t20_delay_mtp3;
extern BYTE t21_delay_mtp3[MAX_LS];
extern BYTE t22_delay_mtp3[MAX_LK];
extern BYTE t23_delay_mtp3[MAX_LK];
extern BYTE t24_delay_mtp3[MAX_LK];
extern BYTE sltc_t1_delay[MAX_LK];
extern BYTE sltc_t2_delay[MAX_LK];
extern BYTE mtp3_t21_flag[MAX_LS];
extern BYTE mtp3_t22_flag[MAX_LK];
extern BYTE mtp3_t23_flag[MAX_LK];
extern BYTE mtp3_t12_flag[MAX_LK];
extern BYTE mtp3_t13_flag[MAX_LK];
extern BYTE mtp3_t14_flag[MAX_LK];
extern BYTE srm_nw;
extern BYTE active_ls_num;
extern BYTE current_active_ls_num;
extern BYTE rv_TRA_num;
extern BYTE tprc_nw;
extern BYTE taprc_loop[MAX_LS];
extern BYTE mtp2_flag_new[32];
extern BYTE mtp2_flag_old[32];
extern heartbeat_compoent_of_mtp3 mtp3_heartbeat;
extern ulong mtp3_localip;
extern ulong mtp3_alterip;
extern WORD wx5[256];
extern BYTE debug_link[MAX_LK];
extern long mtp3_timestamp;
extern long mtp3_csta_p;
extern ulong mtp3_get_msg;
extern BYTE local_change_over[MAX_LK];
extern BYTE mtp2_buf_full[MAX_LK];
extern BYTE nld_cause_lkd[MAX_LK];
extern BYTE init_lsac_state[MAX_LK];
extern BYTE init_tlac_state[MAX_LK];
extern ulong TFAmsg_OPC;
extern BYTE TFAmsg_SrcLk;
extern ulong TFPmsg_OPC;
extern BYTE TFPmsg_SrcLk;
extern BYTE sdTFP_Ls;
extern BYTE sdTFA_Ls;
extern BYTE mtp2_module;
extern BYTE mtp2_systemid;
// mtp3 opc
extern mtp3_dynamic_opc mtp3_opc;

View File

@@ -0,0 +1,102 @@
int find_outbound_cclink(WORD chl);/* find outbound changeover link */
int search_outbound_link(WORD ls);
int pc_length(BYTE nw);
void send_mtp_msg(int outlink, BYTE *msgptr);
void send_snm_msg(WORD ls,BYTE *msgptr);
void hmrt_srm_msg(WORD linkset, BYTE MsgType, long dst);
int check_outbound_route(BYTE sio, long dpc, WORD sls, long opc);
int send_to_tup(BYTE *msgptr);/* send tup msg to tele user part */
int send_to_isup(BYTE *msgptr);/* send isup msg to tele user part */
int send_to_bicc(BYTE *msgptr);/* send bicc msg to tele user part */
int send_to_sccp(BYTE *msgptr);/* send sccp msg to tele user part */
int send_to_sccp_lite(up_message *msgptr);/* send sccp-lite msg to sccp */
int get_tup(up_message *GetTup);
int get_isup(up_message *GetIsup);
int get_bicc(up_message_2 *GetBicc);
int get_sccp(up_message *GetSccp);
int find_dst_place(long dst,WORD ls);
int find_direct_ls_to_dst(long dst, BYTE nw, long opc);
void mtp2_mtp3_internal_msg(BYTE *msgptr);
void hmdt_test_msg(BYTE *msgptr);
void hmrt_tra_msg(WORD linkset);
void sd_STM_msg(WORD chl, BYTE MsgType);
void hmrt_xxxx_adjacent_sp_restart(ls_info *ls);
void hmrt_hmdc_message_for_routing(ls_info *ls);
void hmrt_xxxx_signalling_link_management_message(ls_info *ls);
void hmrt_xxxx_signalling_route_management_message(ls_info *ls);
void hmrt_xxxx_mtp_testing_user_part_message(ls_info *ls);
void hmrt_tprc_restart_begins(ls_info *ls);
void hmrt_tprc_restart_ends(ls_info *ls);
void hmrt_tfrc_update_routing_tables(WORD dst, BYTE nw);
void hmrt_sltc_signalling_link_test_ack(WORD chl);
void hmrt_sltc_signalling_link_test_msg(WORD chl);
void hmrt_tcbc_changeback_ack(WORD chl);
void hmrt_tcbc_changeback_declaration(WORD chl);
void hmrt_tcoc_changeover_ack(WORD chl);
void hmrt_tcoc_changeover_order(WORD chl);
void hmrt_tcoc_emergency_changeover_ack(WORD chl);
void hmrt_tcoc_emergency_changeover_order(WORD chl);
void hmrt_tcbc_update_routing_tables(WORD chl);
void hmrt_tcoc_update_routing_tables(WORD chl);
void hmrt_tlac_emergency_changeover_ack(WORD chl);
void hmrt_tlac_force_uninhibit_signalling_link(WORD chl);
void hmrt_tlac_inhibit_ack(WORD chl);
void hmrt_tlac_inhibit_denied(WORD chl);
void hmrt_tlac_local_inhibit_test(WORD chl);
void hmrt_tlac_remote_inhibit_test(WORD chl);
void hmrt_tlac_uninhibit_ack(WORD chl);
void send_command_to_mtp2(WORD chl, BYTE command);
void update_nid_table(WORD ls, long dst, BYTE place);
void update_aid_table(WORD ls, long dst, BYTE place);
void get_para_from_disk();
int mtp_setmib(BYTE oidlen, DWORD *oid, BYTE *pdata,WORD datalen);
int mtp_getmib(BYTE oidlen, DWORD *oid, BYTE *pdata,BYTE *vartype);
void mtp_snmp_init();
void tup_shm_init();
void isup_shm_init();
void sccp_shm_init();
int GetMtp2Msg(ulong ip_port);
void m3ua_timer();
int GetM3uaMsg(ulong port);
int tup_GetMsg(up_message *msgptr);
int isup_GetMsg(up_message *msgptr);
int sccp_GetMsg(up_message *msgptr);
int tup_to_mtp3(up_message *msgptr);
int isup_to_mtp3(up_message *msgptr);
int sccp_to_mtp3(up_message *msgptr);
void sltc_proc(WORD chl);
void lsac_proc(WORD chl);
void rtpc_proc(BYTE nw,WORD dst);
void rtac_proc(BYTE nw,WORD dst);
void tsrc_proc(WORD chl);
void tlac_proc(WORD chl);
void tcoc_proc(WORD chl);
void tcbc_proc(WORD chl);
void tprc_mgmt_signalling_point_restart_indication();
void tprc_proc();
void taprc_proc(WORD linkset);/* adjacent sp restart control */
void mtp_send_error(char *object,int chl, char *err_str);
void mtp_send_error2(BYTE *msg,BYTE sio,ulong dpc,char *err_str,BYTE from);
int mtp_debug_set();
void mtp_m_rt();
void mtp_put_error(BYTE type,WORD chl);
void mtp3_readpara_from_disk();
BOOL iptrans_msg_flow(BYTE *msg,BYTE pclen,int direction,ulong dest_ip);
BOOL iptrans_msg_flow_2(up_message *up_msg_ptr);
void mtp_prompt(char *object, BYTE value);
void set_heartbeat(BYTE reason,WORD object);
void mtp3_send_alarm(WORD component_id,BYTE alarm_code);
void update_sls_to_link_table(int ls);
int update_ls_slc_table(int link);
void mtp3_debug(int n,const char *fmt,...);
void reset_mtp3();
void mtp3Timer_proc(WORD i);
int pc_length(BYTE nw);
void mtp3_showbuf(int n,BYTE *msg,int len);
int mtp3lite_updateStatus(WORD chl, BYTE new_l2_state,BYTE alarmCode);
void mtp3lite_upd_route_status(WORD chl, BYTE flag);
int Mtp3BinSearchValue(WORD low, WORD high,BYTE nw,ull key);
void mtp3_send_mtp2_alarm(WORD component,BYTE alarm);
BYTE MTP3_LINK_TYPE(WORD Link);
int Mtp3AddSortRec(BYTE nw,ulong dpc, ulong real_index, ulong opc);
void mtp3_send_mtp2_alarm(WORD component,BYTE alarm);

View File

@@ -0,0 +1,296 @@
#include "mtpconst.h"
typedef struct ls_info{
BYTE links_available;
BYTE links_available_t;
BYTE adjacentsp_acessible;
BYTE adjacentsp_restarting;
WORD adjacent_sp_place;
BYTE linksNum_configured;
WORD influ_dstnum_asNLS;
WORD influ_dstnum_asALS;
WORD influ_dstplace_intable_asNLS[MAX_LS_DPC];
WORD influ_dstplace_intable_asALS[MAX_LS_DPC];
BYTE links_nls_asp_ac_send_flag[MAX_ROUTE+1];
BYTE links_als_asp_ac_send_flag[MAX_ROUTE+1];
WORD send_asp_ac_link_id;
}ls_info;
typedef struct mtp3_flow{
ulong UtoM[5];
ulong MtoI[5];
ulong ItoM[5];
ulong MtoU[5];
ulong stp[5];
ulong UtoM_throwed[5];
ulong MtoI_throwed[5];
ulong ItoM_throwed[5];
ulong MtoU_throwed[5];
ulong stp_throwed[5];
ulong stp_loop[5];
ulong isup_detail[32];
}mtp3_flow;
typedef struct network{
BYTE routine[MAX_ROUTE]; /* bit0-1: normal route available
bit2-3: alternative route available
bit4-5: acessible
bit6-7: current route */
BYTE rtpc_state[MAX_ROUTE];
BYTE rtpc_input[MAX_ROUTE];
BYTE rtac_state[MAX_ROUTE];
BYTE rtac_input[MAX_ROUTE];
BYTE rsrt_state[MAX_ROUTE];
BYTE rsrt_input[MAX_ROUTE];
BYTE rsrt_t10[MAX_ROUTE];
BYTE m3ua_rc_status[MAX_ROUTE];
mtp3_flow flow;
}network;
typedef struct _nw_route
{
ulong dpc;
WORD normal_ls;
WORD alternative_ls;
BYTE mtp3_t8;
BYTE mtp3_t15;
BYTE mtp3_t16;
BYTE acn[MAX_ACN_NUM];
BYTE ansi_remote;
ulong rc;
ulong opc;
char title[16+1];
}nw_route;
typedef struct nw_para{
ulong opc24;
ulong opc14;
BYTE pc_len;//0=14bit, 1=24bit
BYTE pc_type;//0= itu, 1=ansi
BYTE ansi_local14b;
BYTE ansi_local24b;
BYTE local_acn[MAX_ACN_NUM];
nw_route routing[MAX_ROUTE];
}nw_para;
typedef struct lk_pro
{
WORD e1_to_linkset __attribute__((packed));
BYTE e1_to_slc;// __attribute__((packed));
ulong e1_to_mtp3 __attribute__((packed));
BYTE e1_lk_type;// __attribute__((packed));//( old struct mains Bit0:0=ss7,1=m2ua
//Bit1:1=reserved
//Bit2:0=MTP3,1=MTP3LITE
//BIT3:0=server,1=client)
WORD e1_to_sg __attribute__((packed));
BYTE e1_to_iid;// __attribute__((packed));
ulong remote_ip __attribute__((packed));
BYTE inactive;// __attribute__((packed));// Inactivity timer
BYTE inactive_tm;// __attribute__((packed));// Allowed inactivity timeouts
ulong e1_to_alterMTP3 __attribute__((packed));//alternative MTP3
BYTE mtp3lite_apl_mode;
BYTE admin_state;
char title[16+1];
}lk_pro;
typedef struct lk_timer
{
BYTE t1;/* 500ms-1200ms */
BYTE t2;/* 700ms-2000ms */
BYTE t3;/* 500ms-1200ms */
BYTE t4;/* 500ms-1200ms */
BYTE t5;/* 500ms-1200ms */
BYTE t7;/* 1s-2s */
BYTE t8;/* 800ms-1200ms */
BYTE t12;/* 800ms-1500ms */
BYTE t13;/* 800ms-1500ms */
BYTE t14;/* 2s-3s */
BYTE t22;
BYTE t23;
}lk_timer;
typedef struct sg_para
{
BYTE enable;// __attribute__((packed));
BYTE server;// __attribute__((packed));
BYTE data_ack;// __attribute__((packed));
u32 ip __attribute__((packed));
u32 source_ip; // client source ip, 0=getHostName, other=value
WORD source_port; // client source port, 0=Radom
WORD dst_port;
}sg_para;
typedef struct _ls_para
{
int index;
char title[16+1];
BYTE admin_state;
BYTE ls_state;
BYTE nw_id;
BYTE loopback_opt;
ulong ls_op_pc;
char ls_reserved[16];
ulong ls_opc;
}ls_para;
typedef struct MTP3Parameter
{
lk_pro lk[MAX_LK];
lk_timer lt[MAX_LK];
sg_para sg[256];
BYTE nw_pro;
// ulong ls_op_pc[MAX_LS];/* for 128 linkset */
ls_para ls_pro[MAX_LS];
//char ls_reserved[MAX_LS][16];//each linkset reserved 16 bytes for omc
BYTE mtp3_t10;
BYTE mtp3_t18;
BYTE mtp3_t19;
BYTE mtp3_t20;
WORD mtp3_t21;
WORD mtp3lite_port;
nw_para nw[4];
BYTE localAcn[MAX_ACN_NUM];
ull MTP3SerialNum;
//ulong ls_opc[MAX_LS];/*for 128 linkset opc*/
}MTP3Parameter;
typedef struct mtp{
ls_info ls[MAX_LS];
network nw[4];
}mtp;
typedef struct measure_of_mtp3{
long time_stamp;
ulong lk_measure1[MAX_LK][9];/* link measure oid=*.1 */
ulong ls_measure[MAX_LS][8];/* linkset measure oid=*.3 */
/*** traffic */
// ulong tf_measure1[6][20];/* traffic octets */
ulong tf_measure2[6][20];/* traffic MSUs */
ulong tf_measure5[3];
}measure_of_mtp3;
typedef struct mtp3_csta{
measure_of_mtp3 measure[96];
}mtp3_csta;
typedef struct heartbeat_compoent_of_mtp3
{
BYTE version[3];
BYTE state;
// BYTE link_state[64];
BYTE link_state[256];
BYTE linkset_state[128];
BYTE masterMTP3[32];
BYTE SubState[2];
}heartbeat_compoent_of_mtp3;
typedef struct mtp2_heartbeat
{
BYTE systemid;
BYTE moduleid;
BYTE timestamp[4];
BYTE led_ctl_code[8];
BYTE alarm_component;
BYTE alarm_code;
BYTE reserved;
BYTE l1_state;
BYTE l2_state[8];
BYTE e1_dstip[8];
BYTE retrieved_bsnt[8];
}mtp2_heartbeat;
typedef struct mtp3DPCIndex
{
u_long sortedNum;
// u_long dpc[256];
ull dpc[MAX_ROUTE];//dpc = (opc<<32) | dpc
u_long index[MAX_ROUTE];
}mtp3DPCIndex;
typedef struct mtp3_dpc_index
{
mtp3DPCIndex nw[4];
}mtp3_dpc_index;
extern mtp3_dpc_index mtp3SortRoutine;
typedef struct _mtp3_state
{
BYTE link_l1_state[MAX_LK];
BYTE link_l2_state[MAX_LK];
BYTE link_l3_state[MAX_LK];
BYTE lk_configured[MAX_LK];
BYTE lk_command[MAX_LK];
BYTE link_type[MAX_LK];
ulong lk_mtp3[MAX_LK];
BYTE lk_NMTP3_ok[MAX_LK];//normal mtp3 ok
BYTE lk_AMTP3_ok[MAX_LK];//alternative mtp3 ok
BYTE lk_SpecANSI_flag[MAX_LK];
//special ANSI, use the Signalling network testing and maintenance special message
BYTE lsac_state[MAX_LK];
BYTE tlac_state[MAX_LK];
BYTE tcoc_state[MAX_LK];
BYTE tcbc_state[MAX_LK];
BYTE tsrc_state[MAX_LK];
BYTE sltc_state[MAX_LK];
BYTE tprc_state;
BYTE MTP3WatchDog[MAX_LK];
BYTE link_enable_sent_flag[MAX_LK];
}_mtp3_state;
extern _mtp3_state mtp3ObjState;
typedef struct _mtp3_input
{
BYTE lsac_input_from_l2[MAX_LK];
BYTE lsac_input_from_sltc[MAX_LK];
BYTE lsac_input_from_stm[MAX_LK];
BYTE lsac_input_from_tcoc[MAX_LK];
BYTE lsac_input_from_mgmt[MAX_LK];
BYTE tlac_input_from_slm[MAX_LK];
BYTE tlac_input_from_mgmt[MAX_LK];
BYTE tlac_input_from_stm[MAX_LK];
BYTE tlac_input_from_hmdt[MAX_LK];
BYTE tlac_input_from_Tctl[MAX_LK];/* input from timer control center*/
BYTE tsrc_input_from_tcoc[MAX_LK];
BYTE tsrc_input_from_tcbc[MAX_LK];
BYTE tsrc_input_from_stm[MAX_LK];
BYTE tsrc_input_from_tlac[MAX_LK];
BYTE tcoc_input_from_tsrc[MAX_LK];
BYTE tcoc_input_from_stm[MAX_LK];
BYTE tcoc_input_from_hmdt[MAX_LK];
BYTE tcbc_input[MAX_LK];
BYTE tcbc_input_from_tsrc[MAX_LK];
BYTE sltc_input[MAX_LK];
BYTE tprc_input;
BYTE taprc_input[MAX_LS];
}_mtp3_input;
extern _mtp3_input mtp3ObjInput;
typedef struct _mtp3_IPMng
{
BYTE mtp3_flag_new[MAX_MTP3_NUM];
BYTE mtp3_flag_old[MAX_MTP3_NUM];
ulong mtp3_flag_ip[MAX_MTP3_NUM];
BYTE LinkIPNum;
ulong LinkIP[MAX_MTP3_NUM];
BYTE LinkIPSubSta[MAX_MTP3_NUM][2];
}_mtp3_IPMng;
typedef struct _mtp3_dynamic_opc
{
BYTE opc_num[4];
ulong opc[4][MTP3_MAX_DYNAMIC_OPC_PER_NW];
}mtp3_dynamic_opc;
extern _mtp3_IPMng MTP3IPMng;