mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-04-28 21:20:48 +00:00
ldpd: changes for code maintainability
these changes are for improving the code maintainability and readability Signed-off-by: sri-mohan1 <sri.mohan@samsung.com>
This commit is contained in:
parent
05cb9e55a7
commit
4e60d88ee1
91
ldpd/init.c
91
ldpd/init.c
@ -31,13 +31,13 @@ send_init(struct nbr *nbr)
|
||||
if ((buf = ibuf_open(size)) == NULL)
|
||||
fatal(__func__);
|
||||
|
||||
err |= gen_ldp_hdr(buf, size);
|
||||
SET_FLAG(err, gen_ldp_hdr(buf, size));
|
||||
size -= LDP_HDR_SIZE;
|
||||
err |= gen_msg_hdr(buf, MSG_TYPE_INIT, size);
|
||||
err |= gen_init_prms_tlv(buf, nbr);
|
||||
err |= gen_cap_dynamic_tlv(buf);
|
||||
err |= gen_cap_twcard_tlv(buf, 1);
|
||||
err |= gen_cap_unotif_tlv(buf, 1);
|
||||
SET_FLAG(err, gen_msg_hdr(buf, MSG_TYPE_INIT, size));
|
||||
SET_FLAG(err, gen_init_prms_tlv(buf, nbr));
|
||||
SET_FLAG(err, gen_cap_dynamic_tlv(buf));
|
||||
SET_FLAG(err, gen_cap_twcard_tlv(buf, 1));
|
||||
SET_FLAG(err, gen_cap_unotif_tlv(buf, 1));
|
||||
if (err) {
|
||||
ibuf_free(buf);
|
||||
return;
|
||||
@ -121,62 +121,56 @@ recv_init(struct nbr *nbr, char *buf, uint16_t len)
|
||||
return (-1);
|
||||
case TLV_TYPE_DYNAMIC_CAP:
|
||||
if (tlv_len != CAP_TLV_DYNAMIC_LEN) {
|
||||
session_shutdown(nbr, S_BAD_TLV_LEN, msg.id,
|
||||
msg.type);
|
||||
session_shutdown(nbr, S_BAD_TLV_LEN, msg.id, msg.type);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
if (caps_rcvd & F_CAP_TLV_RCVD_DYNAMIC) {
|
||||
session_shutdown(nbr, S_BAD_TLV_VAL, msg.id,
|
||||
msg.type);
|
||||
if (CHECK_FLAG(caps_rcvd, F_CAP_TLV_RCVD_DYNAMIC)) {
|
||||
session_shutdown(nbr, S_BAD_TLV_VAL, msg.id, msg.type);
|
||||
return (-1);
|
||||
}
|
||||
caps_rcvd |= F_CAP_TLV_RCVD_DYNAMIC;
|
||||
SET_FLAG(caps_rcvd, F_CAP_TLV_RCVD_DYNAMIC);
|
||||
|
||||
nbr->flags |= F_NBR_CAP_DYNAMIC;
|
||||
SET_FLAG(nbr->flags, F_NBR_CAP_DYNAMIC);
|
||||
|
||||
log_debug("%s: lsr-id %pI4 announced the Dynamic Capability Announcement capability", __func__,
|
||||
&nbr->id);
|
||||
break;
|
||||
case TLV_TYPE_TWCARD_CAP:
|
||||
if (tlv_len != CAP_TLV_TWCARD_LEN) {
|
||||
session_shutdown(nbr, S_BAD_TLV_LEN, msg.id,
|
||||
msg.type);
|
||||
session_shutdown(nbr, S_BAD_TLV_LEN, msg.id, msg.type);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
if (caps_rcvd & F_CAP_TLV_RCVD_TWCARD) {
|
||||
session_shutdown(nbr, S_BAD_TLV_VAL, msg.id,
|
||||
msg.type);
|
||||
if (CHECK_FLAG(caps_rcvd, F_CAP_TLV_RCVD_TWCARD)) {
|
||||
session_shutdown(nbr, S_BAD_TLV_VAL, msg.id, msg.type);
|
||||
return (-1);
|
||||
}
|
||||
caps_rcvd |= F_CAP_TLV_RCVD_TWCARD;
|
||||
SET_FLAG(caps_rcvd, F_CAP_TLV_RCVD_TWCARD);
|
||||
|
||||
nbr->flags |= F_NBR_CAP_TWCARD;
|
||||
SET_FLAG(nbr->flags, F_NBR_CAP_TWCARD);
|
||||
|
||||
log_debug("%s: lsr-id %pI4 announced the Typed Wildcard FEC capability", __func__, &nbr->id);
|
||||
break;
|
||||
case TLV_TYPE_UNOTIF_CAP:
|
||||
if (tlv_len != CAP_TLV_UNOTIF_LEN) {
|
||||
session_shutdown(nbr, S_BAD_TLV_LEN, msg.id,
|
||||
msg.type);
|
||||
session_shutdown(nbr, S_BAD_TLV_LEN, msg.id, msg.type);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
if (caps_rcvd & F_CAP_TLV_RCVD_UNOTIF) {
|
||||
session_shutdown(nbr, S_BAD_TLV_VAL, msg.id,
|
||||
msg.type);
|
||||
if (CHECK_FLAG(caps_rcvd, F_CAP_TLV_RCVD_UNOTIF)) {
|
||||
session_shutdown(nbr, S_BAD_TLV_VAL, msg.id, msg.type);
|
||||
return (-1);
|
||||
}
|
||||
caps_rcvd |= F_CAP_TLV_RCVD_UNOTIF;
|
||||
SET_FLAG(caps_rcvd, F_CAP_TLV_RCVD_UNOTIF);
|
||||
|
||||
nbr->flags |= F_NBR_CAP_UNOTIF;
|
||||
SET_FLAG(nbr->flags, F_NBR_CAP_UNOTIF);
|
||||
|
||||
log_debug("%s: lsr-id %pI4 announced the Unrecognized Notification capability", __func__,
|
||||
&nbr->id);
|
||||
break;
|
||||
default:
|
||||
if (!(ntohs(tlv.type) & UNKNOWN_FLAG))
|
||||
if (!CHECK_FLAG(ntohs(tlv.type), UNKNOWN_FLAG))
|
||||
send_notification_rtlvs(nbr, S_UNSSUPORTDCAP,
|
||||
msg.id, msg.type, tlv_type, tlv_len, buf);
|
||||
/* ignore unknown tlv */
|
||||
@ -217,16 +211,16 @@ send_capability(struct nbr *nbr, uint16_t capability, int enable)
|
||||
if ((buf = ibuf_open(size)) == NULL)
|
||||
fatal(__func__);
|
||||
|
||||
err |= gen_ldp_hdr(buf, size);
|
||||
SET_FLAG(err, gen_ldp_hdr(buf, size));
|
||||
size -= LDP_HDR_SIZE;
|
||||
err |= gen_msg_hdr(buf, MSG_TYPE_CAPABILITY, size);
|
||||
SET_FLAG(err, gen_msg_hdr(buf, MSG_TYPE_CAPABILITY, size));
|
||||
|
||||
switch (capability) {
|
||||
case TLV_TYPE_TWCARD_CAP:
|
||||
err |= gen_cap_twcard_tlv(buf, enable);
|
||||
SET_FLAG(err, gen_cap_twcard_tlv(buf, enable));
|
||||
break;
|
||||
case TLV_TYPE_UNOTIF_CAP:
|
||||
err |= gen_cap_unotif_tlv(buf, enable);
|
||||
SET_FLAG(err, gen_cap_unotif_tlv(buf, enable));
|
||||
break;
|
||||
case TLV_TYPE_DYNAMIC_CAP:
|
||||
/*
|
||||
@ -288,52 +282,47 @@ recv_capability(struct nbr *nbr, char *buf, uint16_t len)
|
||||
switch (tlv_type) {
|
||||
case TLV_TYPE_TWCARD_CAP:
|
||||
if (tlv_len != CAP_TLV_TWCARD_LEN) {
|
||||
session_shutdown(nbr, S_BAD_TLV_LEN, msg.id,
|
||||
msg.type);
|
||||
session_shutdown(nbr, S_BAD_TLV_LEN, msg.id, msg.type);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
if (caps_rcvd & F_CAP_TLV_RCVD_TWCARD) {
|
||||
session_shutdown(nbr, S_BAD_TLV_VAL, msg.id,
|
||||
msg.type);
|
||||
if (CHECK_FLAG(caps_rcvd, F_CAP_TLV_RCVD_TWCARD)) {
|
||||
session_shutdown(nbr, S_BAD_TLV_VAL, msg.id, msg.type);
|
||||
return (-1);
|
||||
}
|
||||
caps_rcvd |= F_CAP_TLV_RCVD_TWCARD;
|
||||
SET_FLAG(caps_rcvd, F_CAP_TLV_RCVD_TWCARD);
|
||||
|
||||
memcpy(&reserved, buf, sizeof(reserved));
|
||||
enable = reserved & STATE_BIT;
|
||||
if (enable)
|
||||
nbr->flags |= F_NBR_CAP_TWCARD;
|
||||
SET_FLAG(nbr->flags, F_NBR_CAP_TWCARD);
|
||||
else
|
||||
nbr->flags &= ~F_NBR_CAP_TWCARD;
|
||||
UNSET_FLAG(nbr->flags, F_NBR_CAP_TWCARD);
|
||||
|
||||
log_debug("%s: lsr-id %pI4 %s the Typed Wildcard FEC capability", __func__, &nbr->id,
|
||||
(enable) ? "announced" : "withdrew");
|
||||
break;
|
||||
case TLV_TYPE_UNOTIF_CAP:
|
||||
if (tlv_len != CAP_TLV_UNOTIF_LEN) {
|
||||
session_shutdown(nbr, S_BAD_TLV_LEN, msg.id,
|
||||
msg.type);
|
||||
session_shutdown(nbr, S_BAD_TLV_LEN, msg.id, msg.type);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
if (caps_rcvd & F_CAP_TLV_RCVD_UNOTIF) {
|
||||
session_shutdown(nbr, S_BAD_TLV_VAL, msg.id,
|
||||
msg.type);
|
||||
if (CHECK_FLAG(caps_rcvd, F_CAP_TLV_RCVD_UNOTIF)) {
|
||||
session_shutdown(nbr, S_BAD_TLV_VAL, msg.id, msg.type);
|
||||
return (-1);
|
||||
}
|
||||
caps_rcvd |= F_CAP_TLV_RCVD_UNOTIF;
|
||||
SET_FLAG(caps_rcvd, F_CAP_TLV_RCVD_UNOTIF);
|
||||
|
||||
memcpy(&reserved, buf, sizeof(reserved));
|
||||
enable = reserved & STATE_BIT;
|
||||
if (enable)
|
||||
nbr->flags |= F_NBR_CAP_UNOTIF;
|
||||
SET_FLAG(nbr->flags, F_NBR_CAP_UNOTIF);
|
||||
else
|
||||
nbr->flags &= ~F_NBR_CAP_UNOTIF;
|
||||
UNSET_FLAG(nbr->flags, F_NBR_CAP_UNOTIF);
|
||||
|
||||
log_debug("%s: lsr-id %pI4 %s the Unrecognized Notification capability", __func__,
|
||||
&nbr->id, (enable) ? "announced" :
|
||||
"withdrew");
|
||||
&nbr->id, (enable) ? "announced" : "withdrew");
|
||||
break;
|
||||
case TLV_TYPE_DYNAMIC_CAP:
|
||||
/*
|
||||
@ -346,7 +335,7 @@ recv_capability(struct nbr *nbr, char *buf, uint16_t len)
|
||||
*/
|
||||
/* FALLTHROUGH */
|
||||
default:
|
||||
if (!(ntohs(tlv.type) & UNKNOWN_FLAG))
|
||||
if (!CHECK_FLAG(ntohs(tlv.type), UNKNOWN_FLAG))
|
||||
send_notification_rtlvs(nbr, S_UNSSUPORTDCAP,
|
||||
msg.id, msg.type, tlv_type, tlv_len, buf);
|
||||
/* ignore unknown tlv */
|
||||
|
Loading…
Reference in New Issue
Block a user