📄 ldpfunc2.h
字号:
#ifndef LDPFUNC2_H
#define LDPFUNC2_H
#include "encdec.h"
#include "ldpstr.h"
#include "ldp.h"
#include "ldpi.h"
#include "ldppdu.h"
#include "feci.h"
/****************************************************************************/
/* Product Name: MPLS PACK1.0
* Module Name: LDP/CR_LDP
* File Name: ldppdu.h
* Author Name: weng.qing shi.zhaohui hu.yonghong
* Creat Date: 2002-6-18
* Version : 1.0
* Input : mplsLdpSession_t *, inbound seesion pointer;
* USHORT , input message type;
* void * , input message;
* Output : void
* Function : label message process entry, process Label messages,
* notification messages etc.
* Note : just judge the message type, get the message process
* function entry
*/
/****************************************************************************/
void LabelProcess
(mplsLdpSession_t * session, unsigned short eventType, void * inputEvent);
/****************************************************************************/
/* Product Name: MPLS PACK1.0
* Module Name: LDP/CR_LDP
* File Name: ldppdu.h
* Author Name: weng.qing shi.zhaohui hu.yonghong
* Creat Date: 2002-6-18
* Version : 1.0
* Input : mplsLdpSession_t *, inbound seesion pointer;
* void * , input message;
* Output : void
* Function : Label request process function
* Note :
*/
/****************************************************************************/
void FuncLblRequest(mplsLdpSession_t * session, void * inputEvent);
void FuncLblMap(mplsLdpSession_t * session, void * inputEvent);
void FuncLblRel(mplsLdpSession_t * session, void * inputEvent);
void FuncLblWithdraw(mplsLdpSession_t * session, void * inputEvent);
void FuncLblAbort(mplsLdpSession_t * session, void * inputEvent);
void FuncNotify(mplsLdpSession_t * session, void * inputEvent);
/* sub function */
MPLS_BOOL reqCrlsp(mplsLdpCrLsp * crlspCB, mplsLdpFecTlv_t * fecTlv,
mplsLdpSession_t * session,unsigned long msgid,
unsigned char lspid);
MPLS_BOOL reqfeclsp(mplsLdpFecEntry * feclspCB,mplsLdpFecTlv_t * fecTlv,
mplsLdpSession_t * session,unsigned long msgid,
unsigned char lspid);
void lbl_req_fec_proc(mplsLdpSession_t * upsession,
mplsLdpSession_t * downsession,
mplsLdpFecEntry * fecEntry,
mplsLdpLblReqMsg_t * lblReqMsg);
void fec_entry_update(mplsLdpFecEntry * fec,IPFORWARDINGTAB * routemsg,unsigned char type);
/****************************************************************************/
/* policy process and policy change function
* proxy Egress policy, aggregate policy, ACL advertise labels for / Request
* labels for, Only32bit policy
*/
/****************************************************************************/
void LdppolicyProcA(LdpCtrModeAggregate_t * policy);
void LdppolicyProcB(IPFORWARDINGTAB * proxyEgress);
/****************************************************************************/
/* Session Up and Down Process
*/
/****************************************************************************/
void SessionUp(mplsLdpSession_t * session);
void SessionDown(mplsLdpSession_t * session);
void ProcessRoute(ROUTEMESSAGE_UPDATE * routeupdate);
void RouteAddProc(IPFORWARDINGTAB * routemsg);
void RouteDelProc(IPFORWARDINGTAB * routemsg);
void RouteNexthopChangeProc(IPFORWARDINGTAB * routemsg);
/* label message and tlv process function szh add 2002-6-28 */
/***********************************************************************/
void sndnotifymsgproc(mplsLdpSession_t * session, unsigned long statuscode,
unsigned long msgid, unsigned long msgtype);
void sndlblmsgtlvproc(mplsLdpSession_t * session,
void * lspcb,
void * tempcb,
unsigned long msgtype,
unsigned char cbflag);
void reclblmsgtlvproc(mplsLdpSession_t * session,
void * lblmessage,
void * lspcb,
void * tempcb,
unsigned long msgtype,
unsigned char cbflag);
short loopdetcetpro
(unsigned short eventType, void *inputMsg, mplsLdpSession_t * session);
void rec_lblreq_tlvpro(mplsLdpSession_t * session,
void * lblmessage,
void * lspcb,
void * tempcb,
unsigned char cbflag);
void rec_lblmap_tlvpro(mplsLdpSession_t * session,
void * lblmessage,
void * lspcb,
void * tempcb,
unsigned char cbflag);
void rec_lblrel_tlvpro( mplsLdpSession_t * session,
void * lblmessage,
void * lspcb,
void * tempcb,
unsigned char cbflag );
void rec_lblwith_tlvpro(mplsLdpSession_t * session,
void * lblmessage,
void * lspcb,
void * tempcb,
unsigned char cbflag);
void rec_lblabort_tlvpro(mplsLdpSession_t * session,
void * lblmessage,
void * lspcb,
void * tempcb,
unsigned char cbflag);
void snd_lblreq_tlvpro( mplsLdpSession_t * session,
void * lspcb,
void * tempcb,
unsigned char cbflag);
void snd_lblmap_tlvpro(mplsLdpSession_t * session,
void * lspcb,
void * tempcb,
unsigned char cbflag);
void snd_lblrel_tlvpro( mplsLdpSession_t * session,
void * lspcb,
void * tempcb,
unsigned char cbflag);
void snd_lblwith_tlvpro( mplsLdpSession_t * session,
void * lspcb,
void * tempcb,
unsigned char cbflag);
void snd_lblabort_tlvpro( mplsLdpSession_t * session,
void * lspcb,
void * tempcb,
unsigned char cbflag);
void FuncSendLblRelease(mplsLdpSession_t * session,
mplsLdpLblMapMsg_t * lblMapMsg);
unsigned long funcloopdetect(unsigned short eventType,
void *inputMsg,
mplsLdpSession_t * session);
void lblreqtocbbloopproc(mplsLdpLblReqMsg_t *lblReqMsg,
mplsLdpAttr *ldppAttr);
void cbbtolblreqtlvloopproc(mplsLdpAttr * ldppAttr,
mplsLdpLblReqMsg_t * lblReqMsg,
unsigned char routetype);
void sndfeclsp_mapmsg_looptlvproc_dod(mplsLdpAttr * ldppAttr,
mplsLdpLblMapMsg_t * lblMapMsg,
unsigned char nodetype);
void sndfeclsp_mapmsg_looptlvproc_du(mplsLdpAttr * ldppAttr,
mplsLdpLblMapMsg_t * lblMapMsg,
unsigned char nodetype);
unsigned char recfeclsp_mapmsg_looptlvproc_dod(mplsLdpLblMapMsg_t * lblMapMsg,
mplsLdpAttr * ldppAttr,
unsigned short status);
unsigned char recfeclsp_mapmsg_looptlvproc_du(mplsLdpLblMapMsg_t * lblMapMsg,
mplsLdpAttr * ldppAttr,
unsigned short status);
void lblreqtofectypemsg(mplsLdpLblReqMsg_t *lblReqMsg, void *lspcb, unsigned char flag );
void BuildNotifMsg(mplsLdpNotifMsg_t * notifMsg,unsigned long statuscode,
unsigned long msgid, unsigned short msgtype);
void optaltocrlblmapmsg(mplsLdpCrLsp *lspcb, mplsLdpLblMapMsg_t *lblMapMsg);
void reqmsgidtolblmsg(unsigned long reqmsgid, mplsLdpLblMsgIdTlv_t *lblMsgIdTlv);
void genlbltolblmsg(unsigned long genlabel, mplsLdpGenLblTlv_t *genLblTlv);
void atmlbltolblmsg(unsigned short vpi, unsigned short vci,
mplsLdpAtmLblTlv_t *atmLblTlv);
void fectlvtolblmsg(unsigned short FecType, unsigned long FecAddrLen,
unsigned long FecAddr, mplsLdpFecTlv_t *fecTlv );
short SendTcpMsg(mplsLdpSession_t * session, unsigned short eventType, void * inputEvent);
short sendtoLabelXC( void *pEntry, mplsLdpLspCB *LspCBVar, \
mplsLdpDownCB * downCb,char action_flag);
/* no definition */
void sendtoDownLblAbort(mplsLdpSession_t * session,void * cb, \
void *entry,unsigned short cbflag);
void mpls_set_label_gen(void * entry,unsigned long label,unsigned short cbflag);
unsigned short mpls_policy_filter(unsigned long addr,unsigned long mask,unsigned long nexthop);
void SendtodownRelease(mplsLdpCrLsp * crfec);
void sendtoDownRequest(mplsLdpSession_t * session,mplsLdpDownCB * downCb, \
mplsLdpFecEntry * fec);
void sendtodown_Release_with(mplsLdpSession_t * session,mplsLdpLbl_W_R_Msg_t * withdraw);
void sendtoUpMapping(mplsLdpSession_t * session,void * cb,void * entry,unsigned short cbflag);
void mpls_release_label_map(mplsLdpSession_t * session,mplsLdpLblMapMsg_t * lblmap);
void SessionFSM (mplsLdpSession_t * session, unsigned short eventType, void * inputEvent);
short SendNotifMsg(unsigned long sessionIndex, unsigned long statusCode,
unsigned long msgid,unsigned short msgType);
void sendtoUpLblWith(mplsLdpSession_t * session,mplsLdpFecEntry * fec,mplsLdpUpCB * upCb);
void sendtoDownRelease(mplsLdpCrLsp * crfec);
void mpls_send_abnot(mplsLdpSession_t * session, unsigned long statuscode,
unsigned long msgid, unsigned long msgtype,unsigned long tlvMsgid);
short ldp_atmlabeltlv_test(mplsLdpSession_t *session,mplsLdpLblMapMsg_t *lblMapMsg);
unsigned short ldp_pathvector_free(mplsLdpAttr *pattr);
unsigned short ldp_pathvector_malloc(mplsLdpAttr *ldppAttr,unsigned short len);
unsigned short LdpMemBlockFree(void);
unsigned short mpls_LdpMemInit(void);
/***********************************************************************/
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -