⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ldpfunc1.h

📁 技术文件名称:MPLSv1.0软件模块测试规程
💻 H
字号:
#ifndef LDPFUNC1_H                                                              
#define LDPFUNC1_H 

#include "encdec.h"
#include "ldpcomn.h"
#include "ldpi.h"
#include "ldp.h"
#include "ldpstr.h"
#include "pvcmpls.h"
#include "ldppdu.h"

#include "_noalign.h"

#define FLAG_UP			1
#define FLAG_DOWN		2
#define FLAG_UPDOWN		3

#define DEFAULT_PDR		300000.0*48
#define DEFAULT_CDR		180000.0*48
#define DEFAULT_PBS		180000.0*48


/* function in ldppdu.c */
short ProcUdpTcpMsg(LDPMSG_COMM * udptcpMsg);
short ProcessHello(mplsLdpHelloMsg_t 	*helloRecMsg,
					unsigned long 	    localAddr,
					unsigned long 	    peerAddr,
					mplsLdpId_t  		peerLdpId);
short SendLdpHello(mplsLdpEntity_t *pEntity);
mplsLdpInterface_t *LDP_ADDR_SEARCH_IF(unsigned long Address);
mplsLdpEntity_t	*LDP_IF_SEARCH_ENTITY(mplsLdpInterface_t *ldpInterface);
mplsLdpInterface_t *LDP_ENTITY_SEARCH_IF(mplsLdpEntity_t *pEntity);
short DelHello(mplsLdpHello_t *hello);
mplsLdpEntity_t	*ldp_search_entity_index(unsigned long index);

long checkStatuscode(long encodedSize);
void checkRetCode( long encodedSize, 
                   mplsLdpSession_t * session, 
                   mplsLdpMsg_t  msgHead);


/* function in ldplspfsm.c */
short LspCBFsm (mplsLdpSession_t 	*session,
				unsigned short 	eventType,
				void   			*inputEvent,
				unsigned char  	lspType,
				void   			*pEntry,
				mplsLdpLspCB 	*LspCBVar);
short ProcLblReq_status1(mplsLdpSession_t *session,void *pEntry, mplsLdpLspCB *LspCBVar, void * inputEvent);
short ProcFecInquireOk (void * inputEvent);
short ProcBandwithAck(void *inputEvent);
short ProcLblAbort_status1(void *pEntry, mplsLdpLspCB *LspCBVar,char flag);
short ProcLblMap_status2(void *pEntry, mplsLdpLspCB *LspCBVar, void * inputEvent);
short ProcLblAbort_status2(void *pEntry, mplsLdpLspCB *LspCBVar,char flag);
short ProcLblWith_2(void *pEntry, mplsLdpLspCB *LspCBVar);
short ProcCreatePvcAck(void * inputEvent);
short ProcDownNAK_2(void *pEntry, mplsLdpLspCB *LspCBVar,
					void *inputEvent, unsigned short eventType);
short ProcLblMap_status3(void *pEntry, mplsLdpLspCB *LspCBVar, void * inputEvent);
short ProcLblRel_status3(void *pEntry, mplsLdpLspCB *LspCBVar,
						 void *inputEvent, unsigned short eventType);				
short ProcLblWith_3(void *pEntry, mplsLdpLspCB *LspCBVar);
short ProcLblRel_status4(void *pEntry, mplsLdpLspCB *LspCBVar);
short ProcRouteAdd_status1(void *pEntry, mplsLdpLspCB *LspCBVar);
void ldp_req_timout(mplsLdpLspCB *LspCBVar);
short ldp_req_resend(mplsLdpLspCB *LspCBVar);
short ProcDownLost_23(void *pEntry, mplsLdpLspCB *LspCBVar);
short ProcDownNAK_23(void *pEntry, mplsLdpLspCB *LspCBVar, void *inputEvent);
short ProcRouteDel_status123(void *pEntry, mplsLdpLspCB *LspCBVar);
short ProcDownLost_1(void *pEntry, mplsLdpLspCB *LspCBVar);
void ProcDownLost_4(void *pEntry, mplsLdpLspCB *LspCBVar);


