summaryrefslogtreecommitdiffstats
path: root/lib/prefix.c
diff options
context:
space:
mode:
authorPhilippe Guibert <philippe.guibert@6wind.com>2017-01-17 22:21:40 +0100
committerPhilippe Guibert <philippe.guibert@6wind.com>2017-02-14 13:58:58 +0100
commit25098f9b971e668d83bef83dc3c5b5ab8a6c2363 (patch)
tree820214167975ecf8c40730d0c3236d70a747bc02 /lib/prefix.c
parentbgpd: evpn NLRI route type 5 forging (diff)
downloadfrr-25098f9b971e668d83bef83dc3c5b5ab8a6c2363.tar.xz
frr-25098f9b971e668d83bef83dc3c5b5ab8a6c2363.zip
lib: add define of compilation for EVPN in prefix.c
Because the prefix structure may include or not evpn sub structure, then HAVE_EVPN compilation define is also used in prefix.c, because it references the sub field evpn of prefix structure. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Diffstat (limited to 'lib/prefix.c')
-rw-r--r--lib/prefix.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/lib/prefix.c b/lib/prefix.c
index 6d3de3d6c..514e4f8eb 100644
--- a/lib/prefix.c
+++ b/lib/prefix.c
@@ -304,19 +304,17 @@ prefix_copy (struct prefix *dest, const struct prefix *src)
dest->u.prefix4 = src->u.prefix4;
else if (src->family == AF_INET6)
dest->u.prefix6 = src->u.prefix6;
+#if defined(HAVE_EVPN)
else if (src->family == AF_ETHERNET)
{
memcpy (&dest->u.prefix_evpn, &src->u.prefix_evpn, sizeof (struct evpn_addr));
}
+#endif /* (HAVE_EVPN) */
else if (src->family == AF_UNSPEC)
{
dest->u.lp.id = src->u.lp.id;
dest->u.lp.adv_router = src->u.lp.adv_router;
}
- else if (src->family == AF_ETHERNET)
- {
- dest->u.prefix_eth = src->u.prefix_eth;
- }
else
{
zlog (NULL, LOG_ERR, "prefix_copy(): Unknown address family %d",
@@ -350,9 +348,11 @@ prefix_same (const struct prefix *p1, const struct prefix *p2)
if (p1->family == AF_INET6 )
if (IPV6_ADDR_SAME (&p1->u.prefix6.s6_addr, &p2->u.prefix6.s6_addr))
return 1;
+#if defined(HAVE_EVPN)
if (p1->family == AF_ETHERNET )
if (!memcmp (&p1->u.prefix_evpn, &p2->u.prefix_evpn, sizeof (struct evpn_addr)))
return 1;
+#endif /* (HAVE_EVPN) */
}
return 0;
}
@@ -866,8 +866,6 @@ prefix2str (union prefixconstptr pu, char *str, int size)
switch (p->family)
{
- u_char family;
-
case AF_INET:
case AF_INET6:
snprintf (str, size, "%s/%d",
@@ -875,9 +873,11 @@ prefix2str (union prefixconstptr pu, char *str, int size)
p->prefixlen);
break;
+#if defined(HAVE_EVPN)
case AF_ETHERNET:
if (p->u.prefix_evpn.route_type == 5)
{
+ u_char family;
family = (p->u.prefix_evpn.flags & (IP_ADDR_V4 | IP_PREFIX_V4)) ?
AF_INET : AF_INET6;
snprintf (str, size, "[%d]:[%u][%s]/%d",
@@ -888,7 +888,7 @@ prefix2str (union prefixconstptr pu, char *str, int size)
p->prefixlen);
}
break;
-
+#endif /* (HAVE_EVPN) */
default:
sprintf (str, "UNK prefix");
break;