📄 ldpmacro.h
字号:
#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 + -