summaryrefslogtreecommitdiffstats
path: root/zebra/rtadv.h
diff options
context:
space:
mode:
authorvivek <vivek@cumulusnetworks.com>2016-03-22 17:52:35 +0100
committervivek <vivek@cumulusnetworks.com>2016-03-22 17:52:35 +0100
commitc23af4d3e6ea864774f0bedfccc9ed1acb2cfab2 (patch)
treeacb8c6c9fafde0d1634c55f6f51c10c5c7e42b42 /zebra/rtadv.h
parentquagga: Setup the proper version number in quagga (diff)
downloadfrr-c23af4d3e6ea864774f0bedfccc9ed1acb2cfab2.tar.xz
frr-c23af4d3e6ea864774f0bedfccc9ed1acb2cfab2.zip
Zebra: Restrict IPv6 RA to valid interfaces
Restrict interfaces on which IPv6 Router Advertisements are allowed. The list excludes loopback interfaces including the VRF device interface; specific to Cumulus, it also includes "switch0" and "ethX" interfaces. Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com> Reviewed-by: Don Slice <dslice@cumulusnetworks.com> Ticket: CM-9849 Reviewed By: CCR-4334 Testing Done: Manual
Diffstat (limited to 'zebra/rtadv.h')
-rw-r--r--zebra/rtadv.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/zebra/rtadv.h b/zebra/rtadv.h
index e8d84f9de..a3ea42593 100644
--- a/zebra/rtadv.h
+++ b/zebra/rtadv.h
@@ -116,9 +116,11 @@ static inline int
interface_ipv6_auto_ra_allowed (struct interface *ifp)
{
#if defined (HAVE_RTADV)
+ if (if_is_loopback (ifp) ||
+ CHECK_FLAG(ifp->status, ZEBRA_INTERFACE_VRF_LOOPBACK))
+ return 0;
#if defined (HAVE_CUMULUS)
if ((strncmp (ifp->name, "eth", strlen("eth")) == 0) ||
- (strncmp (ifp->name, "lo", strlen("lo")) == 0) ||
(strncmp (ifp->name, "switch", strlen("switch")) == 0))
return 0;
#endif