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

📄 ldpmacro.h

📁 技术文件名称:MPLSv1.0软件模块测试规程
💻 H
📖 第 1 页 / 共 3 页
字号:
#define MPLS_SESSION_MATCH_UP(crfec,session,yes)				\
if(session->index == crfec->crlspCb.upSessionIndex)				\
	yes = MPLS_TRUE;											\

#define MPLS_SESSION_MATCH_DOWN(crfec,session,yes)				\
if(session->index == crfec->crlspCb.downSessionIndex)			\
	yes = MPLS_TRUE;											\

#define MPLS_NEXTHOP_SESSION_SEARCH(nexthop,S)    		\
{																\
int i,j;	\
j = -1;															\
MPLS_WALK_SESSION_BEGIN((S),i);								\
if((S) != MPLS_NULL)										\
{																\
	MPLS_WALK_HELLO_BEGIN((S),t_hello)						\
	if(t_hello != MPLS_NULL)									\
	{															\
		if(t_hello->nexthopAddr == nexthop)						\
		{	\
			j = 0;	\
			break;												\
		}	\
	}															\
	MPLS_WALK_HELLO_END((S),t_hello)						\
	if(j == 0)	\
		break;	\
}																\
MPLS_WALK_SESSION_END((S),i);								\
}

#define MPLS_NEXTHOP_SESSION_DOWN(DS,fecEntry,yes)				\
MPLS_WALK_DOWN_BEGIN(fecEntry,downCB,t_downCb)					\
if((downCB))													\
{																\
	if((DS)->index == (downCB)->downSessionIndex)				\
	{															\
		yes = MPLS_TRUE;										\
		break;													\
	}															\
}																\
MPLS_WALK_DOWN_END(fecEntry,downCB,t_downCb)					\


#define MPLS_NEXTHOP_SESSION_BELONG(NH,S,		\
									belong_to)					\
MPLS_WALK_HELLO_BEGIN((S),t_hello)							\
if(t_hello != MPLS_NULL)										\
{																\
	if(t_hello->nexthopAddr == (NH))						\
	{															\
		belong_to = MPLS_TRUE;									\
		break;													\
	}															\
}																\
MPLS_WALK_HELLO_END((S),t_hello)							\
	
/* modify judgement of crlspCb.status by wengqing 2003.1.16 */
#define MPLS_CRFEC_SESSION_MSGID(session,msgId,crfec)			\
if(crfec)                                                   \
{                                                           \
    if((crfec)->crlspCb.nodeType != MPLS_NODE_INGRESS 	&&	\
	(crfec)->crlspCb.nodeType != MPLS_NODE_INTERM_INGRESS &&\
	(crfec)->crlspCb.upSessionIndex == session->index &&    \
	(crfec)->crlspCb.status   != ESTABLISHED &&		\
	(crfec)->crlspCb.upMsgid  == msgId )					\
	;                                                       \
	else                                                    \
	crfec = MPLS_NULL;                                      \
}                                                           \
else                                                        \
{                                                           \
WALK_CRFEC_BEGIN(crfec)										\
if((crfec)->crlspCb.nodeType != MPLS_NODE_INGRESS 	&&	\
	(crfec)->crlspCb.nodeType != MPLS_NODE_INTERM_INGRESS && \
	(crfec)->crlspCb.upSessionIndex == session->index &&   \
	(crfec)->crlspCb.status   != ESTABLISHED &&			\
	(crfec)->crlspCb.upMsgid  == msgId )					\
	break;		 													\
WALK_CRFEC_END													\
}
/* 2003.2.20 wengqing modify status to msgtype */
#define MPLS_CRFEC_DOWN_SESSION_MSGID(session,msgId,crfec)			\
WALK_CRFEC_BEGIN(crfec)										\
if((crfec)->crlspCb.nodeType != MPLS_NODE_EGRESS 	&&	\
	(crfec)->crlspCb.downSessionIndex == session->index &&   \
	(crfec)->crlspCb.msgType == MPLS_LBLREQ_MSGTYPE &&			\
	(crfec)->crlspCb.downMsgid  == msgId )					\
	break;		 													\