/* function in ldpfunc.c */
void seg_fec_msg(FecMsg * fec_msg, void * msg);
void set_cr_fec_mag(FecMsg * fec_msg, mplsLdpCrLsp * crEntry);

short ldp_fec2lspCB(mplsLdpLspCB *LspCBVar,FecMsg *fecMsg);
mplsLdpSession_t *search_session_from_sessindex(unsigned long SessionIndex1);
void ldp_del_lspCB(char *pEntry,mplsLdpLspCB *LspCBVar);

short FuncCreatePvc(mplsLdpLspCB *lspCBVar, char *pEntry);
short ldp_fill_crpvcreq(STRUC_MPLS_AD_CRPVC_REQ *createPvcReq,
						mplsLdpLspCB *lspCBVar, 
						unsigned short localLspId,
						unsigned long LspCBNo, 
						mplsLdpTrafficTlv_t *Traffic,
						char   *pEntry);
short ldp_crpvc_timeout(mplsLdpLspCB *LspCBVar);
short ldp_crpvc_resend(mplsLdpLspCB *LspCBVar);
short FuncResvBW(mplsLdpLspCB *lspCBVar, char *pEntry);
short ldp_fill_bwreq(STRUC_MPLS_AD_BANDWIDTH_REQ *bandwithReq,
						mplsLdpLspCB *lspCBVar, 
						unsigned short localLspId,
						unsigned long LspCBNo, 
						mplsLdpTrafficTlv_t *Traffic,
						char   *pEntry);
short ldp_bw_timeout(mplsLdpLspCB *LspCBVar);
short ldp_bw_resend(mplsLdpLspCB *LspCBVar);
short FuncRelPVC(mplsLdpLspCB *lspCBVar, char *pEntry);
short ldp_Rlspvc_resend(mplsLdpLspCB *LspCBVar);
short RlsPVC_noCB(STRUC_AD_MPLS_CRPVC_ACK	*createPvcAck);
short FuncRlsBW(mplsLdpLspCB *LspCBVar, char *pEntry);
short ldp_Rlsbw_resend(mplsLdpLspCB *LspCBVar);
short RlsBW_noCB(STRUC_AD_MPLS_BANDWIDTH_ACK *bandwithAck);
short bandwidth_to_release(STRUC_MPLS_AD_BANDWIDTH_REQ *bandwithReq);
short crpvc_to_release(STRUC_MPLS_AD_CRPVC_REQ	*createPvcReq);

short ldp_label_forward(void *pEntry, mplsLdpLspCB *LspCBVar,char action_flag);
short ldp_get_atm_label(mplsLdpLspCB *lspCBVar,char upordown,char negotiate);
short ldp_free_label(char *pEntry, mplsLdpLspCB *LspCBVar);
short ldp_free_atm_label(char *pEntry, mplsLdpLspCB *LspCBVar,char flag);
short mpls_feclabel_recv_process(mplsLdpFecLabel *FecLabel,mplsLdpLspCB *LspCBVar);
void ldp_lbl_send_timeout(mplsLdpLspCB *LspCBVar);
short mpls_feclabel_send_process(mplsLdpFecLabel *FecLabel,mplsLdpLspCB *LspCBVar);
short mpls_feclabel_close_process(mplsLdpFecLabel *FecLabel,mplsLdpLspCB *LspCBVar);
void ldp_lbl_close_timeout(mplsLdpLspCB *LspCBVar);
void SndNotMsg(unsigned long SessionIndex1,  unsigned long  statuscode,
                       unsigned long msgid,  unsigned long msgtype);
mplsLdpEntity_t *ldp_session_search_entity(mplsLdpSession_t *session);
void  sendToFecCrlsp(mplsLdpCrLsp *pCrfec,unsigned long eventType,unsigned long code);

/*
mplsLdpLspCB *ldp_get_lspCB(mplsLdpSession_t *session,
							unsigned short	eventType,
							void   			*inputEvent,
							unsigned char  	lspType,
							void   			*pEntry);
*/

