summaryrefslogtreecommitdiff
path: root/bgpd/bgp_open.c
diff options
context:
space:
mode:
Diffstat (limited to 'bgpd/bgp_open.c')
-rw-r--r--bgpd/bgp_open.c34
1 files changed, 20 insertions, 14 deletions
diff --git a/bgpd/bgp_open.c b/bgpd/bgp_open.c
index 4a06881041..7dbb439be1 100644
--- a/bgpd/bgp_open.c
+++ b/bgpd/bgp_open.c
@@ -188,7 +188,9 @@ bgp_capability_mp (struct peer *peer, struct capability_header *hdr)
{
struct capability_mp_data mpc;
struct stream *s = BGP_INPUT (peer);
-
+ afi_t afi;
+ safi_t safi;
+
/* Verify length is 4 */
if (hdr->length != 4)
{
@@ -204,14 +206,14 @@ bgp_capability_mp (struct peer *peer, struct capability_header *hdr)
peer->host, mpc.afi, mpc.safi);
/* Convert AFI, SAFI to internal values, check. */
- if (bgp_map_afi_safi_iana2int (mpc.afi, mpc.safi, &mpc.afi, &mpc.safi))
+ if (bgp_map_afi_safi_iana2int (mpc.afi, mpc.safi, &afi, &safi))
return -1;
/* Now safi remapped, and afi/safi are valid array indices */
- peer->afc_recv[mpc.afi][mpc.safi] = 1;
+ peer->afc_recv[afi][safi] = 1;
- if (peer->afc[mpc.afi][mpc.safi])
- peer->afc_nego[mpc.afi][mpc.safi] = 1;
+ if (peer->afc[afi][safi])
+ peer->afc_nego[afi][safi] = 1;
else
return -1;
@@ -219,7 +221,7 @@ bgp_capability_mp (struct peer *peer, struct capability_header *hdr)
}
static void
-bgp_capability_orf_not_support (struct peer *peer, afi_t afi, safi_t safi,
+bgp_capability_orf_not_support (struct peer *peer, iana_afi_t afi, safi_t safi,
u_char type, u_char mode)
{
if (bgp_debug_neighbor_events(peer))
@@ -247,7 +249,8 @@ bgp_capability_orf_entry (struct peer *peer, struct capability_header *hdr)
{
struct stream *s = BGP_INPUT (peer);
struct capability_orf_entry entry;
- afi_t pkt_afi, afi;
+ iana_afi_t pkt_afi;
+ afi_t afi;
safi_t pkt_safi, safi;
u_char type;
u_char mode;
@@ -274,7 +277,7 @@ bgp_capability_orf_entry (struct peer *peer, struct capability_header *hdr)
return 0;
}
- entry.mpc.afi = afi;
+ entry.mpc.afi = pkt_afi;
entry.mpc.safi = safi;
/* validate number field */
@@ -418,7 +421,7 @@ bgp_capability_restart (struct peer *peer, struct capability_header *caphdr)
{
afi_t afi;
safi_t safi;
- afi_t pkt_afi = stream_getw (s);
+ iana_afi_t pkt_afi = stream_getw (s);
safi_t pkt_safi = stream_getc (s);
u_char flag = stream_getc (s);
@@ -496,7 +499,7 @@ bgp_capability_addpath (struct peer *peer, struct capability_header *hdr)
{
afi_t afi;
safi_t safi;
- afi_t pkt_afi = stream_getw (s);
+ iana_afi_t pkt_afi = stream_getw (s);
safi_t pkt_safi = stream_getc (s);
u_char send_receive = stream_getc (s);
@@ -550,9 +553,11 @@ bgp_capability_enhe (struct peer *peer, struct capability_header *hdr)
while (stream_get_getp (s) + 6 <= end)
{
- afi_t afi, pkt_afi = stream_getw (s);
+ iana_afi_t pkt_afi = stream_getw (s);
+ afi_t afi;
safi_t safi, pkt_safi = stream_getw (s);
- afi_t nh_afi, pkt_nh_afi = stream_getw (s);
+ iana_afi_t pkt_nh_afi = stream_getw (s);
+ afi_t nh_afi;
if (bgp_debug_neighbor_events(peer))
zlog_debug ("%s Received with afi/safi/next-hop afi: %u/%u/%u",
@@ -1162,7 +1167,7 @@ bgp_open_capability_orf (struct stream *s, struct peer *peer,
unsigned long orfp;
unsigned long numberp;
int number_of_orfs = 0;
- afi_t pkt_afi;
+ iana_afi_t pkt_afi;
safi_t pkt_safi;
/* Convert AFI, SAFI to values for packet. */
@@ -1225,7 +1230,8 @@ bgp_open_capability (struct stream *s, struct peer *peer)
{
u_char len;
unsigned long cp, capp, rcapp;
- afi_t afi, pkt_afi;
+ iana_afi_t pkt_afi;
+ afi_t afi;
safi_t safi, pkt_safi;
as_t local_as;
u_int32_t restart_time;