WALK_CRFEC_END													\

#define MPLS_CRLSP_SESSION_DOWN_GEN_LABEL(session,label,		\
						 pfecTlv,crlspCb)						\
WALK_CRFEC_BEGIN(crlspCb)										\
if(crlspCb->crlspCb.status   == ESTABLISHED &&					\
   crlspCb->crlspCb.downSessionIndex == session->index &&		\
   crlspCb->crlspCb.downGenLabel == label)						\
   break;														\
WALK_CRFEC_END											\

#define MPLS_CRLSP_SESSION_UP_GEN_LABEL(session,label,			\
						 pfecTlv,crlspCb)						\
WALK_CRFEC_BEGIN(crlspCb)										\
if(crlspCb->crlspCb.status   == ESTABLISHED &&					\
   crlspCb->crlspCb.upSessionIndex == session->index &&		    \
   crlspCb->crlspCb.downGenLabel == label)						\
   break;														\
WALK_CRFEC_END											\


#define MPLS_CRLSP_SESSION_DOWN_ATM_LABEL(session,atmLblTlv,	\
					  pfecTlv,crlspCb)				\
if(crlspCb)                                                   \
{                                                               \
    if(!(crlspCb->crlspCb.nodeType != MPLS_NODE_EGRESS	&&			\
       crlspCb->crlspCb.downSessionIndex == session->index &&		\
       crlspCb->crlspCb.downAtmLabel.vpi == 						\
       						 atmLblTlv.flags.flags.vpi     &&       \
       crlspCb->crlspCb.downAtmLabel.vci == atmLblTlv.vci  &&       \
   (((crlspCb->crlspCb.status == ESTABLISHED) && (crlspCb->crlspCb.subStatus == IDLE))|| \
   ((crlspCb->crlspCb.status == RESPONSE_AWAITED) && (crlspCb->crlspCb.subStatus == CREATE_PVC_REQ_AWAITED)))))			\
        crlspCb = MPLS_NULL;                                        \
}                                                                   \
else                                                            \
{                                                               \
WALK_CRFEC_BEGIN(crlspCb)										\
if(crlspCb->crlspCb.nodeType != MPLS_NODE_EGRESS	&&			\
   crlspCb->crlspCb.downSessionIndex == session->index &&		\
   crlspCb->crlspCb.downAtmLabel.vpi == 						\
   						 atmLblTlv.flags.flags.vpi     &&       \
   crlspCb->crlspCb.downAtmLabel.vci == atmLblTlv.vci &&        \
   (((crlspCb->crlspCb.status == ESTABLISHED) && (crlspCb->crlspCb.subStatus == IDLE))|| \
   ((crlspCb->crlspCb.status == RESPONSE_AWAITED) && (crlspCb->crlspCb.subStatus == CREATE_PVC_REQ_AWAITED))))		\
   break;														\
WALK_CRFEC_END											\
}
								  
#define MPLS_CRLSP_SESSION_UP_ATM_LABEL(session,atmLblTlv,		\
						 pfecTlv,crfec)						\