short SndLblDownMsg(mplsLdpLspCB *LspCBVar, void *pEntry, unsigned short eventType);
short SndLblUpMsg(mplsLdpLspCB *LspCBVar, void *pEntry, unsigned short eventType);

mplsLdpCrLsp *ldp_search_crentry_from_lspidtlv(mplsLdpLspIdTlv_t lspidTlv);
mplsLdpCrLsp *ldp_search_crentry_from_lspindex(unsigned long LspCBNo,\
                         unsigned short localLspId,unsigned long IngressId);
mplsLdpFecEntry *ldp_search_fecentry(unsigned short preLen,unsigned long address);
mplsLdpLspCB *ldp_search_lspcb_from_index(mplsLdpFecEntry *pFecEntry,unsigned long lspIndex);
char *lspcb_search_entry(mplsLdpLspCB *LspCBVar);
mplsLdpDownCB *ldp_get_downcb(mplsLdpFecEntry *fecEntry);

/*function in ldpmain.c*/
short DelHello(mplsLdpHello_t *hello);

/*function in ldpsess.c*/
void SessionFSM	(mplsLdpSession_t * session, unsigned short eventType, void * inputEvent);

/*function in ldpmib.c*/
void initldpdynmib();
mplsLdpHello_t * MibHello(void * input,unsigned char flag);
mplsLdpHello_t *func_helloset(MIB_LDPHELLO_REQ *in);
mplsLdpHello_t *func_hellosearch(MIB_LDPHELLO_REQ *in);
mplsLdpHello_t *func_hellodel(MIB_LDPHELLO_REQ *in );
mplsLdpSession_t  *MibSession(void * input, unsigned char flag);
mplsLdpSession_t *func_sessionset( MIB_LDP_SESSION_REQ *in);
mplsLdpSession_t *func_sessionsearch( MIB_LDP_SESSION_REQ *in);
mplsLdpSession_t *func_sessiondel(MIB_LDP_SESSION_REQ *in);
mplsLdpPeer_t *MibPeer(void * input, unsigned char flag);
mplsLdpPeer_t *func_peerset(MIB_LDP_PEER_REQ *in );
mplsLdpPeer_t *func_peersearch( MIB_LDP_PEER_REQ *in);
mplsLdpPeer_t *func_peerdel(MIB_LDP_PEER_REQ *in);
sessionPeerAddr_t *MibPeerAddr(void * input, unsigned char flag);
sessionPeerAddr_t *func_sess_peerset(MIB_LDP_SESSION_PEERADDR_REQ *in);
sessionPeerAddr_t *func_sess_peersearch( MIB_LDP_SESSION_PEERADDR_REQ *in);
sessionPeerAddr_t *func_sess_peerdel(MIB_LDP_SESSION_PEERADDR_REQ *in);
void processldpstats (unsigned long  statstype, mplsLdpSession_t  *session);
void ProcFecInquire(FecMsg * fecMsg);
MPLS_BOOL reqCrlsp(mplsLdpCrLsp * crlspCB,mplsLdpFecTlv_t * fecTlv,
                   mplsLdpSession_t * session,unsigned long msgid,unsigned char lspid);

int fec_key_compare(void *key1, void *key2);
int crfec_key_compare(void *key1, void *key2);
int address_key_compare(void * test_key1, void * test_key2);
int sb_key_compare(void *key1, void *key2);
void ldpHelloSnd(void);
void ldpSessionSnd(void);
void ldpListCheck(void);
void ldpFecSearchCheck( mpls_fec_search *pSearch );
void ldpFecLspcbScan(void);
unsigned long ldp_get_index(void);
void ldp_rel_index(unsigned long index);
void aggr_init(void);
void aggr_insert_tail(mpls_ldpFecAggr * AE);
void aggr_delete(mpls_ldpFecAggr * AE);
void setCrFilter(mplsLdpCrLsp * pCrfec,FecMsg * fecMsg);

#include "_restore.h"


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -