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

📄 ldpfunc2.h

📁 技术文件名称:MPLSv1.0软件模块测试规程
💻 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 + -