if(crfec)                                                   \
{                                                           \
    if(crfec->crlspCb.nodeType != MPLS_NODE_INGRESS	&&			\
   crfec->crlspCb.nodeType != MPLS_NODE_INTERM_INGRESS	&&	\
   crfec->crlspCb.upSessionIndex == session->index &&		    \
   crfec->crlspCb.upAtmLabel.vpi == 							\
   						 atmLblTlv.flags.flags.vpi     &&       \
   crfec->crlspCb.upAtmLabel.vci == atmLblTlv.vci    &&         \
   ((crlspCb->crlspCb.status == ESTABLISHED) && (crlspCb->crlspCb.subStatus == IDLE))) \
   ;                                                        \
   else                                                     \
   crfec = MPLS_NULL;                                       \
}                                                           \
else                                                        \
{                                                           \
WALK_CRFEC_BEGIN(crfec)										\
if(crfec->crlspCb.nodeType != MPLS_NODE_INGRESS	&&			\
   crfec->crlspCb.nodeType != MPLS_NODE_INTERM_INGRESS	&&	\
   crfec->crlspCb.upSessionIndex == session->index &&		    \
   crfec->crlspCb.upAtmLabel.vpi == 							\
   						 atmLblTlv.flags.flags.vpi     &&       \
   crfec->crlspCb.upAtmLabel.vci == atmLblTlv.vci   &&          \
   ((crlspCb->crlspCb.status == ESTABLISHED) && (crlspCb->crlspCb.subStatus == IDLE))) \
   break;														\
WALK_CRFEC_END											\
}

#define MPLS_FEC_SESSION_DOWN_GEN_LABEL(session,label,			\
						 pfecTlv,fecCb,downCb)					\
if(fecCb)														\
{																\
	MPLS_WALK_DOWN_BEGIN(fecCb,downCb,t_downCb)					\
	if(downCb != MPLS_NULL)										\
	{															\
		   if(downCb->downSessionIndex == session->index &&		\
			   downCb->downGenLabel   == label)					\
			   break;											\
	}															\
	MPLS_WALK_DOWN_END(fecCb,downCb,t_downCb)					\
}

/*
																\
else															\
{																\
	WALK_FEC_BEGIN(fecCb)										\
		MPLS_WALK_DOWN_BEGIN(fecCb,downCb,t_downCb)				\
		if(downCb != MPLS_NULL)									\
		{														\
			   if(downCb->downSessionIndex == session->index &&	\
			   downCb->downGenLabel   == label)					\
			   break;											\
		}														\
		MPLS_WALK_DOWN_END(fecCb,downCb,t_downCb)				\
	WALK_FEC_END												\	
}
*/

#define MPLS_FEC_SESSION_UP_GEN_LABEL(session,label,pfecTlv,fecCb,upCb)	\
if(fecCb)														\
{																\
	MPLS_WALK_UP_BEGIN(fecCb,upCb,t_upCb)						\
	if(upCb != MPLS_NULL)										\
	{															\
		   if(upCb->upSessionIndex == session->index &&		\
		      upCb->upGenLabel   == label)						\
		   break;												\
	}															\
	MPLS_WALK_UP_END(fecCb,upCb,t_upCb)							\
}																\


/*																\
else															\
{																\
	WALK_FEC_BEGIN(fecCb)										\
	if(fecCb)													\
	{															\
		MPLS_WALK_UP_BEGIN(fecCb,upCB,t_upCb)					\
		if(upCB != MPLS_NULL)									\
		{														\
			   upCB.downSessionIndex == session->index &&		\
			   upCB.downGenLabel   == label)					\
			   break;											\
		}														\
		MPLS_WALK_DOWN_END(fecCb,upCB,t_upCb)					\
	}															\
	WALK_FEC_END												\	
}
*/

#define MPLS_FEC_SESSION_DOWN_ATM_LABEL(S,atmLblTlv,		\
						 pfecTlv,fecCb,lspCB)					\
if(fecCb)														\
{																\
	MPLS_WALK_LSP_BEGIN(fecCb,lspCB,t_lspCb)					\
	if(lspCB)										\
	{															\
		   if((lspCB->downSessionIndex == S->index) &&			\
		   (lspCB->downAtmLabel.vpi == 								\
		   						 atmLblTlv.flags.flags.vpi)&&    \
		   (lspCB->downAtmLabel.vci == atmLblTlv.vci)&&          \
		   (((lspCB->status == ESTABLISHED) && (lspCB->subStatus == IDLE))|| \
		   ((lspCB->status == RESPONSE_AWAITED) && (lspCB->subStatus == CREATE_PVC_REQ_AWAITED))))				\
		   break;												\
	}															\
	MPLS_WALK_LSP_END(fecCb,lspCB,t_lspCb)						\
}

