forked from Mirror/frr
eigrpd: Pass in actual used parameter to header creation
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
a6e8810ee3
commit
cf2f4daee3
|
@ -618,7 +618,7 @@ static struct eigrp_packet *eigrp_hello_encode(struct eigrp_interface *ei,
|
||||||
|
|
||||||
if (ep) {
|
if (ep) {
|
||||||
// encode common header feilds
|
// encode common header feilds
|
||||||
eigrp_packet_header_init(EIGRP_OPC_HELLO, ei, ep->s, 0, 0, ack);
|
eigrp_packet_header_init(EIGRP_OPC_HELLO, ei->eigrp, ep->s, 0, 0, ack);
|
||||||
|
|
||||||
// encode Authentication TLV
|
// encode Authentication TLV
|
||||||
if ((IF_DEF_PARAMS(ei->ifp)->auth_type == EIGRP_AUTH_TYPE_MD5)
|
if ((IF_DEF_PARAMS(ei->ifp)->auth_type == EIGRP_AUTH_TYPE_MD5)
|
||||||
|
|
|
@ -877,7 +877,7 @@ void eigrp_packet_checksum(struct eigrp_interface *ei, struct stream *s,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Make EIGRP header. */
|
/* Make EIGRP header. */
|
||||||
void eigrp_packet_header_init(int type, struct eigrp_interface *ei,
|
void eigrp_packet_header_init(int type, struct eigrp *eigrp,
|
||||||
struct stream *s, u_int32_t flags,
|
struct stream *s, u_int32_t flags,
|
||||||
u_int32_t sequence, u_int32_t ack)
|
u_int32_t sequence, u_int32_t ack)
|
||||||
{
|
{
|
||||||
|
@ -890,8 +890,8 @@ void eigrp_packet_header_init(int type, struct eigrp_interface *ei,
|
||||||
eigrph->opcode = (u_char)type;
|
eigrph->opcode = (u_char)type;
|
||||||
eigrph->checksum = 0;
|
eigrph->checksum = 0;
|
||||||
|
|
||||||
eigrph->vrid = htons(ei->eigrp->vrid);
|
eigrph->vrid = htons(eigrp->vrid);
|
||||||
eigrph->ASNumber = htons(ei->eigrp->AS);
|
eigrph->ASNumber = htons(eigrp->AS);
|
||||||
eigrph->ack = htonl(ack);
|
eigrph->ack = htonl(ack);
|
||||||
eigrph->sequence = htonl(sequence);
|
eigrph->sequence = htonl(sequence);
|
||||||
// if(flags == EIGRP_INIT_FLAG)
|
// if(flags == EIGRP_INIT_FLAG)
|
||||||
|
|
|
@ -41,7 +41,7 @@ extern struct eigrp_packet *eigrp_packet_duplicate(struct eigrp_packet *,
|
||||||
struct eigrp_neighbor *);
|
struct eigrp_neighbor *);
|
||||||
extern void eigrp_packet_free(struct eigrp_packet *);
|
extern void eigrp_packet_free(struct eigrp_packet *);
|
||||||
extern void eigrp_packet_delete(struct eigrp_interface *);
|
extern void eigrp_packet_delete(struct eigrp_interface *);
|
||||||
extern void eigrp_packet_header_init(int, struct eigrp_interface *,
|
extern void eigrp_packet_header_init(int, struct eigrp *,
|
||||||
struct stream *, u_int32_t, u_int32_t,
|
struct stream *, u_int32_t, u_int32_t,
|
||||||
u_int32_t);
|
u_int32_t);
|
||||||
extern void eigrp_packet_checksum(struct eigrp_interface *, struct stream *,
|
extern void eigrp_packet_checksum(struct eigrp_interface *, struct stream *,
|
||||||
|
|
|
@ -162,7 +162,7 @@ void eigrp_send_query(struct eigrp_interface *ei)
|
||||||
ep = eigrp_packet_new(ei->ifp->mtu, NULL);
|
ep = eigrp_packet_new(ei->ifp->mtu, NULL);
|
||||||
|
|
||||||
/* Prepare EIGRP INIT UPDATE header */
|
/* Prepare EIGRP INIT UPDATE header */
|
||||||
eigrp_packet_header_init(EIGRP_OPC_QUERY, ei, ep->s, 0,
|
eigrp_packet_header_init(EIGRP_OPC_QUERY, ei->eigrp, ep->s, 0,
|
||||||
ei->eigrp->sequence_number, 0);
|
ei->eigrp->sequence_number, 0);
|
||||||
|
|
||||||
// encode Authentication TLV, if needed
|
// encode Authentication TLV, if needed
|
||||||
|
|
|
@ -113,7 +113,7 @@ void eigrp_send_reply(struct eigrp_neighbor *nbr, struct eigrp_prefix_entry *pe)
|
||||||
ep = eigrp_packet_new(nbr->ei->ifp->mtu, nbr);
|
ep = eigrp_packet_new(nbr->ei->ifp->mtu, nbr);
|
||||||
|
|
||||||
/* Prepare EIGRP INIT UPDATE header */
|
/* Prepare EIGRP INIT UPDATE header */
|
||||||
eigrp_packet_header_init(EIGRP_OPC_REPLY, nbr->ei, ep->s, 0,
|
eigrp_packet_header_init(EIGRP_OPC_REPLY, e, ep->s, 0,
|
||||||
nbr->ei->eigrp->sequence_number, 0);
|
nbr->ei->eigrp->sequence_number, 0);
|
||||||
|
|
||||||
// encode Authentication TLV, if needed
|
// encode Authentication TLV, if needed
|
||||||
|
|
|
@ -126,7 +126,7 @@ void eigrp_send_siaquery(struct eigrp_neighbor *nbr,
|
||||||
ep = eigrp_packet_new(nbr->ei->ifp->mtu, nbr);
|
ep = eigrp_packet_new(nbr->ei->ifp->mtu, nbr);
|
||||||
|
|
||||||
/* Prepare EIGRP INIT UPDATE header */
|
/* Prepare EIGRP INIT UPDATE header */
|
||||||
eigrp_packet_header_init(EIGRP_OPC_SIAQUERY, nbr->ei, ep->s, 0,
|
eigrp_packet_header_init(EIGRP_OPC_SIAQUERY, nbr->ei->eigrp, ep->s, 0,
|
||||||
nbr->ei->eigrp->sequence_number, 0);
|
nbr->ei->eigrp->sequence_number, 0);
|
||||||
|
|
||||||
// encode Authentication TLV, if needed
|
// encode Authentication TLV, if needed
|
||||||
|
|
|
@ -125,7 +125,7 @@ void eigrp_send_siareply(struct eigrp_neighbor *nbr,
|
||||||
ep = eigrp_packet_new(nbr->ei->ifp->mtu, nbr);
|
ep = eigrp_packet_new(nbr->ei->ifp->mtu, nbr);
|
||||||
|
|
||||||
/* Prepare EIGRP INIT UPDATE header */
|
/* Prepare EIGRP INIT UPDATE header */
|
||||||
eigrp_packet_header_init(EIGRP_OPC_SIAREPLY, nbr->ei, ep->s, 0,
|
eigrp_packet_header_init(EIGRP_OPC_SIAREPLY, nbr->ei->eigrp, ep->s, 0,
|
||||||
nbr->ei->eigrp->sequence_number, 0);
|
nbr->ei->eigrp->sequence_number, 0);
|
||||||
|
|
||||||
// encode Authentication TLV, if needed
|
// encode Authentication TLV, if needed
|
||||||
|
|
|
@ -471,9 +471,10 @@ void eigrp_update_send_init(struct eigrp_neighbor *nbr)
|
||||||
nbr->ei->eigrp->sequence_number,
|
nbr->ei->eigrp->sequence_number,
|
||||||
nbr->recv_sequence_number);
|
nbr->recv_sequence_number);
|
||||||
|
|
||||||
eigrp_packet_header_init(
|
eigrp_packet_header_init(EIGRP_OPC_UPDATE, nbr->ei->eigrp,
|
||||||
EIGRP_OPC_UPDATE, nbr->ei, ep->s, EIGRP_INIT_FLAG,
|
ep->s, EIGRP_INIT_FLAG,
|
||||||
nbr->ei->eigrp->sequence_number, nbr->recv_sequence_number);
|
nbr->ei->eigrp->sequence_number,
|
||||||
|
nbr->recv_sequence_number);
|
||||||
|
|
||||||
// encode Authentication TLV, if needed
|
// encode Authentication TLV, if needed
|
||||||
if ((IF_DEF_PARAMS(nbr->ei->ifp)->auth_type == EIGRP_AUTH_TYPE_MD5)
|
if ((IF_DEF_PARAMS(nbr->ei->ifp)->auth_type == EIGRP_AUTH_TYPE_MD5)
|
||||||
|
@ -584,9 +585,9 @@ void eigrp_update_send_EOT(struct eigrp_neighbor *nbr)
|
||||||
ep = eigrp_packet_new(nbr->ei->ifp->mtu, nbr);
|
ep = eigrp_packet_new(nbr->ei->ifp->mtu, nbr);
|
||||||
|
|
||||||
/* Prepare EIGRP EOT UPDATE header */
|
/* Prepare EIGRP EOT UPDATE header */
|
||||||
eigrp_packet_header_init(EIGRP_OPC_UPDATE, nbr->ei, ep->s, EIGRP_EOT_FLAG,
|
eigrp_packet_header_init(EIGRP_OPC_UPDATE, nbr->ei->eigrp,
|
||||||
seq_no,
|
ep->s, EIGRP_EOT_FLAG,
|
||||||
nbr->recv_sequence_number);
|
seq_no, nbr->recv_sequence_number);
|
||||||
|
|
||||||
// encode Authentication TLV, if needed
|
// encode Authentication TLV, if needed
|
||||||
if((IF_DEF_PARAMS (nbr->ei->ifp)->auth_type == EIGRP_AUTH_TYPE_MD5) &&
|
if((IF_DEF_PARAMS (nbr->ei->ifp)->auth_type == EIGRP_AUTH_TYPE_MD5) &&
|
||||||
|
@ -606,7 +607,8 @@ void eigrp_update_send_EOT(struct eigrp_neighbor *nbr)
|
||||||
|
|
||||||
length = EIGRP_HEADER_LEN;
|
length = EIGRP_HEADER_LEN;
|
||||||
ep = eigrp_packet_new(nbr->ei->ifp->mtu, nbr);
|
ep = eigrp_packet_new(nbr->ei->ifp->mtu, nbr);
|
||||||
eigrp_packet_header_init(EIGRP_OPC_UPDATE, nbr->ei, ep->s, EIGRP_EOT_FLAG,
|
eigrp_packet_header_init(EIGRP_OPC_UPDATE, nbr->ei->eigrp,
|
||||||
|
ep->s, EIGRP_EOT_FLAG,
|
||||||
seq_no, nbr->recv_sequence_number);
|
seq_no, nbr->recv_sequence_number);
|
||||||
|
|
||||||
if((IF_DEF_PARAMS (nbr->ei->ifp)->auth_type == EIGRP_AUTH_TYPE_MD5) &&
|
if((IF_DEF_PARAMS (nbr->ei->ifp)->auth_type == EIGRP_AUTH_TYPE_MD5) &&
|
||||||
|
@ -674,8 +676,8 @@ void eigrp_update_send(struct eigrp_interface *ei)
|
||||||
ep = eigrp_packet_new(ei->ifp->mtu, NULL);
|
ep = eigrp_packet_new(ei->ifp->mtu, NULL);
|
||||||
|
|
||||||
/* Prepare EIGRP INIT UPDATE header */
|
/* Prepare EIGRP INIT UPDATE header */
|
||||||
eigrp_packet_header_init(EIGRP_OPC_UPDATE, ei, ep->s, 0,
|
eigrp_packet_header_init(EIGRP_OPC_UPDATE, ei->eigrp,
|
||||||
seq_no, 0);
|
ep->s, 0, seq_no, 0);
|
||||||
|
|
||||||
// encode Authentication TLV, if needed
|
// encode Authentication TLV, if needed
|
||||||
if ((IF_DEF_PARAMS(ei->ifp)->auth_type == EIGRP_AUTH_TYPE_MD5)
|
if ((IF_DEF_PARAMS(ei->ifp)->auth_type == EIGRP_AUTH_TYPE_MD5)
|
||||||
|
@ -707,8 +709,8 @@ void eigrp_update_send(struct eigrp_interface *ei)
|
||||||
|
|
||||||
length = EIGRP_HEADER_LEN;
|
length = EIGRP_HEADER_LEN;
|
||||||
ep = eigrp_packet_new(ei->ifp->mtu, NULL);
|
ep = eigrp_packet_new(ei->ifp->mtu, NULL);
|
||||||
eigrp_packet_header_init(EIGRP_OPC_UPDATE, ei, ep->s, 0,
|
eigrp_packet_header_init(EIGRP_OPC_UPDATE, ei->eigrp,
|
||||||
seq_no, 0);
|
ep->s, 0, seq_no, 0);
|
||||||
if ((IF_DEF_PARAMS(ei->ifp)->auth_type == EIGRP_AUTH_TYPE_MD5)
|
if ((IF_DEF_PARAMS(ei->ifp)->auth_type == EIGRP_AUTH_TYPE_MD5)
|
||||||
&& (IF_DEF_PARAMS(ei->ifp)->auth_keychain != NULL)) {
|
&& (IF_DEF_PARAMS(ei->ifp)->auth_keychain != NULL)) {
|
||||||
length += eigrp_add_authTLV_MD5_to_stream(ep->s, ei);
|
length += eigrp_add_authTLV_MD5_to_stream(ep->s, ei);
|
||||||
|
@ -875,7 +877,7 @@ static void eigrp_update_send_GR_part(struct eigrp_neighbor *nbr)
|
||||||
ep = eigrp_packet_new(nbr->ei->ifp->mtu, nbr);
|
ep = eigrp_packet_new(nbr->ei->ifp->mtu, nbr);
|
||||||
|
|
||||||
/* Prepare EIGRP Graceful restart UPDATE header */
|
/* Prepare EIGRP Graceful restart UPDATE header */
|
||||||
eigrp_packet_header_init(EIGRP_OPC_UPDATE, nbr->ei, ep->s, flags,
|
eigrp_packet_header_init(EIGRP_OPC_UPDATE, nbr->ei->eigrp, ep->s, flags,
|
||||||
nbr->ei->eigrp->sequence_number,
|
nbr->ei->eigrp->sequence_number,
|
||||||
nbr->recv_sequence_number);
|
nbr->recv_sequence_number);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue