init ems server code
This commit is contained in:
99
plat/mtp3_old/Makefile
Normal file
99
plat/mtp3_old/Makefile
Normal file
@@ -0,0 +1,99 @@
|
||||
|
||||
##----------------------------------------------------------##
|
||||
## ##
|
||||
## Universal Makefile for module template : V1.6.3 ##
|
||||
## ##
|
||||
## Created : Wei Liu 07/04/11 ##
|
||||
## Revision: [Last]Wei Liu 07/07/07 ##
|
||||
## ##
|
||||
##----------------------------------------------------------##
|
||||
|
||||
##---------------------------------------------------------------------##
|
||||
##--------------------------------------
|
||||
##
|
||||
## Project correlation(Customer define)
|
||||
##
|
||||
##--------------------------------------
|
||||
|
||||
## MODULE= [Module Name]
|
||||
## TYPE = app/plat => Module Type
|
||||
|
||||
## DBUG_FLAGS_ADD = [Module Define Gcc Flags for Debug ]
|
||||
## DBUG_FLAGS_ADD = [Module Define Gcc Flags for Release]
|
||||
|
||||
## BUILD = lib/exef => Output file format
|
||||
## CFG = debug/release => Build Configuration
|
||||
|
||||
## SRC_PATH = [Source file path]
|
||||
## INC_PATH = [Include file path]
|
||||
## APP_PATH = [App Module path]
|
||||
## PLT_PATH = [Plat Module path]
|
||||
|
||||
## PLT_LIB = [Needed plat lib for Link] => just for test or wxc2main
|
||||
## APP_LIB = [Needed app lib for Link] => just for test or wxc2main
|
||||
## LIB_ADD = [Needed Extend lib for Link] => just for test or wxc2main
|
||||
|
||||
## PLT_LIB e.g. = haepub fsm mng proto kernel aif mgc mgcp sip rtp \
|
||||
## 8ecp bicc smpp xapp tcap mtp3 m2ua \
|
||||
## snmp iptrans debug sccp public
|
||||
##
|
||||
## APP_LIB e.g. = msc vlr ssf hlr ae pps mnp smsc vms aas
|
||||
## LIB_ADD e.g. = -liba3a8 -lm
|
||||
|
||||
## OBJ_ADD = [Extend third party object files needed]
|
||||
## TEST_OBJ_PATH = [module object files Path for test ] => just for test
|
||||
##---------------------------------------------------------------------##
|
||||
|
||||
MODULE = mtp3
|
||||
TYPE = plat
|
||||
|
||||
DBUG_FLAGS_ADD = -DDEBUG -D_INCLUDE_M2UA -D_CDMA_SNMP
|
||||
RELS_FLAGS_ADD = -D_INCLUDE_M2UA -D_CDMA_SNMP
|
||||
|
||||
##Default commonly as below
|
||||
|
||||
BUILD = lib
|
||||
CFG = debug
|
||||
|
||||
|
||||
PLT_LIB =
|
||||
|
||||
APP_LIB =
|
||||
LIB_ADD =
|
||||
|
||||
SRC_PATH = ./src
|
||||
INC_PATH = ./src/include
|
||||
PLT_PATH = ../../plat
|
||||
APP_PATH = ../../mss
|
||||
|
||||
OBJ_ADD =
|
||||
TEST_OBJ_PATH =
|
||||
|
||||
PREPROC_CMD =
|
||||
POSTPROC_CMD =
|
||||
|
||||
##---------------------------------------------------------------------##
|
||||
##--------------------------------------
|
||||
##
|
||||
## Make configuration(Customer define)
|
||||
##
|
||||
##--------------------------------------
|
||||
|
||||
## CCFLAG_SWITCH = on/off => gcc flag show on/off
|
||||
## COVER_NEED = yes/no => PTF cover report needed
|
||||
## COVER_REPORT_PATH = [path ] => PTF cover report path
|
||||
|
||||
CCFLAG_SWITCH = off
|
||||
COVER_NEED = no
|
||||
COVER_REPORT_PATH = ./output
|
||||
MAKE_INCLUDE = $(HOME)/ems.git/include
|
||||
|
||||
##---------------------------------------------------------------------##
|
||||
|
||||
|
||||
##--------------------------------------
|
||||
##
|
||||
## include makefile.rules (Do not change)
|
||||
##
|
||||
##--------------------------------------
|
||||
include $(MAKE_INCLUDE)/Makefile.rules
|
||||
171
plat/mtp3_old/src/include/mtp3.h
Normal file
171
plat/mtp3_old/src/include/mtp3.h
Normal file
@@ -0,0 +1,171 @@
|
||||
#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 272
|
||||
|
||||
typedef struct up_message{
|
||||
long dest_ip;
|
||||
long dpc;
|
||||
long opc;
|
||||
BYTE cic[2];
|
||||
BYTE 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];
|
||||
BYTE 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
|
||||
{
|
||||
BYTE tupMsgOutLink[256];
|
||||
BYTE isupMsgOutLink[256];
|
||||
BYTE biccMsgOutLink[256];
|
||||
BYTE 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);
|
||||
//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,DWORD spc);
|
||||
BYTE mtp3_ansiFlag(BYTE netID);
|
||||
BYTE *check_MTP3LinkType();
|
||||
BYTE *check_MTP3LinkL2State();
|
||||
void MTP3_activate(DWORD ip);
|
||||
void MTP3_deactivate(DWORD 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, DWORD opc);
|
||||
int mtp3_delete_opc(BYTE nw, DWORD opc);
|
||||
int check_m3ua_rc_verify(DWORD rc);
|
||||
|
||||
#endif
|
||||
28
plat/mtp3_old/src/include/mtp3lite.h
Normal file
28
plat/mtp3_old/src/include/mtp3lite.h
Normal 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
|
||||
53
plat/mtp3_old/src/include/mtp3lite_pub.h
Normal file
53
plat/mtp3_old/src/include/mtp3lite_pub.h
Normal 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
|
||||
574
plat/mtp3_old/src/include/mtpconst.h
Normal file
574
plat/mtp3_old/src/include/mtpconst.h
Normal file
@@ -0,0 +1,574 @@
|
||||
#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 {9, 1, 5}
|
||||
//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_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 8
|
||||
155
plat/mtp3_old/src/include/mtpdef.h
Normal file
155
plat/mtp3_old/src/include/mtpdef.h
Normal file
@@ -0,0 +1,155 @@
|
||||
BYTE ls_slc[2048];
|
||||
BYTE ls_sls[2048];
|
||||
BYTE sls_to_link[2048];
|
||||
|
||||
/** link mark **/
|
||||
BYTE link_available[256];
|
||||
BYTE link_unavailable[256];
|
||||
BYTE changeover_possible[256];
|
||||
BYTE retrieval_required[256];
|
||||
BYTE remote_bsnt_retrieved[256];
|
||||
BYTE changeback_in_progress[256];
|
||||
BYTE changeover_in_progress[256];
|
||||
BYTE changeback_required[256];
|
||||
BYTE changeover_required[256];
|
||||
BYTE emergency_changeover_order[256];
|
||||
BYTE changeover_order[256];
|
||||
BYTE changeover_completed[256];
|
||||
BYTE failed[256];
|
||||
BYTE blocked_by[256];
|
||||
BYTE local_blocked[256];
|
||||
BYTE remote_blocked[256];
|
||||
BYTE first_failure[256];
|
||||
BYTE changeover_select[256];
|
||||
BYTE changeback_select[256];
|
||||
BYTE co_msg_can_exchange[256];
|
||||
BYTE cb_msg_can_exchange[256];
|
||||
BYTE local_bsnt_retrievable[256];
|
||||
BYTE retrieved_bsnt[256];
|
||||
BYTE fsnt[256];
|
||||
BYTE fsnl[256];
|
||||
BYTE fsnc[256];
|
||||
BYTE bsnt[256];
|
||||
BYTE tcbc_route_change[256];
|
||||
BYTE command3[256];
|
||||
BYTE cbd_cbc_r[256];
|
||||
BYTE cba_cbc_r[256];
|
||||
BYTE cbc_s[256];
|
||||
BYTE controlled_rerouting_in_progress[256];
|
||||
BYTE transfer_prohibited[256];
|
||||
BYTE own_sp_restarting;
|
||||
BYTE link_remotely_inhibited[256];
|
||||
BYTE link_locally_inhibited[256];
|
||||
BYTE link_inhibited[256];
|
||||
BYTE local_inhibit_in_progress[256];
|
||||
BYTE uninhibit_in_progress[256];
|
||||
BYTE management_req[256];
|
||||
BYTE t12_expired_2nd_time[256];
|
||||
BYTE t13_expired_2nd_time[256];
|
||||
BYTE sending_phase_finished[128];
|
||||
|
||||
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];
|
||||
BYTE mtp_asciin_buf[80];
|
||||
|
||||
BYTE t1_delay_mtp3[256];
|
||||
BYTE t2_delay_mtp3[256];
|
||||
BYTE t3_delay_mtp3[256];
|
||||
BYTE t4_delay_mtp3[256];
|
||||
BYTE t5_delay_mtp3[256];
|
||||
BYTE t6_delay_mtp3[256];
|
||||
BYTE t7_delay_mtp3[256];
|
||||
BYTE t8_delay_mtp3[256];
|
||||
BYTE t9_delay_mtp3[256];
|
||||
BYTE t10_delay_mtp3[256];
|
||||
BYTE t11_delay_mtp3[256];
|
||||
BYTE t12_delay_mtp3[256];
|
||||
BYTE t13_delay_mtp3[256];
|
||||
BYTE t14_delay_mtp3[256];
|
||||
BYTE t15_delay_mtp3[256];
|
||||
BYTE t16_delay_mtp3[256];
|
||||
BYTE t17_delay_mtp3[256];
|
||||
BYTE t18_delay_mtp3;
|
||||
BYTE t19_delay_mtp3;
|
||||
BYTE t20_delay_mtp3;
|
||||
BYTE t21_delay_mtp3[128];
|
||||
BYTE t22_delay_mtp3[256];
|
||||
BYTE t23_delay_mtp3[256];
|
||||
BYTE t24_delay_mtp3[256];
|
||||
BYTE sltc_t1_delay[256];
|
||||
BYTE sltc_t2_delay[256];
|
||||
|
||||
BYTE mtp3_t21_flag[128];
|
||||
BYTE mtp3_t22_flag[256];
|
||||
BYTE mtp3_t23_flag[256];
|
||||
BYTE mtp3_t12_flag[256];
|
||||
BYTE mtp3_t13_flag[256];
|
||||
BYTE mtp3_t14_flag[256];
|
||||
|
||||
BYTE srm_nw;
|
||||
BYTE active_ls_num;
|
||||
BYTE current_active_ls_num;
|
||||
BYTE rv_TRA_num;
|
||||
BYTE tprc_nw;
|
||||
BYTE taprc_loop[128];
|
||||
|
||||
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];
|
||||
|
||||
DWORD mtp3_localip;
|
||||
DWORD mtp3_alterip;
|
||||
|
||||
WORD wx5[256];
|
||||
BYTE debug_link[256];
|
||||
|
||||
long mtp3_timestamp;
|
||||
long mtp3_csta_p;
|
||||
|
||||
DWORD mtp3_get_msg;
|
||||
|
||||
BYTE local_change_over[256];
|
||||
|
||||
BYTE mtp2_buf_full[256];
|
||||
BYTE nld_cause_lkd[256];
|
||||
|
||||
BYTE init_lsac_state[256];
|
||||
BYTE init_tlac_state[256];
|
||||
|
||||
DWORD TFAmsg_OPC;
|
||||
BYTE TFAmsg_SrcLk;
|
||||
DWORD TFPmsg_OPC;
|
||||
BYTE TFPmsg_SrcLk;
|
||||
BYTE sdTFP_Ls;
|
||||
BYTE sdTFA_Ls;
|
||||
BYTE mtp2_module;
|
||||
BYTE mtp2_systemid;
|
||||
// mtp3 dynamic opc
|
||||
mtp3_dynamic_opc mtp3_opc;
|
||||
140
plat/mtp3_old/src/include/mtpext.h
Normal file
140
plat/mtp3_old/src/include/mtpext.h
Normal file
@@ -0,0 +1,140 @@
|
||||
extern BYTE ls_slc[2048];
|
||||
extern BYTE ls_sls[2048];
|
||||
extern BYTE sls_to_link[2048];
|
||||
|
||||
/** link mark **/
|
||||
extern BYTE link_available[256];
|
||||
extern BYTE changeover_possible[256];
|
||||
extern BYTE retrieval_required[256];
|
||||
extern BYTE remote_bsnt_retrieved[256];
|
||||
extern BYTE changeback_in_progress[256];
|
||||
extern BYTE changeover_in_progress[256];
|
||||
extern BYTE changeback_required[256];
|
||||
extern BYTE changeover_required[256];
|
||||
extern BYTE emergency_changeover_order[256];
|
||||
extern BYTE changeover_order[256];
|
||||
extern BYTE changeover_completed[256];
|
||||
extern BYTE failed[256];
|
||||
extern BYTE blocked_by[256];
|
||||
extern BYTE local_blocked[256];
|
||||
extern BYTE remote_blocked[256];
|
||||
extern BYTE first_failure[256];
|
||||
extern BYTE changeback_select[256];
|
||||
extern BYTE changeover_select[256];
|
||||
extern BYTE co_msg_can_exchange[256];
|
||||
extern BYTE cb_msg_can_exchange[256];
|
||||
extern BYTE local_bsnt_retrievable[256];
|
||||
extern BYTE retrieved_bsnt[256];
|
||||
extern BYTE fsnt[256];
|
||||
extern BYTE fsnl[256];
|
||||
extern BYTE fsnc[256];
|
||||
extern BYTE bsnt[256];
|
||||
extern BYTE tcbc_route_change[256];
|
||||
extern BYTE command3[256];
|
||||
extern BYTE cbd_cbc_r[256];
|
||||
extern BYTE cba_cbc_r[256];
|
||||
extern BYTE cbc_s[256];
|
||||
extern BYTE controlled_rerouting_in_progress[256];
|
||||
extern BYTE transfer_prohibited[256];
|
||||
extern BYTE own_sp_restarting;
|
||||
extern BYTE link_remotely_inhibited[256];
|
||||
extern BYTE link_locally_inhibited[256];
|
||||
extern BYTE link_inhibited[256];
|
||||
extern BYTE local_inhibit_in_progress[256];
|
||||
extern BYTE uninhibit_in_progress[256];
|
||||
extern BYTE management_req[256];
|
||||
extern BYTE t12_expired_2nd_time[256];
|
||||
extern BYTE t13_expired_2nd_time[256];
|
||||
extern BYTE sending_phase_finished[128];
|
||||
|
||||
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 BYTE mtp_asciin_buf[80];
|
||||
|
||||
extern BYTE t1_delay_mtp3[256];
|
||||
extern BYTE t2_delay_mtp3[256];
|
||||
extern BYTE t3_delay_mtp3[256];
|
||||
extern BYTE t4_delay_mtp3[256];
|
||||
extern BYTE t5_delay_mtp3[256];
|
||||
extern BYTE t6_delay_mtp3[256];
|
||||
extern BYTE t7_delay_mtp3[256];
|
||||
extern BYTE t8_delay_mtp3[256];
|
||||
extern BYTE t9_delay_mtp3[256];
|
||||
extern BYTE t10_delay_mtp3[256];
|
||||
extern BYTE t11_delay_mtp3[256];
|
||||
extern BYTE t12_delay_mtp3[256];
|
||||
extern BYTE t13_delay_mtp3[256];
|
||||
extern BYTE t14_delay_mtp3[256];
|
||||
extern BYTE t15_delay_mtp3[256];
|
||||
extern BYTE t16_delay_mtp3[256];
|
||||
extern BYTE t17_delay_mtp3[256];
|
||||
extern BYTE t18_delay_mtp3;
|
||||
extern BYTE t19_delay_mtp3;
|
||||
extern BYTE t20_delay_mtp3;
|
||||
extern BYTE t21_delay_mtp3[128];
|
||||
extern BYTE t22_delay_mtp3[256];
|
||||
extern BYTE t23_delay_mtp3[256];
|
||||
extern BYTE t24_delay_mtp3[256];
|
||||
extern BYTE sltc_t1_delay[256];
|
||||
extern BYTE sltc_t2_delay[256];
|
||||
|
||||
extern BYTE mtp3_t21_flag[128];
|
||||
extern BYTE mtp3_t22_flag[256];
|
||||
extern BYTE mtp3_t23_flag[256];
|
||||
extern BYTE mtp3_t12_flag[256];
|
||||
extern BYTE mtp3_t13_flag[256];
|
||||
extern BYTE mtp3_t14_flag[256];
|
||||
|
||||
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[128];
|
||||
|
||||
extern BYTE mtp2_flag_new[32];
|
||||
extern BYTE mtp2_flag_old[32];
|
||||
|
||||
extern heartbeat_compoent_of_mtp3 mtp3_heartbeat;
|
||||
|
||||
extern DWORD mtp3_localip;
|
||||
extern DWORD mtp3_alterip;
|
||||
extern WORD wx5[256];
|
||||
extern BYTE debug_link[256];
|
||||
|
||||
extern long mtp3_timestamp;
|
||||
extern long mtp3_csta_p;
|
||||
|
||||
extern DWORD mtp3_get_msg;
|
||||
|
||||
extern BYTE local_change_over[256];
|
||||
|
||||
extern BYTE mtp2_buf_full[256];
|
||||
extern BYTE nld_cause_lkd[256];
|
||||
|
||||
extern BYTE init_lsac_state[256];
|
||||
extern BYTE init_tlac_state[256];
|
||||
|
||||
extern DWORD TFAmsg_OPC;
|
||||
extern BYTE TFAmsg_SrcLk;
|
||||
extern DWORD 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;
|
||||
102
plat/mtp3_old/src/include/mtpfunc.h
Normal file
102
plat/mtp3_old/src/include/mtpfunc.h
Normal file
@@ -0,0 +1,102 @@
|
||||
int find_outbound_cclink(BYTE chl);/* find outbound changeover link */
|
||||
int search_outbound_link(BYTE ls);
|
||||
int pc_length(BYTE nw);
|
||||
void send_mtp_msg(int outlink, BYTE *msgptr);
|
||||
void send_snm_msg(BYTE ls,BYTE *msgptr);
|
||||
void hmrt_srm_msg(BYTE linkset, BYTE MsgType, long dst);
|
||||
int check_outbound_route(BYTE sio, long dpc, BYTE sls);
|
||||
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,BYTE ls);
|
||||
int find_direct_ls_to_dst(long dst, BYTE nw);
|
||||
void mtp2_mtp3_internal_msg(BYTE *msgptr);
|
||||
void hmdt_test_msg(BYTE *msgptr);
|
||||
void hmrt_tra_msg(BYTE linkset);
|
||||
void sd_STM_msg(BYTE 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(BYTE dst, BYTE nw);
|
||||
void hmrt_sltc_signalling_link_test_ack(BYTE chl);
|
||||
void hmrt_sltc_signalling_link_test_msg(BYTE chl);
|
||||
void hmrt_tcbc_changeback_ack(BYTE chl);
|
||||
void hmrt_tcbc_changeback_declaration(BYTE chl);
|
||||
void hmrt_tcoc_changeover_ack(BYTE chl);
|
||||
void hmrt_tcoc_changeover_order(BYTE chl);
|
||||
void hmrt_tcoc_emergency_changeover_ack(BYTE chl);
|
||||
void hmrt_tcoc_emergency_changeover_order(BYTE chl);
|
||||
void hmrt_tcbc_update_routing_tables(BYTE chl);
|
||||
void hmrt_tcoc_update_routing_tables(BYTE chl);
|
||||
void hmrt_tlac_emergency_changeover_ack(BYTE chl);
|
||||
void hmrt_tlac_force_uninhibit_signalling_link(BYTE chl);
|
||||
void hmrt_tlac_inhibit_ack(BYTE chl);
|
||||
void hmrt_tlac_inhibit_denied(BYTE chl);
|
||||
void hmrt_tlac_local_inhibit_test(BYTE chl);
|
||||
void hmrt_tlac_remote_inhibit_test(BYTE chl);
|
||||
void hmrt_tlac_uninhibit_ack(BYTE chl);
|
||||
void send_command_to_mtp2(BYTE chl, BYTE command);
|
||||
void update_nid_table(BYTE ls, long dst, BYTE place);
|
||||
void update_aid_table(BYTE 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(DWORD ip_port);
|
||||
void m3ua_timer();
|
||||
int GetM3uaMsg(DWORD 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(BYTE chl);
|
||||
void lsac_proc(BYTE chl);
|
||||
void rtpc_proc(BYTE nw,BYTE dst);
|
||||
void rtac_proc(BYTE nw,BYTE dst);
|
||||
void tsrc_proc(BYTE chl);
|
||||
void tlac_proc(BYTE chl);
|
||||
void tcoc_proc(BYTE chl);
|
||||
void tcbc_proc(BYTE chl);
|
||||
void tprc_mgmt_signalling_point_restart_indication();
|
||||
void tprc_proc();
|
||||
void taprc_proc(BYTE linkset);/* adjacent sp restart control */
|
||||
void mtp_send_error(char *object,int chl, char *err_str);
|
||||
void mtp_send_error2(BYTE *msg,BYTE sio,DWORD dpc,char *err_str,BYTE from);
|
||||
int mtp_debug_set();
|
||||
void mtp_m_rt();
|
||||
void mtp_put_error(BYTE type,BYTE chl);
|
||||
void mtp3_readpara_from_disk();
|
||||
BOOL iptrans_msg_flow(BYTE *msg,BYTE pclen,int direction,DWORD dest_ip);
|
||||
BOOL iptrans_msg_flow_2(up_message *up_msg_ptr);
|
||||
void mtp_prompt(char *object, BYTE value);
|
||||
void set_heartbeat(BYTE reason,BYTE 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(BYTE i);
|
||||
int pc_length(BYTE nw);
|
||||
void mtp3_showbuf(int n,BYTE *msg,int len);
|
||||
int mtp3lite_updateStatus(BYTE chl, BYTE new_l2_state,BYTE alarmCode);
|
||||
void mtp3lite_upd_route_status(BYTE chl, BYTE flag);
|
||||
int Mtp3BinSearchValue(BYTE low, BYTE high,BYTE nw,DWORD key);
|
||||
void mtp3_send_mtp2_alarm(WORD component,BYTE alarm);
|
||||
BYTE MTP3_LINK_TYPE(BYTE Link);
|
||||
int Mtp3AddSortRec(BYTE nw,DWORD dpc, DWORD real_index);
|
||||
void mtp3_send_mtp2_alarm(WORD component,BYTE alarm);
|
||||
259
plat/mtp3_old/src/include/mtpstm.h
Normal file
259
plat/mtp3_old/src/include/mtpstm.h
Normal file
@@ -0,0 +1,259 @@
|
||||
#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;
|
||||
|
||||
|
||||
BYTE influ_dstnum_asNLS;
|
||||
BYTE influ_dstnum_asALS;
|
||||
|
||||
BYTE influ_dstplace_intable_asNLS[MAX_LS_DPC];
|
||||
BYTE influ_dstplace_intable_asALS[MAX_LS_DPC];
|
||||
}ls_info;
|
||||
|
||||
typedef struct mtp3_flow{
|
||||
DWORD UtoM[5];
|
||||
DWORD MtoI[5];
|
||||
DWORD ItoM[5];
|
||||
DWORD MtoU[5];
|
||||
DWORD stp[5];
|
||||
DWORD UtoM_throwed[5];
|
||||
DWORD MtoI_throwed[5];
|
||||
DWORD ItoM_throwed[5];
|
||||
DWORD MtoU_throwed[5];
|
||||
DWORD stp_throwed[5];
|
||||
DWORD stp_loop[5];
|
||||
DWORD isup_detail[32];
|
||||
}mtp3_flow;
|
||||
|
||||
typedef struct network{
|
||||
BYTE routine[256]; /* bit0-1: normal route available
|
||||
bit2-3: alternative route available
|
||||
bit4-5: acessible
|
||||
bit6-7: current route */
|
||||
BYTE rtpc_state[256];
|
||||
BYTE rtpc_input[256];
|
||||
BYTE rtac_state[256];
|
||||
BYTE rtac_input[256];
|
||||
BYTE rsrt_state[256];
|
||||
BYTE rsrt_input[256];
|
||||
BYTE rsrt_t10[256];
|
||||
BYTE m3ua_rc_status[256];
|
||||
mtp3_flow flow;
|
||||
}network;
|
||||
|
||||
typedef struct nw_para{
|
||||
DWORD dpc[256];
|
||||
BYTE normal_ls[256];
|
||||
BYTE alternative_ls[256];
|
||||
DWORD opc24;
|
||||
DWORD opc14;
|
||||
BYTE mtp3_t8[256];
|
||||
BYTE mtp3_t15[256];
|
||||
BYTE mtp3_t16[256];
|
||||
BYTE acn[256][MAX_ACN_NUM];
|
||||
BYTE ansi_local14b;
|
||||
BYTE ansi_local24b;
|
||||
BYTE ansi_remote[256];
|
||||
DWORD rc[256];
|
||||
}nw_para;
|
||||
|
||||
typedef struct lk_pro
|
||||
{
|
||||
BYTE e1_to_linkset __attribute__((packed));
|
||||
BYTE e1_to_slc __attribute__((packed));
|
||||
DWORD e1_to_mtp3 __attribute__((packed));
|
||||
BYTE e1_lk_type __attribute__((packed));//Bit0:0=ss7,1=m2ua
|
||||
//Bit1:1=enable,0=disable
|
||||
//Bit2:0=MTP3,1=MTP3LITE
|
||||
//BIT3:0=server,1=client
|
||||
BYTE e1_to_sg __attribute__((packed));
|
||||
BYTE e1_to_iid __attribute__((packed));
|
||||
DWORD remote_ip __attribute__((packed));
|
||||
BYTE inactive __attribute__((packed));// Inactivity timer
|
||||
BYTE inactive_tm __attribute__((packed));// Allowed inactivity timeouts
|
||||
DWORD e1_to_alterMTP3 __attribute__((packed));//alternative MTP3
|
||||
}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));
|
||||
DWORD ip __attribute__((packed));
|
||||
}sg_para;
|
||||
|
||||
typedef struct MTP3Parameter
|
||||
{
|
||||
lk_pro lk[256];
|
||||
lk_timer lt[256];
|
||||
sg_para sg[256];
|
||||
BYTE nw_pro;
|
||||
DWORD ls_op_pc[128];/* for 128 linkset */
|
||||
BYTE ls_pro[128];
|
||||
char ls_reserved[128][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;
|
||||
}MTP3Parameter;
|
||||
|
||||
typedef struct mtp{
|
||||
ls_info ls[128];
|
||||
network nw[4];
|
||||
}mtp;
|
||||
|
||||
typedef struct measure_of_mtp3{
|
||||
long time_stamp;
|
||||
DWORD lk_measure1[256][9];/* link measure oid=*.1 */
|
||||
DWORD ls_measure[128][8];/* linkset measure oid=*.3 */
|
||||
/*** traffic */
|
||||
// DWORD tf_measure1[6][20];/* traffic octets */
|
||||
DWORD tf_measure2[6][20];/* traffic MSUs */
|
||||
DWORD 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 linkset_state[32];
|
||||
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
|
||||
{
|
||||
DWORD sortedNum;
|
||||
DWORD dpc[256];
|
||||
DWORD index[256];
|
||||
}mtp3DPCIndex;
|
||||
|
||||
typedef struct mtp3_dpc_index
|
||||
{
|
||||
mtp3DPCIndex nw[4];
|
||||
}mtp3_dpc_index;
|
||||
|
||||
/* by simon at 23/9/26 */
|
||||
//extern mtp3_dpc_index mtp3SortRoutine;
|
||||
|
||||
typedef struct _mtp3_state
|
||||
{
|
||||
BYTE link_l1_state[256];
|
||||
BYTE link_l2_state[256];
|
||||
BYTE link_l3_state[256];
|
||||
BYTE lk_configured[256];
|
||||
BYTE lk_command[256];
|
||||
BYTE link_type[256];
|
||||
DWORD lk_mtp3[256];
|
||||
BYTE lk_NMTP3_ok[256];//normal mtp3 ok
|
||||
BYTE lk_AMTP3_ok[256];//alternative mtp3 ok
|
||||
|
||||
BYTE lk_SpecANSI_flag[256];
|
||||
//special ANSI, use the Signalling network testing and maintenance special message
|
||||
|
||||
BYTE lsac_state[256];
|
||||
BYTE tlac_state[256];
|
||||
BYTE tcoc_state[256];
|
||||
BYTE tcbc_state[256];
|
||||
BYTE tsrc_state[256];
|
||||
BYTE sltc_state[256];
|
||||
BYTE tprc_state;
|
||||
|
||||
BYTE MTP3WatchDog[256];
|
||||
}_mtp3_state;
|
||||
/* by simon at 23/9/26 */
|
||||
//extern _mtp3_state mtp3ObjState;
|
||||
|
||||
typedef struct _mtp3_input
|
||||
{
|
||||
BYTE lsac_input_from_l2[256];
|
||||
BYTE lsac_input_from_sltc[256];
|
||||
BYTE lsac_input_from_stm[256];
|
||||
BYTE lsac_input_from_tcoc[256];
|
||||
BYTE lsac_input_from_mgmt[256];
|
||||
BYTE tlac_input_from_slm[256];
|
||||
BYTE tlac_input_from_mgmt[256];
|
||||
BYTE tlac_input_from_stm[256];
|
||||
BYTE tlac_input_from_hmdt[256];
|
||||
BYTE tlac_input_from_Tctl[256];/* input from timer control center*/
|
||||
BYTE tsrc_input_from_tcoc[256];
|
||||
BYTE tsrc_input_from_tcbc[256];
|
||||
BYTE tsrc_input_from_stm[256];
|
||||
BYTE tsrc_input_from_tlac[256];
|
||||
BYTE tcoc_input_from_tsrc[256];
|
||||
BYTE tcoc_input_from_stm[256];
|
||||
BYTE tcoc_input_from_hmdt[256];
|
||||
BYTE tcbc_input[256];
|
||||
BYTE tcbc_input_from_tsrc[256];
|
||||
BYTE sltc_input[256];
|
||||
BYTE tprc_input;
|
||||
BYTE taprc_input[128];
|
||||
}_mtp3_input;
|
||||
/* by simon at 23/9/26 */
|
||||
//extern _mtp3_input mtp3ObjInput;
|
||||
|
||||
typedef struct _mtp3_IPMng
|
||||
{
|
||||
BYTE mtp3_flag_new[MAX_MTP3_NUM];
|
||||
BYTE mtp3_flag_old[MAX_MTP3_NUM];
|
||||
DWORD mtp3_flag_ip[MAX_MTP3_NUM];
|
||||
|
||||
BYTE LinkIPNum;
|
||||
DWORD LinkIP[MAX_MTP3_NUM];
|
||||
BYTE LinkIPSubSta[MAX_MTP3_NUM][2];
|
||||
}_mtp3_IPMng;
|
||||
|
||||
typedef struct _mtp3_dynamic_opc
|
||||
{
|
||||
BYTE opc_num[4];
|
||||
DWORD opc[4][MTP3_MAX_DYNAMIC_OPC_PER_NW];
|
||||
}mtp3_dynamic_opc;
|
||||
/* by simon at 23/9/26 */
|
||||
//extern _mtp3_IPMng MTP3IPMng;
|
||||
742
plat/mtp3_old/src/mtp3lite.c
Normal file
742
plat/mtp3_old/src/mtp3lite.c
Normal file
@@ -0,0 +1,742 @@
|
||||
/****************************************************/
|
||||
/* MTP3LITE Implementation Program */
|
||||
/* Version 10.0.1 */
|
||||
/* Designed By Ying Min */
|
||||
/* Last Update: 2005-04-7 */
|
||||
/* Modify : Victor Luo, 2005-07-14 add TCP client for mtp3lite*/
|
||||
/****************************************************/
|
||||
|
||||
#include "./include/mtp3.h"
|
||||
#include "./include/mtpstm.h"
|
||||
#include "./include/mtp3lite.h"
|
||||
#include "./include/mtpext.h"
|
||||
#include "./include/mtpfunc.h"
|
||||
|
||||
BYTE mtp3lite_ka_msg[3];
|
||||
mtp3lite_lk mtp3lite_link[256];
|
||||
int mtp3lite_listen_fd;
|
||||
BYTE mtp3lite_msg_buf[256][MTP3LITE_MSG_BUF_SIZE_PER_LINK];
|
||||
BYTE mtp3lite_rem_len[256];
|
||||
BYTE mtp3lite_id_fg[256];
|
||||
|
||||
/*@ignore@*/
|
||||
void mtp3lite_print_msg(BYTE *ptr, WORD len)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
{
|
||||
printf("%X ", ptr[i]);
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
void mtp3lite_init_lk(BYTE lk)
|
||||
{
|
||||
mtp3lite_link[lk].connfd = -1;
|
||||
mtp3lite_link[lk].cliSockfd = -1;
|
||||
mtp3lite_link[lk].remote_port = 0;
|
||||
mtp3lite_link[lk].local_inactive = 2000; // 20 seconds
|
||||
mtp3lite_link[lk].local_reconnect = 10; // 10 * 2.56 seconds
|
||||
mtp3lite_link[lk].remote_inactive = mtp3_para->lk[lk].inactive * 100;
|
||||
mtp3lite_link[lk].remote_inactive_timeouts = mtp3_para->lk[lk].inactive_tm;
|
||||
mtp3lite_link[lk].init_guard_timer = 2000; // 20 seconds
|
||||
mtp3lite_msg_buf[lk][0] = 0;
|
||||
mtp3lite_rem_len[lk] = 0;
|
||||
mtp3lite_id_fg[lk] = 0;
|
||||
}
|
||||
|
||||
void mtp3lite_init_ka_msg(void)
|
||||
{
|
||||
mtp3lite_ka_msg[0] = 2;
|
||||
mtp3lite_ka_msg[1] = 0x4B;
|
||||
mtp3lite_ka_msg[2] = 0x41;
|
||||
}
|
||||
|
||||
int mtp3lite_Init_TCPSocket(struct sockaddr_in saddr,int needBind)
|
||||
{ //flag,0=client, 1=server
|
||||
int sock;
|
||||
long sockbuf = 40*1024;
|
||||
int on = 1, timeout = 20;
|
||||
|
||||
sock = socket(AF_INET, SOCK_STREAM, 0);
|
||||
|
||||
if (sock < 0)
|
||||
{
|
||||
fprintf(stderr,"Socket() failed\n");
|
||||
return -3;
|
||||
}
|
||||
|
||||
if (setsockopt(sock, SOL_SOCKET, SO_RCVBUF,
|
||||
&sockbuf, sizeof(sockbuf)) != 0)
|
||||
{
|
||||
fprintf(stderr,"set socket buffer failed\n");
|
||||
return -4;
|
||||
}
|
||||
|
||||
if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR,
|
||||
&on,sizeof(on)) != 0)
|
||||
{
|
||||
fprintf(stderr,"set addr reusable failed\n");
|
||||
return -5;
|
||||
}
|
||||
|
||||
if (setsockopt(sock,SOL_SOCKET, SO_KEEPALIVE,
|
||||
&timeout, sizeof(timeout)) != 0)
|
||||
{
|
||||
fprintf(stderr,"set keepalive failed\n");
|
||||
return -6;
|
||||
}
|
||||
|
||||
if (fcntl(sock, F_SETFL, O_NONBLOCK) < 0)
|
||||
{
|
||||
fprintf(stderr,"set nonblock failed\n");
|
||||
return -7;
|
||||
}
|
||||
|
||||
if(needBind)
|
||||
{
|
||||
if (bind(sock, (struct sockaddr*)&saddr, sizeof(struct sockaddr)) < 0)
|
||||
{
|
||||
fprintf(stderr,"MTP3LITE bind failed,port:%d\n",htons(saddr.sin_port));
|
||||
close(sock);
|
||||
return -2;
|
||||
}
|
||||
}
|
||||
return sock;
|
||||
}
|
||||
|
||||
int mtp3lite_InitServerSocket()
|
||||
{
|
||||
struct sockaddr_in sin_addr;
|
||||
|
||||
memset(&sin_addr, 0, sizeof(struct sockaddr));
|
||||
sin_addr.sin_family = AF_INET;
|
||||
//sin_addr.sin_port = htons(mtp3lite_port);
|
||||
sin_addr.sin_port = mtp3_para->mtp3lite_port;
|
||||
sin_addr.sin_addr.s_addr = INADDR_ANY;
|
||||
bzero(&(sin_addr.sin_zero),8);
|
||||
|
||||
if ((mtp3lite_listen_fd = mtp3lite_Init_TCPSocket(sin_addr,1)) < 0)
|
||||
{
|
||||
printf("MTP3LITE TCP Socket(%X) Init Failed!\n", mtp3_para->mtp3lite_port);
|
||||
exit(1);
|
||||
}
|
||||
else
|
||||
listen(mtp3lite_listen_fd, 1);
|
||||
|
||||
printf("mtp3lite_listen_fd: %d\n", mtp3lite_listen_fd);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int isMtp3LiteClientLink(BYTE lk)
|
||||
{
|
||||
//4bits:none sigtran, link enable, mtp3lite enable,client
|
||||
if ((mtp3_para->lk[lk].e1_lk_type & 0x1f)==0x15 && mtp3_para->lk[lk].remote_ip>0)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int checkIfOveridesocket(BYTE lk)
|
||||
{
|
||||
int i;
|
||||
for(i=0;i<lk;i++)
|
||||
{
|
||||
if(isMtp3LiteClientLink(i) && mtp3_para->lk[lk].remote_ip==mtp3_para->lk[i].remote_ip)
|
||||
{
|
||||
printf("mtp3lite client, lk %d is overide with %d \n",lk,i);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int mtp3lite_InitClientSocket(BYTE lk)
|
||||
{
|
||||
struct sockaddr_in sin_addr;
|
||||
int socketfd;
|
||||
|
||||
bzero(&sin_addr,sizeof(struct sockaddr));
|
||||
sin_addr.sin_family = AF_INET;
|
||||
//sin_addr.sin_port = htons(mtp3lite_port);
|
||||
|
||||
mtp3lite_link[lk].cliSockfd = -1;
|
||||
if (isMtp3LiteClientLink(lk) && !checkIfOveridesocket(lk))
|
||||
{
|
||||
//sin_addr.sin_port = mtp3_para->mtp3lite_port; //server port,tmp
|
||||
//sin_addr.sin_addr.s_addr = mtp3_para->lk[lk].remote_ip;
|
||||
//bzero(&(sin_addr.sin_zero),8);
|
||||
if ((socketfd = mtp3lite_Init_TCPSocket(sin_addr,0)) < 0)
|
||||
{
|
||||
printf("MTP3LITE TCP Client Socket(%d) Init Failed!\n",mtp3_para->mtp3lite_port);
|
||||
//exit(1);
|
||||
return 0;
|
||||
}
|
||||
mtp3lite_link[lk].cliSockfd = socketfd;
|
||||
printf("mtp3lite: init client socket link=%d\n",lk);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int mtp3lite_CloseTcpConn(BYTE link)
|
||||
{
|
||||
if(mtp3lite_link[link].connfd>=0)
|
||||
close(mtp3lite_link[link].connfd);
|
||||
if(mtp3lite_link[link].cliSockfd>=0)
|
||||
close(mtp3lite_link[link].cliSockfd);
|
||||
mtp3lite_init_lk(link);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int mtp3lite_get_lk_by_ip(struct sockaddr_in *client_addr)
|
||||
{
|
||||
int lk;
|
||||
|
||||
for (lk = 0; lk < 256; lk++)
|
||||
{
|
||||
if ((mtp3_para->lk[lk].remote_ip == client_addr->sin_addr.s_addr) &&
|
||||
(mtp3_para->lk[lk].e1_to_mtp3 == mtp3_localip) &&
|
||||
((mtp3_para->lk[lk].e1_lk_type & 0x1f) == 0x05) && // Server & MTP3LITE & Enabled
|
||||
(mtp3ObjState.lk_command[lk]!=0)) //Command enabled
|
||||
{
|
||||
if (mtp3lite_link[lk].connfd > 0)
|
||||
{
|
||||
mtp3lite_CloseTcpConn(lk);
|
||||
mtp3lite_updateStatus(lk, MTP2_STATE_STOP, MTP3LITE_INACTIVITY_TIMEOUT);
|
||||
}
|
||||
else if (mtp3lite_link[lk].init_guard_timer == 0)
|
||||
return lk;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
int mtp3lite_DirectSendMsg(BYTE link, int len, BYTE *msg_ptr)
|
||||
{
|
||||
struct sockaddr_in sin;
|
||||
|
||||
if ((MTP3_LINK_TYPE(link) != LKTYPE_MTP3_LITE) || // Not MTP3LITE
|
||||
!(mtp3_para->lk[link].e1_lk_type & 0x01) || // Not Enabled
|
||||
(mtp3ObjState.lk_command[link] == 0) || // Command Disabled
|
||||
(mtp3lite_link[link].connfd <= 0)) // Link Not Established
|
||||
return -1;
|
||||
|
||||
bzero(&sin.sin_zero, sizeof(sin.sin_zero));
|
||||
sin.sin_family = AF_INET;
|
||||
sin.sin_addr.s_addr = mtp3_para->lk[link].remote_ip;
|
||||
sin.sin_port = mtp3lite_link[link].remote_port;
|
||||
|
||||
return send(mtp3lite_link[link].connfd, msg_ptr, len, MSG_NOSIGNAL);
|
||||
}
|
||||
|
||||
int mtp3liteTcpConnect(int sock,struct sockaddr_in *sin_addr)
|
||||
{
|
||||
if (connect(sock, (struct sockaddr *)sin_addr, sizeof(struct sockaddr)) < 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("tcpConnect success, ip=%s\n",inet_ntoa(sin_addr->sin_addr));
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
int mtp3lite_TcpConnectCheck()
|
||||
{
|
||||
int timeout = 20;
|
||||
int connfdtmp = 0;
|
||||
socklen_t clilen;
|
||||
struct sockaddr_in cliaddr;
|
||||
int link;
|
||||
static BYTE cliLk=0;
|
||||
|
||||
bzero(&cliaddr,(clilen = sizeof(struct sockaddr)));
|
||||
|
||||
connfdtmp = accept(mtp3lite_listen_fd,(struct sockaddr *)&cliaddr,&clilen);
|
||||
if (connfdtmp <= 0)//no connect request , check client socke
|
||||
{
|
||||
link = cliLk++;
|
||||
if (!isMtp3LiteClientLink(link))
|
||||
return 0;
|
||||
if (mtp3lite_link[link].connfd > 0)
|
||||
return 0;
|
||||
else if (mtp3lite_link[link].local_reconnect > 0)
|
||||
{
|
||||
mtp3lite_link[link].local_reconnect--;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (mtp3lite_link[link].cliSockfd <= 0)
|
||||
{
|
||||
if (!mtp3lite_InitClientSocket(link))
|
||||
mtp3lite_init_lk(link);
|
||||
}
|
||||
cliaddr.sin_family = AF_INET;
|
||||
cliaddr.sin_port = mtp3_para->mtp3lite_port;
|
||||
cliaddr.sin_addr.s_addr = mtp3_para->lk[link].remote_ip;
|
||||
bzero(&(cliaddr.sin_zero),8);
|
||||
connfdtmp = mtp3lite_link[link].cliSockfd;
|
||||
if (!mtp3liteTcpConnect(connfdtmp, &cliaddr))
|
||||
{
|
||||
if ((errno != EINPROGRESS) && (errno != EALREADY))
|
||||
mtp3lite_CloseTcpConn(link);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else if ((link = mtp3lite_get_lk_by_ip(&cliaddr)) < 0)
|
||||
{
|
||||
close(connfdtmp);
|
||||
return 0;
|
||||
}
|
||||
|
||||
mtp3lite_init_lk(link);
|
||||
mtp3lite_link[link].init_guard_timer = 0;
|
||||
mtp3lite_link[link].connfd = connfdtmp;
|
||||
mtp3lite_link[link].cliSockfd = connfdtmp;
|
||||
mtp3lite_link[link].remote_port = cliaddr.sin_port;
|
||||
printf("link[%d] connfd: %d, rem_port: %d\n", link, connfdtmp, ntohs(mtp3lite_link[link].remote_port));
|
||||
|
||||
fcntl(mtp3lite_link[link].connfd,F_SETFL,O_NONBLOCK);
|
||||
if (setsockopt(mtp3lite_link[link].connfd,SOL_SOCKET,SO_KEEPALIVE,
|
||||
&timeout,sizeof(timeout)) != 0)
|
||||
fprintf(stderr,"set keepalive failed\n");
|
||||
if (setsockopt(mtp3lite_link[link].connfd,SOL_SOCKET,SO_KEEPALIVE,
|
||||
&timeout,sizeof(timeout)) !=0)
|
||||
fprintf(stderr,"set keepalive failed\n");
|
||||
|
||||
mtp3lite_updateStatus(link, MTP2_STATE_WORKING, 0);
|
||||
// mtp3lite_DirectSendMsg(link, 3, mtp3lite_ka_msg);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int mtp3lite_DirectRecvMsg(BYTE link)
|
||||
{
|
||||
struct sockaddr_in sin;
|
||||
int len, nbytes;
|
||||
BYTE len1;
|
||||
|
||||
len = sizeof(struct sockaddr);
|
||||
if ((len1 = mtp3lite_rem_len[link])>0)
|
||||
printf("len1: %d\n", len1);
|
||||
nbytes = recvfrom(mtp3lite_link[link].connfd, mtp3lite_msg_buf[link] + len1,
|
||||
MTP3LITE_MSG_BUF_SIZE_PER_LINK - len1, 0, (struct sockaddr *) &sin, &len);
|
||||
|
||||
if (nbytes == 0)
|
||||
{
|
||||
printf("tcp link[%d] error : %d\n", link, errno);
|
||||
mtp3lite_CloseTcpConn(link);
|
||||
mtp3lite_updateStatus(link, MTP2_STATE_STOP, MTP3LITE_TCP_FAILURE);
|
||||
mtp3lite_rem_len[link] = 0;
|
||||
}
|
||||
|
||||
if ((len1 > 0) && (nbytes > 0))
|
||||
nbytes += len1;
|
||||
|
||||
return nbytes;
|
||||
}
|
||||
/*
|
||||
int mtp3lite_decode_tcp_msg(WORD total_len, BYTE link)
|
||||
{
|
||||
BYTE lk_set, *buf_ptr;
|
||||
WORD sub_len, rem_len, total_hdl_len = 0;
|
||||
up_message up_msg;
|
||||
up_message *up_msg_ptr = &up_msg;
|
||||
BYTE nw;
|
||||
|
||||
if (total_len > MTP3LITE_MSG_BUF_SIZE_PER_LINK)
|
||||
return -1;
|
||||
|
||||
while (total_hdl_len < total_len)
|
||||
{
|
||||
buf_ptr = mtp3lite_msg_buf[link] + total_hdl_len;
|
||||
rem_len = total_len - total_hdl_len;
|
||||
sub_len = buf_ptr[0];
|
||||
|
||||
if (rem_len < (sub_len + 1))
|
||||
{
|
||||
if (total_hdl_len > 0)
|
||||
memcpy(mtp3lite_msg_buf[link], mtp3lite_msg_buf[link] + total_hdl_len, rem_len);
|
||||
mtp3lite_rem_len[link] = rem_len;
|
||||
//printf("Remain: total_len: %d, total_hld_len: %d, sub_len: %d, rem_len: %d\n", total_len, total_hdl_len, sub_len, rem_len);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (sub_len < 2)
|
||||
return -1;
|
||||
else if (sub_len == 2)
|
||||
{
|
||||
if ((buf_ptr[1] == 0x4B) && (buf_ptr[2] == 0x41))
|
||||
{ // Receive Keep Alive Message
|
||||
mtp3lite_link[link].remote_inactive = mtp3_para->lk[link].inactive * 100;
|
||||
mtp3lite_link[link].remote_inactive_timeouts = 0;
|
||||
//mtp3lite_print_msg(buf_ptr, 3);
|
||||
total_hdl_len += (sub_len + 1);
|
||||
//printf("KeepAlive: total_len: %d, total_hld_len: %d, sub_len: %d, rem_len: %d\n", total_len, total_hdl_len, sub_len, rem_len);
|
||||
continue;
|
||||
}
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ((buf_ptr[1] > 9) || (buf_ptr[1] == 0))
|
||||
return -1;
|
||||
|
||||
mtp3lite_link[link].remote_inactive = mtp3_para->lk[link].inactive * 100;
|
||||
mtp3lite_link[link].remote_inactive_timeouts = 0;
|
||||
|
||||
//mtp3lite_print_msg(buf_ptr, sub_len + 1);
|
||||
|
||||
up_msg_ptr->len = sub_len;
|
||||
up_msg_ptr->link = link;
|
||||
lk_set = mtp3_para->lk[link].e1_to_linkset;
|
||||
if (lk_set >= 128)
|
||||
return -1;
|
||||
nw = mtp3_para->ls_pro[lk_set] & 3;
|
||||
up_msg_ptr->sio = 0x03 | (nw << 6) | 0x10;//sccp lite always ansi message
|
||||
up_msg_ptr->opc = mtp3_para->ls_op_pc[lk_set];
|
||||
if (pc_length(up_msg_ptr->sio >> 6) == MTP3_24BIT_PC)
|
||||
up_msg_ptr->dpc = mtp3_para->nw[nw].opc24;
|
||||
else
|
||||
up_msg_ptr->dpc = mtp3_para->nw[nw].opc14;
|
||||
|
||||
memcpy(up_msg_ptr->msgList, buf_ptr + 1, sub_len);
|
||||
|
||||
iptrans_msg_flow_2(up_msg_ptr);
|
||||
send_to_sccp_lite(up_msg_ptr);
|
||||
|
||||
total_hdl_len += (sub_len + 1);
|
||||
//printf("Data: total_len: %d, total_hld_len: %d, sub_len: %d, rem_len: %d\n", total_len, total_hdl_len, sub_len, rem_len);
|
||||
}
|
||||
|
||||
mtp3lite_rem_len[link] = 0;
|
||||
return 1;
|
||||
}
|
||||
*/
|
||||
/******change to struct: 00, len, 0xfd*****/
|
||||
int mtp3lite_decode_tcp_msg(WORD total_len, BYTE link)
|
||||
{
|
||||
BYTE lk_set, *buf_ptr;
|
||||
WORD sub_len, rem_len, total_hdl_len = 0;
|
||||
up_message up_msg;
|
||||
up_message *up_msg_ptr = &up_msg;
|
||||
BYTE nw;
|
||||
|
||||
if (total_len > MTP3LITE_MSG_BUF_SIZE_PER_LINK)
|
||||
return -1;
|
||||
|
||||
while (total_hdl_len < total_len)
|
||||
{
|
||||
buf_ptr = mtp3lite_msg_buf[link] + total_hdl_len;
|
||||
rem_len = total_len - total_hdl_len;
|
||||
sub_len = (buf_ptr[0]<<8) + buf_ptr[1];
|
||||
|
||||
if (rem_len < (sub_len + 1))
|
||||
{
|
||||
if (total_hdl_len > 0)
|
||||
memcpy(mtp3lite_msg_buf[link], mtp3lite_msg_buf[link] + total_hdl_len, rem_len);
|
||||
mtp3lite_rem_len[link] = rem_len;
|
||||
//printf("Remain: total_len: %d, total_hld_len: %d, sub_len: %d, rem_len: %d\n", total_len, total_hdl_len, sub_len, rem_len);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (sub_len < 1)
|
||||
return -1;
|
||||
else if (sub_len == 1)
|
||||
{
|
||||
if(buf_ptr[1+2] == 0x6)
|
||||
{ // Receive Keep Alive Message
|
||||
mtp3lite_link[link].remote_inactive = mtp3_para->lk[link].inactive * 100;
|
||||
mtp3lite_link[link].remote_inactive_timeouts = 0;
|
||||
//mtp3lite_print_msg(buf_ptr, 3);
|
||||
total_hdl_len += (sub_len + 3);
|
||||
mtp3_debug(MTP3DB_EVENT,"mtp3-lite link %d RECV Inditify ACK",link);
|
||||
//printf("KeepAlive: total_len: %d, total_hld_len: %d, sub_len: %d, rem_len: %d\n", total_len, total_hdl_len, sub_len, rem_len);
|
||||
continue;
|
||||
}
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
// if ((buf_ptr[1+2] > 9) || (buf_ptr[1+2] == 0))
|
||||
// return -1;
|
||||
|
||||
mtp3lite_link[link].remote_inactive = mtp3_para->lk[link].inactive * 100;
|
||||
mtp3lite_link[link].remote_inactive_timeouts = 0;
|
||||
|
||||
//mtp3lite_print_msg(buf_ptr, sub_len + 1);
|
||||
|
||||
up_msg_ptr->len = sub_len;
|
||||
up_msg_ptr->link = link;
|
||||
lk_set = mtp3_para->lk[link].e1_to_linkset;
|
||||
if (lk_set >= 128)
|
||||
return -1;
|
||||
nw = mtp3_para->ls_pro[lk_set] & 3;
|
||||
up_msg_ptr->sio = 0x03 | (nw << 6);//sccp lite always itu message
|
||||
up_msg_ptr->opc = mtp3_para->ls_op_pc[lk_set];
|
||||
if (pc_length(up_msg_ptr->sio >> 6) == MTP3_24BIT_PC)
|
||||
up_msg_ptr->dpc = mtp3_para->nw[nw].opc24;
|
||||
else
|
||||
up_msg_ptr->dpc = mtp3_para->nw[nw].opc14;
|
||||
|
||||
memcpy(up_msg_ptr->msgList, buf_ptr + 1 + 2, sub_len);
|
||||
|
||||
iptrans_msg_flow_2(up_msg_ptr);
|
||||
send_to_sccp_lite(up_msg_ptr);
|
||||
|
||||
total_hdl_len += (sub_len + 1 + 2);
|
||||
//printf("Data: total_len: %d, total_hld_len: %d, sub_len: %d, rem_len: %d\n", total_len, total_hdl_len, sub_len, rem_len);
|
||||
}
|
||||
|
||||
mtp3lite_rem_len[link] = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int send_mtp3lite_id_ack(BYTE link)
|
||||
{
|
||||
BYTE id_ack_msg[4]={0,0x1,0xfe, 0x6};
|
||||
|
||||
mtp3lite_DirectSendMsg(link, 4, id_ack_msg);
|
||||
mtp3_debug(MTP3DB_EVENT,"mtp3-lite link %d send Inditify ACK",link);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int get_mtp3lite_msg(BYTE link)
|
||||
{
|
||||
int nbytes;
|
||||
|
||||
if ((MTP3_LINK_TYPE(link) != LKTYPE_MTP3_LITE) || // Not MTP3LITE
|
||||
!(mtp3_para->lk[link].e1_lk_type & 0x01) || // Not Enabled
|
||||
(mtp3ObjState.lk_command[link]==0) || // command disabled
|
||||
(mtp3lite_link[link].connfd <= 0)) // Link Not Established
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ((nbytes = mtp3lite_DirectRecvMsg(link)) <= 0)
|
||||
return -1;
|
||||
|
||||
//mtp3lite_print_msg(mtp3lite_msg_buf[link], nbytes);
|
||||
|
||||
if (mtp3lite_decode_tcp_msg(nbytes, link) < 0)
|
||||
{
|
||||
printf("tcp link[%d] decode error!\n", link);
|
||||
mtp3lite_CloseTcpConn(link);
|
||||
mtp3lite_updateStatus(link, MTP2_STATE_STOP, MTP3LITE_TCP_FAILURE);
|
||||
mtp3lite_rem_len[link] = 0;
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int put_mtp3lite_msg(BYTE *msg_ptr)
|
||||
{
|
||||
BYTE link, ls, nw, pclen, offset;
|
||||
WORD len;
|
||||
|
||||
link = msg_ptr[0];
|
||||
len = (msg_ptr[1]<<8) + msg_ptr[2];
|
||||
|
||||
if ((MTP3_LINK_TYPE(link) != LKTYPE_MTP3_LITE) || // Not MTP3LITE
|
||||
!(mtp3_para->lk[link].e1_lk_type & 0x01) || // Not Enabled
|
||||
(mtp3ObjState.lk_command[link]==0) || // Command disabled
|
||||
(mtp3lite_link[link].connfd <= 0)) // Link Not Established
|
||||
return -1;
|
||||
|
||||
if ((ls = mtp3_para->lk[link].e1_to_linkset) >= 128)
|
||||
return -1;
|
||||
|
||||
nw = mtp3_para->ls_pro[ls] & 0x03;
|
||||
pclen = (mtp3_para->nw_pro >> nw) & 0x01;
|
||||
|
||||
if (pclen)
|
||||
{
|
||||
if (len <= 8)
|
||||
return -1;
|
||||
offset = 9+1;//msg_ptr[offset+1] = sccp data
|
||||
msg_ptr[offset-1] = (len - 8)%0xff;
|
||||
msg_ptr[offset-2] = (len - 8)/0xff;
|
||||
len = len - 7+2;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (len <= 5)
|
||||
return -1;
|
||||
offset = 6+1;
|
||||
msg_ptr[offset-1] = (len - 5)%0xff;
|
||||
msg_ptr[offset-2] = (len - 5)/0xff;
|
||||
len = len - 4+2;
|
||||
}
|
||||
/******change to struct: 00, len, 0xfd*****/
|
||||
msg_ptr[offset] = 0xfd;
|
||||
|
||||
/******change to struct: 00, len, 0xfd*****/
|
||||
mtp3lite_DirectSendMsg(link, len, msg_ptr + offset - 2);
|
||||
//mtp3lite_link[link].local_inactive = 2000;
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*
|
||||
int put_mtp3lite_msg(BYTE *msg_ptr)
|
||||
{
|
||||
BYTE link, len, ls, nw, pclen, offset;
|
||||
|
||||
link = msg_ptr[0];
|
||||
len = msg_ptr[1];
|
||||
|
||||
if ((MTP3_LINK_TYPE(link) != LKTYPE_MTP3_LITE) || // Not MTP3LITE
|
||||
!(mtp3_para->lk[link].e1_lk_type & 0x01) || // Not Enabled
|
||||
(mtp3ObjState.lk_command[link]==0) || // Command disabled
|
||||
(mtp3lite_link[link].connfd <= 0)) // Link Not Established
|
||||
return -1;
|
||||
|
||||
if ((ls = mtp3_para->lk[link].e1_to_linkset) >= 128)
|
||||
return -1;
|
||||
|
||||
nw = mtp3_para->ls_pro[ls] & 0x03;
|
||||
pclen = (mtp3_para->nw_pro >> nw) & 0x01;
|
||||
|
||||
if (pclen)
|
||||
{
|
||||
if (len <= 8)
|
||||
return -1;
|
||||
offset = 9;
|
||||
msg_ptr[offset] = len - 8;
|
||||
len = len - 7;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (len <= 5)
|
||||
return -1;
|
||||
offset = 6;
|
||||
msg_ptr[offset] = len - 5;
|
||||
len = len - 4;
|
||||
}
|
||||
|
||||
mtp3lite_DirectSendMsg(link, len, msg_ptr + offset);
|
||||
//mtp3lite_link[link].local_inactive = 2000;
|
||||
|
||||
return 0;
|
||||
}
|
||||
*/
|
||||
int mtp3lite_chk_lk(BYTE link)
|
||||
{
|
||||
// char str[19]={7,0,0x11,0x83,0x71,0xab,0xdc,0x1a,0x06,0xf6, 0,0,0,1,5,1,3,2,9,4};
|
||||
if ((MTP3_LINK_TYPE(link) != LKTYPE_MTP3_LITE) || // Not MTP3LITE
|
||||
!(mtp3_para->lk[link].e1_lk_type & 0x01) || // Not Enabled
|
||||
(mtp3ObjState.lk_command[link] == 0)) // Command disabled
|
||||
return 0;
|
||||
|
||||
if (mtp3lite_link[link].init_guard_timer > 0)
|
||||
mtp3lite_link[link].init_guard_timer--;
|
||||
|
||||
if (mtp3lite_link[link].connfd <= 0) // Link Not Established
|
||||
return 0;
|
||||
|
||||
if (mtp3lite_link[link].remote_inactive > 0)
|
||||
{
|
||||
if (--mtp3lite_link[link].remote_inactive == 0)
|
||||
{
|
||||
|
||||
// if (++mtp3lite_link[link].remote_inactive_timeouts >= mtp3_para->lk[link].inactive_tm)
|
||||
if(0)
|
||||
{
|
||||
printf("link[%d] remote inactivity %d seconds timeout %d times!\n", link, mtp3_para->lk[link].inactive, mtp3_para->lk[link].inactive_tm);
|
||||
mtp3lite_CloseTcpConn(link);
|
||||
mtp3lite_updateStatus(link, MTP2_STATE_STOP, MTP3LITE_INACTIVITY_TIMEOUT);
|
||||
}
|
||||
else
|
||||
{
|
||||
mtp3lite_link[link].remote_inactive = mtp3_para->lk[link].inactive * 100;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (mtp3lite_link[link].local_inactive > 0)
|
||||
{
|
||||
if(mtp3lite_id_fg[link]==0)
|
||||
{
|
||||
mtp3lite_id_fg[link] = 1;
|
||||
send_mtp3lite_id_ack(link);
|
||||
}
|
||||
if (--mtp3lite_link[link].local_inactive == 0)
|
||||
{
|
||||
// mtp3lite_DirectSendMsg(link, 3, mtp3lite_ka_msg);
|
||||
// put_mtp3lite_msg(&str);
|
||||
mtp3lite_link[link].local_inactive = 2000;
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
void deactive_mtp3lite_lk(link)
|
||||
{
|
||||
if ((MTP3_LINK_TYPE(link) == LKTYPE_MTP3_LITE) && // MTP3LITE
|
||||
(mtp3_para->lk[link].e1_lk_type & 0x01) && // Enabled
|
||||
(mtp3lite_link[link].connfd > 0))
|
||||
{//sccp lite link
|
||||
mtp3_debug(MTP3DB_EVENT,"mtp3-lite link %d Deactive by MNG",link);
|
||||
mtp3lite_CloseTcpConn(link);
|
||||
mtp3lite_updateStatus(link, MTP2_STATE_STOP, MTP3LITE_INACTIVITY_TIMEOUT);
|
||||
}
|
||||
}
|
||||
|
||||
void mtp3lite_init(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
printf("MTP3LITE Init Start!\n");
|
||||
|
||||
for (i = 0; i < 256; i++)
|
||||
{
|
||||
mtp3lite_init_lk(i);
|
||||
mtp3lite_InitClientSocket(i);
|
||||
}
|
||||
|
||||
mtp3lite_listen_fd = -1;
|
||||
|
||||
// mtp3lite_InitServerSocket();
|
||||
|
||||
mtp3lite_init_ka_msg();//keep alive message
|
||||
|
||||
printf("MTP3LITE Init Complete!\n");
|
||||
}
|
||||
|
||||
void mtp3lite_reset(void)
|
||||
{
|
||||
int link;
|
||||
|
||||
for (link=0;link<256;link++)
|
||||
{
|
||||
if (mtp3lite_link[link].connfd >=0)
|
||||
{
|
||||
mtp3lite_CloseTcpConn(link);
|
||||
mtp3lite_rem_len[link] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void mtp3lite_timer(void)
|
||||
{
|
||||
int link;
|
||||
|
||||
mtp3lite_TcpConnectCheck();
|
||||
|
||||
for (link = 0; link < 256; link++)
|
||||
{
|
||||
get_mtp3lite_msg(link);
|
||||
mtp3lite_chk_lk(link);
|
||||
}
|
||||
}
|
||||
/*@end@*/
|
||||
2018
plat/mtp3_old/src/mtpinit.c
Normal file
2018
plat/mtp3_old/src/mtpinit.c
Normal file
File diff suppressed because it is too large
Load Diff
2483
plat/mtp3_old/src/mtpm.c
Normal file
2483
plat/mtp3_old/src/mtpm.c
Normal file
File diff suppressed because it is too large
Load Diff
2544
plat/mtp3_old/src/mtpmib.c
Normal file
2544
plat/mtp3_old/src/mtpmib.c
Normal file
File diff suppressed because it is too large
Load Diff
405
plat/mtp3_old/src/mtpslm.c
Normal file
405
plat/mtp3_old/src/mtpslm.c
Normal file
@@ -0,0 +1,405 @@
|
||||
#include "./include/mtp3.h"
|
||||
#include "./include/mtpstm.h"
|
||||
#include "./include/mtpext.h"
|
||||
#include "./include/mtpfunc.h"
|
||||
|
||||
/*@ignore@*/
|
||||
void sltc_proc(BYTE chl)
|
||||
{
|
||||
ls_info *ls;
|
||||
ls = &mtp3.ls[mtp3_para->lk[chl].e1_to_linkset];
|
||||
|
||||
if (mtp3ObjInput.sltc_input[chl] == SLTC_STOP)
|
||||
{
|
||||
mtp3ObjInput.sltc_input[chl] = IDLE;
|
||||
mtp3ObjState.sltc_state[chl] = SLTC_IDLE_STATE;
|
||||
}
|
||||
|
||||
switch (mtp3ObjState.sltc_state[chl])
|
||||
{
|
||||
case SLTC_IDLE_STATE:
|
||||
if (mtp3ObjInput.sltc_input[chl] == SLTC_START)
|
||||
{
|
||||
mtp3ObjInput.sltc_input[chl] = IDLE;
|
||||
hmrt_sltc_signalling_link_test_msg(chl);
|
||||
sltc_t1_delay[chl] = 4;
|
||||
mtp3ObjState.sltc_state[chl] = SLTC_FIRST_TRY_STATE;
|
||||
}
|
||||
break;
|
||||
|
||||
case SLTC_FIRST_TRY_STATE:
|
||||
sltc_t1_delay[chl] --;
|
||||
if ( mtp3ObjInput.sltc_input[chl] == SLTA_MSG )
|
||||
{
|
||||
mtp3ObjInput.sltc_input[chl] = IDLE;
|
||||
mtp3ObjInput.lsac_input_from_sltc[chl] = LSAC_SLTC_SLT_SUCCESSFUL;
|
||||
mtp3ObjState.sltc_state[chl] = SLTC_RUNNING_STATE;
|
||||
sltc_t2_delay[chl] = 30;
|
||||
}
|
||||
else if ( sltc_t1_delay[chl] == 0 )
|
||||
{
|
||||
mtp3ObjInput.sltc_input[chl] = IDLE;
|
||||
sltc_t1_delay[chl] = 4;
|
||||
hmrt_sltc_signalling_link_test_msg(chl);
|
||||
mtp3ObjState.sltc_state[chl] = SLTC_SECOND_TRY_STATE;
|
||||
}
|
||||
break;
|
||||
|
||||
case SLTC_SECOND_TRY_STATE:
|
||||
sltc_t1_delay[chl]--;
|
||||
if ( mtp3ObjInput.sltc_input[chl] == SLTA_MSG )
|
||||
{
|
||||
mtp3ObjInput.sltc_input[chl] = IDLE;
|
||||
mtp3ObjInput.lsac_input_from_sltc[chl] = LSAC_SLTC_SLT_SUCCESSFUL;
|
||||
mtp3ObjState.sltc_state[chl] = SLTC_RUNNING_STATE;
|
||||
sltc_t2_delay[chl] = 30;
|
||||
}
|
||||
else if ( sltc_t1_delay[chl] == 0 )
|
||||
{
|
||||
mtp3ObjInput.sltc_input[chl] = IDLE;
|
||||
sltc_t1_delay[chl] = 4;
|
||||
hmrt_sltc_signalling_link_test_msg(chl);
|
||||
mtp3ObjState.sltc_state[chl] = SLTC_THIRD_TRY_STATE;
|
||||
}
|
||||
break;
|
||||
|
||||
case SLTC_THIRD_TRY_STATE:
|
||||
sltc_t1_delay[chl]--;
|
||||
if ( mtp3ObjInput.sltc_input[chl] == SLTA_MSG )
|
||||
{
|
||||
mtp3ObjInput.sltc_input[chl] = IDLE;
|
||||
mtp3ObjInput.lsac_input_from_sltc[chl] = LSAC_SLTC_SLT_SUCCESSFUL;
|
||||
mtp3ObjState.sltc_state[chl] = SLTC_RUNNING_STATE;
|
||||
sltc_t2_delay[chl] = 30;
|
||||
}
|
||||
else if ( sltc_t1_delay[chl] == 0 )
|
||||
{
|
||||
mtp3ObjInput.sltc_input[chl] = IDLE;
|
||||
mtp3ObjInput.lsac_input_from_sltc[chl] = LSAC_SLTC_SLT_FAILED;
|
||||
mtp3ObjState.sltc_state[chl] = SLTC_IDLE_STATE;
|
||||
}
|
||||
break;
|
||||
|
||||
case SLTC_RUNNING_STATE:
|
||||
sltc_t2_delay[chl] --;
|
||||
if ( sltc_t2_delay[chl] == 0 )
|
||||
{
|
||||
mtp3ObjInput.sltc_input[chl] = IDLE;
|
||||
hmrt_sltc_signalling_link_test_msg(chl);
|
||||
mtp3ObjState.sltc_state[chl] = SLTC_FIRST_TRY_STATE;
|
||||
sltc_t1_delay[chl] = 4;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
int link_auc(BYTE chl)
|
||||
{
|
||||
BYTE linkset;
|
||||
|
||||
linkset = mtp3_para->lk[chl].e1_to_linkset;
|
||||
if ( (mtp3ObjState.lk_configured[chl] != PARA_CONFIGURED) ||
|
||||
(mtp3ObjState.lk_mtp3[chl] != mtp3_localip) )
|
||||
return 3;
|
||||
if (mtp3ObjState.link_l1_state[chl] != 1)
|
||||
return 2;
|
||||
if (mtp3.ls[linkset].links_available == 0)
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
|
||||
/* return value:
|
||||
* 0=linkset not only one link available
|
||||
* 1=linkset only one link available
|
||||
* 2=send command to enable this link
|
||||
* 3=no need to send command to this link */
|
||||
}
|
||||
|
||||
void lsac_proc(BYTE chl)
|
||||
{
|
||||
int aucResult;
|
||||
static BYTE timer[256];
|
||||
|
||||
if (init_lsac_state[chl] == TRUE)
|
||||
{
|
||||
init_lsac_state[chl] = IDLE;
|
||||
mtp3ObjState.lsac_state[chl] = LSAC_INACTIVE_STATE;
|
||||
return;
|
||||
}
|
||||
|
||||
switch (mtp3ObjState.lsac_state[chl])
|
||||
{
|
||||
case LSAC_INACTIVE_STATE:
|
||||
switch (mtp3ObjInput.lsac_input_from_mgmt[chl])
|
||||
{
|
||||
case LSAC_MGMT_ACTIVATE_LINK:
|
||||
if (timer[chl]++>50)
|
||||
{
|
||||
timer[chl] = 0;
|
||||
aucResult = link_auc(chl);
|
||||
switch (aucResult)
|
||||
{
|
||||
case 0:
|
||||
if (MTP3_LINK_TYPE(chl) == LKTYPE_SIGTRAN)//m2ua link
|
||||
send_command_to_mtp2(chl,MTP3_M2UA_ENABLE);
|
||||
send_command_to_mtp2(chl,MTP2_ACTIVE_LINK);
|
||||
mtp3_debug(MTP3DB_EVENT,"[lsac]link %d normal alignment",chl);
|
||||
// printf("chl %d normal alignment\n",chl);
|
||||
mtp3ObjState.lsac_state[chl] = LSAC_RESTORING_STATE;
|
||||
timer[chl] = 0;
|
||||
break;
|
||||
case 1:
|
||||
if (MTP3_LINK_TYPE(chl) == LKTYPE_SIGTRAN)//m2ua link
|
||||
send_command_to_mtp2(chl,MTP3_M2UA_ENABLE);
|
||||
send_command_to_mtp2(chl,MTP2_EMERGEN_ALIGNMENT);
|
||||
mtp3_debug(MTP3DB_EVENT,"[lsac]link %d emergent alignment",chl);
|
||||
// printf("chl %d emergent alignment\n",chl);
|
||||
mtp3ObjState.lsac_state[chl] = LSAC_RESTORING_STATE;
|
||||
timer[chl] = 0;
|
||||
break;
|
||||
case 2:
|
||||
if (MTP3_LINK_TYPE(chl) != LKTYPE_MTP3_LITE)//m2ua link
|
||||
send_command_to_mtp2(chl,MTP3_M2UA_ENABLE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case LSAC_MGMT_DEACTIVATE_LINK:
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
switch (mtp3ObjInput.lsac_input_from_l2[chl])
|
||||
{
|
||||
case LSAC_L2_IN_SERVICE:
|
||||
break;
|
||||
|
||||
case LSAC_L2_OUT_OF_SERVICE:
|
||||
mtp3ObjInput.lsac_input_from_l2[chl] = IDLE;
|
||||
break;
|
||||
|
||||
case LSAC_L2_REMOTE_PROCESSOR_RECOV:
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case LSAC_RESTORING_STATE:
|
||||
switch (mtp3ObjInput.lsac_input_from_mgmt[chl])
|
||||
{
|
||||
case LSAC_MGMT_ACTIVATE_LINK:
|
||||
if ( (mtp3ObjState.sltc_state[chl] == SLTC_IDLE_STATE) &&
|
||||
(timer[chl]++>60)) // change timer 8s to 9.6s
|
||||
{
|
||||
timer[chl] = 0;
|
||||
aucResult = link_auc(chl);
|
||||
switch (aucResult)
|
||||
{
|
||||
case 0:
|
||||
if (MTP3_LINK_TYPE(chl) == LKTYPE_SIGTRAN)//m2ua link
|
||||
send_command_to_mtp2(chl,MTP3_M2UA_ENABLE);
|
||||
send_command_to_mtp2(chl,MTP2_ACTIVE_LINK);
|
||||
break;
|
||||
case 1:
|
||||
if (MTP3_LINK_TYPE(chl) == LKTYPE_SIGTRAN)//m2ua link
|
||||
send_command_to_mtp2(chl,MTP3_M2UA_ENABLE);
|
||||
send_command_to_mtp2(chl,MTP2_EMERGEN_ALIGNMENT);
|
||||
break;
|
||||
default:
|
||||
mtp3ObjState.lsac_state[chl] = LSAC_INACTIVE_STATE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case LSAC_MGMT_DEACTIVATE_LINK:
|
||||
send_command_to_mtp2(chl,MTP2_DEACTIVE_LINK);
|
||||
mtp3ObjState.lsac_state[chl] = LSAC_INACTIVE_STATE;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
switch (mtp3ObjInput.lsac_input_from_l2[chl])
|
||||
{
|
||||
case LSAC_L2_IN_SERVICE:
|
||||
mtp3ObjInput.lsac_input_from_l2[chl] = IDLE;
|
||||
mtp3_debug(MTP3DB_EVENT,"[lsac]link %d L2 in service,start testing procedure",chl);
|
||||
mtp3ObjInput.sltc_input[chl] = SLTC_START;
|
||||
sltc_proc(chl);/* start to send sltm */
|
||||
break;
|
||||
|
||||
case LSAC_L2_OUT_OF_SERVICE:
|
||||
mtp3ObjInput.lsac_input_from_l2[chl] = IDLE;
|
||||
break;
|
||||
|
||||
case LSAC_L2_REMOTE_PROCESSOR_RECOV:
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
switch (mtp3ObjInput.lsac_input_from_sltc[chl])
|
||||
{
|
||||
case LSAC_SLTC_SLT_SUCCESSFUL:
|
||||
mtp3ObjInput.lsac_input_from_sltc[chl] = IDLE;
|
||||
mtp3ObjInput.tlac_input_from_slm[chl] = TLAC_LSAC_LINK_IN_SERVICE;
|
||||
mtp3ObjState.lsac_state[chl] = LSAC_ACTIVE_STATE;
|
||||
mtp3_debug(MTP3DB_EVENT,"[lsac]link %d complete test procedure,test pass",chl);
|
||||
break;
|
||||
|
||||
case LSAC_SLTC_SLT_FAILED:
|
||||
mtp3ObjInput.lsac_input_from_sltc[chl] = IDLE;
|
||||
mtp3ObjState.link_l2_state[chl] = UNAVAILABLE;
|
||||
send_command_to_mtp2(chl,MTP2_STOP_L2);
|
||||
mtp3ObjState.lsac_state[chl] = LSAC_INACTIVE_STATE;
|
||||
mtp3_debug(MTP3DB_EVENT,"[lsac]link %d complete test procedure,test failed",chl);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case LSAC_ACTIVE_STATE:
|
||||
switch (mtp3ObjInput.lsac_input_from_mgmt[chl])
|
||||
{
|
||||
case LSAC_MGMT_ACTIVATE_LINK:
|
||||
break;
|
||||
|
||||
case LSAC_MGMT_DEACTIVATE_LINK:
|
||||
mtp3ObjInput.tlac_input_from_slm[chl] = TLAC_LSAC_SIGLINK_FAILED;
|
||||
mtp3ObjState.lsac_state[chl] = LSAC_WAIT_STATE;
|
||||
// mtp3ObjState.lsac_state[chl] = LSAC_INACTIVE_STATE;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
switch (mtp3ObjInput.lsac_input_from_l2[chl])
|
||||
{
|
||||
case LSAC_L2_IN_SERVICE:
|
||||
mtp3ObjInput.lsac_input_from_l2[chl] = IDLE;
|
||||
break;
|
||||
|
||||
case LSAC_L2_OUT_OF_SERVICE:
|
||||
mtp3_debug(MTP3DB_EVENT,"[lsac]link %d failed",chl);
|
||||
// printf("lsac link %d failed\n",chl);
|
||||
mtp3ObjInput.lsac_input_from_l2[chl] = IDLE;
|
||||
if (link_inhibited[chl] != TRUE)
|
||||
{
|
||||
mtp3ObjInput.tlac_input_from_slm[chl] = TLAC_LSAC_SIGLINK_FAILED;
|
||||
mtp3ObjState.lsac_state[chl] = LSAC_FAILED_STATE;
|
||||
}
|
||||
break;
|
||||
|
||||
case LSAC_L2_REMOTE_PROCESSOR_RECOV:
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
switch (mtp3ObjInput.lsac_input_from_sltc[chl])
|
||||
{
|
||||
case LSAC_SLTC_SLT_SUCCESSFUL:
|
||||
mtp3ObjInput.lsac_input_from_sltc[chl] = IDLE;
|
||||
break;
|
||||
|
||||
case LSAC_SLTC_SLT_FAILED:
|
||||
mtp3ObjInput.lsac_input_from_sltc[chl] = IDLE;
|
||||
mtp3ObjState.lsac_state[chl] = LSAC_INACTIVE_STATE;
|
||||
send_command_to_mtp2(chl,MTP2_STOP_L2);
|
||||
mtp3_debug(MTP3DB_EVENT,"[lsac]link %d test failed during active state",chl);
|
||||
mtp3ObjState.link_l2_state[chl] = UNAVAILABLE;
|
||||
mtp3_send_alarm(MTP3_LINK_COMPONENT+chl,MTP3ALARM_LINK_TEST_FAILED);
|
||||
if (link_inhibited[chl] != TRUE)
|
||||
{
|
||||
mtp3ObjInput.tlac_input_from_slm[chl] = TLAC_LSAC_SIGLINK_FAILED;
|
||||
mtp3ObjState.lsac_state[chl] = LSAC_FAILED_STATE;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
switch (mtp3ObjInput.lsac_input_from_tcoc[chl])
|
||||
{
|
||||
case LSAC_TCOC_STM_READY:
|
||||
mtp3ObjInput.lsac_input_from_tcoc[chl] = IDLE;
|
||||
break;
|
||||
|
||||
case LSAC_TCOC_STOP_L2:
|
||||
mtp3ObjInput.lsac_input_from_tcoc[chl] = IDLE;
|
||||
send_command_to_mtp2(chl,MTP2_STOP_L2);
|
||||
mtp3_send_alarm(MTP3_LINK_COMPONENT+chl,MTP3ALARM_LINK_CHANGE_OVER);
|
||||
if (link_inhibited[chl] != TRUE)
|
||||
{
|
||||
mtp3ObjState.lsac_state[chl] = LSAC_FAILED_STATE;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
switch (mtp3ObjInput.lsac_input_from_stm[chl])
|
||||
{
|
||||
case LSAC_TLAC_CHANGEOVER_ORDER_RECEIVED:
|
||||
mtp3ObjInput.lsac_input_from_stm[chl] = IDLE;
|
||||
send_command_to_mtp2(chl,MTP2_STOP_L2);
|
||||
mtp3_send_alarm(MTP3_LINK_COMPONENT+chl,MTP3ALARM_LINK_CHANGE_OVER);
|
||||
mtp3_debug(MTP3DB_EVENT,"[lsac]receive coo");
|
||||
// printf("lsac receive coo\n");
|
||||
mtp3ObjState.lsac_state[chl] = LSAC_FAILED_STATE;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case LSAC_WAIT_STATE:
|
||||
if ( mtp3ObjInput.lsac_input_from_tcoc[chl] == LSAC_TCOC_STM_READY)
|
||||
{
|
||||
mtp3ObjInput.lsac_input_from_tcoc[chl] = IDLE;
|
||||
send_command_to_mtp2(chl,MTP2_STOP_L2);
|
||||
mtp3_send_alarm(MTP3_LINK_COMPONENT+chl,MTP3ALARM_LINK_MGMT_REQUEST);
|
||||
mtp3ObjState.lsac_state[chl] = LSAC_INACTIVE_STATE;
|
||||
}
|
||||
break;
|
||||
|
||||
case LSAC_FAILED_STATE:
|
||||
if (mtp3ObjInput.lsac_input_from_stm[chl] != IDLE)
|
||||
{
|
||||
mtp3ObjInput.lsac_input_from_stm[chl] = IDLE;
|
||||
}
|
||||
if ( mtp3ObjInput.lsac_input_from_tcoc[chl] == LSAC_TCOC_STM_READY )
|
||||
{
|
||||
mtp3ObjInput.lsac_input_from_tcoc[chl] = IDLE;
|
||||
changeover_in_progress[chl] = FALSE;
|
||||
if (mtp3ObjState.lk_mtp3[chl] == mtp3_localip)
|
||||
send_command_to_mtp2(chl,MTP2_ACTIVE_LINK);
|
||||
mtp3ObjState.lsac_state[chl] = LSAC_RESTORING_STATE;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
/*@end@*/
|
||||
4260
plat/mtp3_old/src/mtpsmh.c
Normal file
4260
plat/mtp3_old/src/mtpsmh.c
Normal file
File diff suppressed because it is too large
Load Diff
336
plat/mtp3_old/src/mtpsrm.c
Normal file
336
plat/mtp3_old/src/mtpsrm.c
Normal file
@@ -0,0 +1,336 @@
|
||||
#include "./include/mtp3.h"
|
||||
#include "./include/mtpstm.h"
|
||||
#include "./include/mtpext.h"
|
||||
#include "./include/mtpfunc.h"
|
||||
|
||||
/*@ignore@*/
|
||||
void hmrt_srm_msg(BYTE linkset, BYTE MsgType, long dst);
|
||||
void hmrt_tfrc_update_routing_tables(BYTE dst, BYTE nw);
|
||||
void tsrc_fun6(BYTE link,BYTE nw,BYTE sp_place);
|
||||
void tsrc_fun8(BYTE ls,BYTE nw,BYTE sp_place);
|
||||
int find_dst_place(long dst,BYTE ls);
|
||||
|
||||
void mark_alternative_linkset_available(BYTE *routine)
|
||||
{
|
||||
(*routine) = ( (*routine) & 0xc3 ) + 0x10;/* mark alternative route use and acessible*/
|
||||
}
|
||||
|
||||
void mark_alternative_linkset_unavailable(BYTE *routine)
|
||||
{
|
||||
(*routine) = ((*routine) & 0xf3 ) + 0x08;/* mark alternative route can't use */
|
||||
}
|
||||
|
||||
void mark_normal_linkset_available(BYTE *routine)
|
||||
{
|
||||
(*routine) = ((*routine) & 0xcc) + 0x10;/* mark normal route can use,and acessible */
|
||||
}
|
||||
|
||||
void mark_normal_linkset_unavailable(BYTE *routine)
|
||||
{
|
||||
(*routine) = ((*routine) & 0xfc) + 0x02;/* mark normal route unavailable */
|
||||
}
|
||||
|
||||
void mark_dstSP_inaccessible(BYTE *routine)
|
||||
{
|
||||
(*routine) = ((*routine) & 0xcf);/* mark destination sp inaccessible */
|
||||
}
|
||||
|
||||
int find_directLS_to_dst(long dst)
|
||||
{
|
||||
BYTE i;
|
||||
|
||||
for ( i=0; i<128; i++ )
|
||||
{
|
||||
if ( mtp3_para->ls_op_pc[i] == dst )
|
||||
return i;
|
||||
}
|
||||
return 128;
|
||||
}
|
||||
|
||||
void tsrc_rtpc_signalling_route_unavailable(BYTE dst, BYTE nw)
|
||||
{
|
||||
BYTE ls;
|
||||
network *sp;
|
||||
BYTE msgopc;
|
||||
BYTE nls;
|
||||
BYTE als;
|
||||
|
||||
nls = mtp3_para->nw[nw].normal_ls[dst];
|
||||
als = mtp3_para->nw[nw].alternative_ls[dst];
|
||||
sp = &mtp3.nw[nw];
|
||||
msgopc = TFPmsg_OPC;
|
||||
ls = mtp3_para->lk[TFPmsg_SrcLk].e1_to_linkset;
|
||||
|
||||
if ( ls > 127 )
|
||||
return;
|
||||
if ( mtp3.ls[ls].adjacentsp_restarting == 1 )/* adjacent sp restarting */
|
||||
{
|
||||
if (nls == ls)
|
||||
mark_normal_linkset_unavailable(&sp->routine[dst]);
|
||||
else if (als == ls)
|
||||
mark_alternative_linkset_unavailable(&sp->routine[dst]);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( nls == ls )
|
||||
{
|
||||
if ( (sp->routine[dst] >> 6) == 2 )
|
||||
return;
|
||||
tsrc_fun6(TFPmsg_SrcLk,nw,dst);
|
||||
hmrt_tfrc_update_routing_tables(dst,nw);
|
||||
}
|
||||
else if ( als == ls )
|
||||
{
|
||||
tsrc_fun6(TFPmsg_SrcLk,nw,dst);
|
||||
hmrt_tfrc_update_routing_tables(dst,nw);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void tsrc_rtac_signalling_route_available(BYTE dst, BYTE nw)
|
||||
{
|
||||
int ls;
|
||||
network *sp;
|
||||
DWORD msgopc;
|
||||
BYTE nls_t;
|
||||
BYTE als_t;
|
||||
BYTE current_route;
|
||||
WORD msgopc_place;
|
||||
int lsnoRSP_is_msgOPC;
|
||||
|
||||
sp = &mtp3.nw[nw];
|
||||
current_route = sp->routine[dst] >> 6;
|
||||
msgopc = TFAmsg_OPC;
|
||||
ls = mtp3_para->lk[TFAmsg_SrcLk].e1_to_linkset;
|
||||
if ( ls > 127 )
|
||||
return;
|
||||
lsnoRSP_is_msgOPC = find_directLS_to_dst(msgopc);
|
||||
if ( lsnoRSP_is_msgOPC == 128 )
|
||||
return;/* msg opc is not any linkset's remote sp */
|
||||
msgopc_place = mtp3.ls[lsnoRSP_is_msgOPC].adjacent_sp_place;
|
||||
if (msgopc_place > 255)
|
||||
return;
|
||||
|
||||
if ( !own_sp_restarting )
|
||||
{
|
||||
if ( ((sp->routine[msgopc_place] >> 4) & 3) == SP_ACCESSIBLE )/* msg opc accessible */
|
||||
tsrc_fun8(ls,nw,dst);
|
||||
|
||||
else/* msg opc inacessible */
|
||||
{
|
||||
// mtp3_debug(MTP3_DEBUG_LOG,"msgopc inacessible\n\r");
|
||||
sp->rtac_input[msgopc_place] = RTAC_DEST_ACCESSIBLE;/* send tfa to all adjacent sp */
|
||||
|
||||
nls_t = mtp3_para->nw[nw].normal_ls[msgopc_place];
|
||||
als_t = mtp3_para->nw[nw].alternative_ls[msgopc_place];
|
||||
mtp3ObjInput.taprc_input[lsnoRSP_is_msgOPC] = TPRC_ADJACENT_SP_RESTARTING;
|
||||
|
||||
if ( nls_t == ls )
|
||||
mark_normal_linkset_available(&sp->routine[msgopc_place]);
|
||||
else if ( als_t == ls )
|
||||
mark_alternative_linkset_available(&sp->routine[msgopc_place]);
|
||||
current_measure->ls_measure[ls][4]++;/* Broadcast TFA for recovery of measured linkset */
|
||||
}
|
||||
}
|
||||
hmrt_tfrc_update_routing_tables(msgopc_place,nw);
|
||||
hmrt_tfrc_update_routing_tables(dst,nw);
|
||||
}
|
||||
|
||||
void rtpc_proc(BYTE netw,BYTE dst)
|
||||
{
|
||||
network *nw;
|
||||
BYTE ls;
|
||||
|
||||
nw = &mtp3.nw[netw];
|
||||
switch ( nw->rtpc_state[dst] )
|
||||
{
|
||||
case RTPC_IDLE_STATE:
|
||||
switch ( nw->rtpc_input[dst] )
|
||||
{
|
||||
case RTPC_RSRT_SEND_TFP_MSG:/* not supported */
|
||||
nw->rtpc_input[dst] = IDLE;
|
||||
hmrt_srm_msg(sdTFP_Ls,SIGNAL_TFP,mtp3_para->nw[netw].dpc[dst]);
|
||||
nw->rtpc_state[dst] = RTPC_WAIT_STATE;
|
||||
break;
|
||||
|
||||
case RTPC_TSRC_SEND_TFP_MSG:/* send tfp message to linkset opposit sp */
|
||||
// printf("send tfp message to linkset %d,TFDPC=%lx\n",sdTFP_Ls,mtp3_para->nw[netw].dpc[dst]);
|
||||
nw->rtpc_input[dst] = IDLE;
|
||||
hmrt_srm_msg(sdTFP_Ls,SIGNAL_TFP,mtp3_para->nw[netw].dpc[dst]);
|
||||
nw->rtpc_state[dst] = RTPC_WAIT_STATE;
|
||||
break;
|
||||
|
||||
case RTPC_DEST_INACCESSIBLE:/*one dst inaccessible, send tfp to all adjacent sp about this dst */
|
||||
nw->rtpc_input[dst] = IDLE;
|
||||
for ( ls=0; ls<128; ls++ )
|
||||
{
|
||||
if ((mtp3_para->ls_pro[ls] & 3) == netw)
|
||||
{
|
||||
// printf("send tfp message to linkset %d,TFDPC=%lx\n",ls,mtp3_para->nw[netw].dpc[dst]);
|
||||
hmrt_srm_msg(ls,SIGNAL_TFP,mtp3_para->nw[netw].dpc[dst]);/* send tfp to adjacent sp */
|
||||
}
|
||||
}
|
||||
if (own_sp_restarting == 1)
|
||||
{
|
||||
// hmrt_tra_msg(ls);//printf("send tra\n");
|
||||
mtp3ObjInput.tprc_input = TPRC_RTPC_TFP_SENT;
|
||||
}
|
||||
break;
|
||||
|
||||
case RTPC_TFP_MSG:/* receive TFP from other sp */
|
||||
// printf("rtpc dst %d tfp\n",dst);
|
||||
nw->rtpc_input[dst] = IDLE;
|
||||
if ( controlled_rerouting_in_progress[dst] == TRUE )
|
||||
transfer_prohibited[dst] = TRUE;
|
||||
else
|
||||
{
|
||||
tsrc_rtpc_signalling_route_unavailable(dst,netw);
|
||||
if (!own_sp_restarting)
|
||||
{
|
||||
nw->rsrt_input[dst] = RSRT_RTPC_ROUTE_SET_TEST;
|
||||
}
|
||||
//if sp isn't restarting
|
||||
//start route set test
|
||||
}
|
||||
break;
|
||||
|
||||
case RTPC_CTRL_RERT_TERMINATED:/* not supported */
|
||||
nw->rtpc_input[dst] = IDLE;
|
||||
controlled_rerouting_in_progress[dst] = FALSE;
|
||||
if ( transfer_prohibited[dst] == TRUE )
|
||||
{
|
||||
transfer_prohibited[dst] = FALSE;
|
||||
//tsrc_rtpc_signalling_route_unavailable
|
||||
//if sp isn't restarting
|
||||
//start route set test
|
||||
}
|
||||
break;
|
||||
|
||||
case RTPC_CONTROLLED_RERT:/* not supported */
|
||||
nw->rtpc_input[dst] = IDLE;
|
||||
controlled_rerouting_in_progress[dst] = TRUE;
|
||||
break;
|
||||
|
||||
case RTPC_RESTART_BEGINS:
|
||||
nw->rtpc_input[dst] = IDLE;
|
||||
controlled_rerouting_in_progress[dst] = FALSE;
|
||||
transfer_prohibited[dst] = FALSE;
|
||||
/* mark sp restarting */
|
||||
break;
|
||||
|
||||
case RTPC_RESTART_ENDS:
|
||||
nw->rtpc_input[dst] = IDLE;
|
||||
/* cancel sp restarting */
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case RTPC_WAIT_STATE:
|
||||
nw->rtpc_state[dst] = RTPC_IDLE_STATE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void rtac_proc(BYTE netw,BYTE dst)
|
||||
{
|
||||
network *nw;
|
||||
BYTE ls;
|
||||
|
||||
nw = &mtp3.nw[netw];
|
||||
switch ( nw->rtac_input[dst] )
|
||||
{
|
||||
case RTAC_TFA_MSG:
|
||||
nw->rtac_input[dst] = IDLE;
|
||||
tsrc_rtac_signalling_route_available(dst,netw);
|
||||
nw->rsrt_input[dst] = RSRT_RTAC_ROUTE_AVAILABLE;
|
||||
break;
|
||||
|
||||
case RTAC_DEST_ACCESSIBLE:// one dst become accessible, send tfa to all adjacent sp about this dst
|
||||
nw->rtac_input[dst] = IDLE;
|
||||
for ( ls=0; ls<128; ls++ )
|
||||
{
|
||||
if ( (mtp3_para->ls_pro[ls] & 3) == netw)
|
||||
{
|
||||
hmrt_srm_msg(ls,SIGNAL_TFA,mtp3_para->nw[netw].dpc[dst]);/* send tfa to adjacent sp */
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case RTAC_STP_NOLONGER_FOR_DEST:
|
||||
nw->rtac_input[dst] = IDLE;
|
||||
hmrt_srm_msg(sdTFA_Ls,SIGNAL_TFA,mtp3_para->nw[netw].dpc[dst]);
|
||||
break;
|
||||
|
||||
case RTAC_SEND_TFA_MSG:
|
||||
nw->rtac_input[dst] = IDLE;
|
||||
hmrt_srm_msg(sdTFA_Ls,SIGNAL_TFA,mtp3_para->nw[netw].dpc[dst]);
|
||||
break;
|
||||
|
||||
case RTAC_FORCED_RERT:
|
||||
break;
|
||||
|
||||
case RTAC_FORCED_RERT_TERMINATED:
|
||||
break;
|
||||
|
||||
case RTAC_FORCED_RERT_NOT_REQ:
|
||||
break;
|
||||
|
||||
case RTAC_RESTART_BEGINS:
|
||||
break;
|
||||
|
||||
case RTAC_RESTART_ENDS:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void rsrt_proc(BYTE netw,BYTE dst)
|
||||
{
|
||||
network *nw;
|
||||
|
||||
nw = &mtp3.nw[netw];
|
||||
switch (nw->rsrt_state[dst])
|
||||
{
|
||||
case RSRT_IDLE_STATE:
|
||||
switch (nw->rsrt_input[dst])
|
||||
{
|
||||
case RSRT_RTPC_ROUTE_SET_TEST:
|
||||
nw->rsrt_t10[dst] = 0;
|
||||
nw->rsrt_state[dst] = RSRT_WAIT_STATE;
|
||||
break;
|
||||
case RSRT_TSRC_ROUTE_SET_TEST:
|
||||
hmrt_srm_msg(mtp3_para->nw[netw].normal_ls[dst],SIGNAL_RST,mtp3_para->nw[netw].dpc[dst]);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case RSRT_WAIT_STATE:
|
||||
nw->rsrt_t10[dst] ++;
|
||||
switch (nw->rsrt_input[dst])
|
||||
{
|
||||
case RSRT_RTPC_ROUTE_SET_TEST:
|
||||
break;
|
||||
case RSRT_TSRC_ROUTE_SET_TEST:
|
||||
break;
|
||||
case RSRT_RTAC_ROUTE_AVAILABLE:
|
||||
nw->rsrt_t10[dst] = 0;
|
||||
nw->rsrt_state[dst] = RSRT_IDLE_STATE;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (nw->rsrt_t10[dst] >= mtp3_para->mtp3_t10)
|
||||
{
|
||||
hmrt_srm_msg(mtp3_para->nw[netw].normal_ls[dst],SIGNAL_RST,mtp3_para->nw[netw].dpc[dst]);
|
||||
//send route test message out
|
||||
nw->rsrt_t10[dst] = 0;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
nw->rsrt_input[dst] = IDLE;
|
||||
}
|
||||
/*@end@*/
|
||||
|
||||
2203
plat/mtp3_old/src/mtpstm.c
Normal file
2203
plat/mtp3_old/src/mtpstm.c
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user