/*																\
else															\
{																\
	WALK_FEC_BEGIN(fecCb)										\
	if(fecCb)													\
	{															\
		MPLS_WALK_LSP_BEGIN(fecCb,lspCB,t_lspCb)				\
		if(lspCB != MPLS_NULL)									\
		{														\
			   lspCB.upSessionIndex == session->index &&		\
			   lspCB.upAtmLabel.vpi == 							\
			   						 atmLblTlv.flags.flags.vpi&&\
			   lspCB.upAtmLabel.vci == atmLblTlv.vci)			\
			   break;											\
		}														\
		MPLS_WALK_UP_END(fecCb,lspCB,t_lspCb)					\
	}															\
	WALK_FEC_END											\	
}
*/
								  
#define MPLS_FEC_SESSION_UP_ATM_LABEL(S,atmLblTlv,		\
						 pfecTlv,fecCb,lspCb)					\
if(fecCb)														\
{																\
	MPLS_WALK_LSP_BEGIN(fecCb,lspCb,t_lspCb)					\
	if(lspCb != MPLS_NULL)										\
	{															\
		   if((lspCb)->upSessionIndex == S->index &&		\
		   (lspCb)->upAtmLabel.vpi == (atmLblTlv).flags.flags.vpi&&  \
		   (lspCb)->upAtmLabel.vci == (atmLblTlv).vci  &&       \
		   (((lspCb)->status == ESTABLISHED) && ((lspCb)->subStatus == IDLE))) \
		   break;												\
	}															\
	MPLS_WALK_LSP_END(fecCb,lspCb,t_lspCb)						\
}																

/*
else															\
{																\
	WALK_FEC_BEGIN(fecCb)										\
	if(fecCb)													\
	{															\
		MPLS_WALK_LSP_BEGIN(fecCb,lspCB,t_lspCb)				\
		if(lspCB != MPLS_NULL)									\
		{														\
			   lspCB.upSessionIndex == session->index &&		\
			   lspCB.upAtmLabel.vpi == 							\
			   						 atmLblTlv.flags.flags.vpi&&\
			   lspCB.upAtmLabel.vci == atmLblTlv.vci)			\
			   break;											\
		}														\
		MPLS_WALK_UP_END(fecCb,lspCB,t_lspCb)					\
	}															\
	WALK_FEC_END											\	
}
*/

#define MPLS_FEC_DOWNCB_SESSION_MSGID(fecCb,downCB,S,msgId)	\
MPLS_WALK_DOWN_BEGIN(fecCb,downCB,t_downCb)							\
if(downCB == MPLS_NULL )											\
	break;														\
else if(downCB->state == RESPONSE_AWAITED)						\
{																\
	MPLS_INDEX_TO_SESSION(S,downCB->downSessionIndex);		\
}																\
MPLS_WALK_DOWN_END(fecCb,downCB,t_downCb)							\

#define MPLS_FEC_UPCB_SESSION_MSGID(fecCb,upCB,S,msgId)	\
MPLS_WALK_UP_BEGIN(fecCb,upCB,t_upCb)							\
if(upCB->state == RESPONSE_AWAITED &&							\
	S->index == upCB->upSessionIndex &&					\
	msgId == upCB->msgid)										\
{																\
		break;													\
}																\
MPLS_WALK_UP_END(fecCb,upCB,t_upCb)							\

/* modify method of search ,and judge down msgtype ,by wengqing 2003.1.16 */
#define MPLS_FEC_LSPCB_DOWN_SESSION_MSGID_PEND(fecCb,lspCb,S,msgid,mType)	\
fecCb = MPLS_NULL;				\
lspCb = MPLS_NULL;				\
for((lspCb) = (S)->lsp_down_cb_list.first; (lspCb); (lspCb) = (lspCb)->down_lsp_session_list.next) \
{																\
if(lspCb->downSessionIndex == S->index && 					\
   lspCb->downMsgid == (msgid)&&							\
	   lspCb->status  != ESTABLISHED &&                         \
	   lspCb->msgType  == (mType))	                            \
{																\
			fecCb = (lspCb)->selffec;							\
	break;														\
}																\
}


