summaryrefslogtreecommitdiffstats
path: root/pimd
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetwroks.com>2016-06-22 22:39:31 +0200
committerDonald Sharp <sharpd@cumulusnetwroks.com>2016-06-22 22:39:31 +0200
commita920d6e72ae25604645dd47a3f351748eec910c3 (patch)
tree1deee5c5eeedd87f46ef3259028dc8cf5266fbd2 /pimd
parentpimd: Log Rotate is not working properly (diff)
downloadfrr-a920d6e72ae25604645dd47a3f351748eec910c3.tar.xz
frr-a920d6e72ae25604645dd47a3f351748eec910c3.zip
pimd: Fix checking to see if we are a RP or not
When we create the pim_ifp we need to see if this interface allows us to elect our selves the RP. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'pimd')
-rw-r--r--pimd/pim_cmd.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c
index 3b0a8b3d5..9f8eb059c 100644
--- a/pimd/pim_cmd.c
+++ b/pimd/pim_cmd.c
@@ -52,6 +52,7 @@
#include "pim_ssmpingd.h"
#include "pim_zebra.h"
#include "pim_static.h"
+#include "pim_rp.h"
static struct cmd_node pim_global_node = {
PIM_NODE,
@@ -3230,6 +3231,7 @@ static int
pim_cmd_interface_add (struct interface *ifp, enum pim_interface_type itype)
{
struct pim_interface *pim_ifp = ifp->info;
+ struct in_addr null = { .s_addr = 0 };
if (!pim_ifp) {
pim_ifp = pim_if_new(ifp, 0 /* igmp=false */, 1 /* pim=true */);
@@ -3245,6 +3247,7 @@ pim_cmd_interface_add (struct interface *ifp, enum pim_interface_type itype)
pim_if_addr_add_all(ifp);
pim_if_membership_refresh(ifp);
+ pim_rp_check_rp (null, pim_ifp->primary_address);
return 1;
}