summaryrefslogtreecommitdiffstats
path: root/bgpd
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2016-01-07 09:33:28 -0500
committerPaul Jakma <paul.jakma@hpe.com>2016-02-26 14:11:40 +0000
commitf3cfc46450cccc5ac035a5a97c5a1a5484205705 (patch)
tree3ae512da65c1b4962363c038b8b2c94e27decf65 /bgpd
parentd5062d218994885710fe02f516f0c06025b4fc9a (diff)
downloadquagga-f3cfc46450cccc5ac035a5a97c5a1a5484205705.tar.bz2
quagga-f3cfc46450cccc5ac035a5a97c5a1a5484205705.tar.xz
lib, bgpd: Fixup afi_t to be an enum and cleanup zebra.h
This code change does two things: 1) Removes ZEBRA_AFI_XXX #defines since they were redundant information 2) Switches afi_t to an enumerated type so that the compiler can do a bit more compile time checking. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'bgpd')
-rw-r--r--bgpd/bgp_open.c40
-rw-r--r--bgpd/bgp_open.h1
-rw-r--r--bgpd/bgp_routemap.c14
3 files changed, 27 insertions, 28 deletions
diff --git a/bgpd/bgp_open.c b/bgpd/bgp_open.c
index ff2ae08d..38d9dc56 100644
--- a/bgpd/bgp_open.c
+++ b/bgpd/bgp_open.c
@@ -126,23 +126,23 @@ bgp_afi_safi_valid_indices (afi_t afi, safi_t *safi)
{
switch (afi)
{
- case AFI_IP:
-#ifdef HAVE_IPV6
- case AFI_IP6:
-#endif
- switch (*safi)
- {
- /* BGP MPLS-labeled VPN SAFI isn't contigious with others, remap */
- case SAFI_MPLS_LABELED_VPN:
- *safi = SAFI_MPLS_VPN;
- case SAFI_UNICAST:
- case SAFI_MULTICAST:
- case SAFI_MPLS_VPN:
- return 1;
- }
+ case AFI_IP:
+ case AFI_IP6:
+ switch (*safi)
+ {
+ /* BGP MPLS-labeled VPN SAFI isn't contigious with others, remap */
+ case SAFI_MPLS_LABELED_VPN:
+ *safi = SAFI_MPLS_VPN;
+ case SAFI_UNICAST:
+ case SAFI_MULTICAST:
+ case SAFI_MPLS_VPN:
+ return 1;
+ }
+ break;
}
+
zlog_debug ("unknown afi/safi (%u/%u)", afi, *safi);
-
+
return 0;
}
@@ -230,7 +230,7 @@ bgp_capability_orf_entry (struct peer *peer, struct capability_header *hdr)
}
/* validate number field */
- if (sizeof (struct capability_orf_entry) + (entry.num * 2) > hdr->length)
+ if (CAPABILITY_CODE_ORF_LEN + (entry.num * 2) > hdr->length)
{
zlog_info ("%s ORF Capability entry length error,"
" Cap length %u, num %u",
@@ -432,14 +432,14 @@ static const int capcode_str_max = array_size(capcode_str);
/* Minimum sizes for length field of each cap (so not inc. the header) */
static const size_t cap_minsizes[] =
{
- [CAPABILITY_CODE_MP] = sizeof (struct capability_mp_data),
+ [CAPABILITY_CODE_MP] = CAPABILITY_CODE_MP_LEN,
[CAPABILITY_CODE_REFRESH] = CAPABILITY_CODE_REFRESH_LEN,
- [CAPABILITY_CODE_ORF] = sizeof (struct capability_orf_entry),
- [CAPABILITY_CODE_RESTART] = sizeof (struct capability_gr),
+ [CAPABILITY_CODE_ORF] = CAPABILITY_CODE_ORF_LEN,
+ [CAPABILITY_CODE_RESTART] = 6,
[CAPABILITY_CODE_AS4] = CAPABILITY_CODE_AS4_LEN,
[CAPABILITY_CODE_DYNAMIC] = CAPABILITY_CODE_DYNAMIC_LEN,
[CAPABILITY_CODE_REFRESH_OLD] = CAPABILITY_CODE_REFRESH_LEN,
- [CAPABILITY_CODE_ORF_OLD] = sizeof (struct capability_orf_entry),
+ [CAPABILITY_CODE_ORF_OLD] = CAPABILITY_CODE_ORF_LEN,
};
/* value the capability must be a multiple of.
diff --git a/bgpd/bgp_open.h b/bgpd/bgp_open.h
index 2b1382d8..62333754 100644
--- a/bgpd/bgp_open.h
+++ b/bgpd/bgp_open.h
@@ -82,6 +82,7 @@ struct capability_gr
#define CAPABILITY_CODE_DYNAMIC_LEN 0
#define CAPABILITY_CODE_RESTART_LEN 2 /* Receiving only case */
#define CAPABILITY_CODE_AS4_LEN 4
+#define CAPABILITY_CODE_ORF_LEN 5
/* Cooperative Route Filtering Capability. */
diff --git a/bgpd/bgp_routemap.c b/bgpd/bgp_routemap.c
index 20bf2eba..7555ca77 100644
--- a/bgpd/bgp_routemap.c
+++ b/bgpd/bgp_routemap.c
@@ -2383,14 +2383,12 @@ bgp_route_map_update (const char *unused)
{
for (i = 0; i < ZEBRA_ROUTE_MAX; i++)
{
- if (bgp->rmap[ZEBRA_FAMILY_IPV4][i].name)
- bgp->rmap[ZEBRA_FAMILY_IPV4][i].map =
- route_map_lookup_by_name (bgp->rmap[ZEBRA_FAMILY_IPV4][i].name);
-#ifdef HAVE_IPV6
- if (bgp->rmap[ZEBRA_FAMILY_IPV6][i].name)
- bgp->rmap[ZEBRA_FAMILY_IPV6][i].map =
- route_map_lookup_by_name (bgp->rmap[ZEBRA_FAMILY_IPV6][i].name);
-#endif /* HAVE_IPV6 */
+ if (bgp->rmap[AFI_IP][i].name)
+ bgp->rmap[AFI_IP][i].map =
+ route_map_lookup_by_name (bgp->rmap[AFI_IP][i].name);
+ if (bgp->rmap[AFI_IP6][i].name)
+ bgp->rmap[AFI_IP6][i].map =
+ route_map_lookup_by_name (bgp->rmap[AFI_IP][i].name);
}
}
}