#define MPLS_FEC_LSPCB_DOWN_SESSION_MSGID(fecCb,lspCb,S,msgid)	\
MPLS_WALK_LSP_BEGIN(fecCb,lspCb,t_lspCb)						\
if(lspCb->nodeType != MPLS_NODE_EGRESS 	&&	\
   lspCb->downSessionIndex == S->index && 					\
   lspCb->downMsgid == (msgid) &&							\
   lspCb->msgType == MPLS_LBLREQ_MSGTYPE)					\
{																\
	break;														\
}																\
MPLS_WALK_LSP_END(fecEntry,lspCb,t_lspCb)						\

#define MPLS_FEC_LSPCB_UP_SESSION_MSGID(fecCb,lspCb,S,msgid)	\
MPLS_WALK_LSP_BEGIN(fecCb,lspCb,t_lspCb)						\
if(lspCb->upSessionIndex == S->index && 					\
   lspCb->upMsgid == (msgid) &&								\
   lspCb->status != ESTABLISHED)							\
{																\
	break;														\
}																\
MPLS_WALK_LSP_END(fecEntry,lspCb,t_lspCb)						\

#define MPLS_UP_SESSION_CRLSP(crlspCb,upsession)				\
if(crlspCb->crlspCb.nodeType != MPLS_NODE_INGRESS &&			\
   crlspCb->crlspCb.nodeType != MPLS_NODE_INTERM_INGRESS)		\
{																\
MPLS_INDEX_TO_SESSION(upsession,crlspCb->crlspCb.upSessionIndex);		\
}																\

#define MPLS_DOWN_SESSION_CRLSP(crlspCb,downsession)				\
if(crlspCb->crlspCb.nodeType != MPLS_NODE_EGRESS &&			\
   crlspCb->crlspCb.nodeType != MPLS_NODE_INTERM_EGRESS)		\
{																\
MPLS_INDEX_TO_SESSION(downsession,crlspCb->crlspCb.downSessionIndex);		\
}	

#define MPLS_RESET_SESSION(crfec)								\
crfec->crlspCb.downSessionIndex	= MPLS_NULL;					\

#define MPLS_CRFEC_DOWN_SESSION(crfec,t_session)				\
MPLS_INDEX_TO_SESSION(t_session,								\
					crfec->crlspCb.downSessionIndex)			\

#define MPLS_CRFEC_UP_SESSION(crfec,t_session)				\
MPLS_INDEX_TO_SESSION(t_session,								\
					crfec->crlspCb.upSessionIndex)			\


#define MPLS_MATCH_CRFEC_LSPID(crFec,tlv,yes)					\
yes = MPLS_FALSE;												\
if(crFec->crfec_key.ingressid == (tlv)->routerId &&			\
		crFec->crfec_key.locallspid == (tlv)->localCrlspId)			\
yes = MPLS_TRUE;												\

#define MPLS_WALK_SESSION_BEGIN(S,i)								\
for(i = 0; i <MPLSLDP_MAX; i++)									\
{																		\
(S) = MPLS_NULL;	\
	if((MplsLdpSessionEntry[i].RowStatus ==  VAL_RowStatus_active) && 	\
	   (MplsLdpSessionEntry[i].state == OPERATIONAL))					\
	{																	\
		S = (mplsLdpSession_t *)(&(MplsLdpSessionEntry[i].entityLdpId));\



#define MPLS_WALK_SESSION_END(S,i)										\
	}																	\
}

#define MPLS_SESSION_DISMODE(session,mode)						\
mode = session->labelAdvertisement;								\

#define MPLS_CONTROL_MODE(mode)									\
mode = INDEPENDENT												\

⌨️ 快捷键说明

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