summaryrefslogtreecommitdiff
path: root/pimd/pim_hello.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetwroks.com>2016-08-06 06:26:05 -0400
committerDonald Sharp <sharpd@cumulusnetworks.com>2016-12-21 20:26:05 -0500
commit1148de0adbb606c64ffabdb7cb70030365d51c65 (patch)
tree288ab5358c516f9f1df8bc4604f2023debed49cd /pimd/pim_hello.c
parent36d6bd7d34090d3af3dd1953b7ccc1b02f042849 (diff)
pimd: Send hello immediately with receive of new genid
When we receive a new genid from a neighbor, we need to form the neigbhor relationship before the join/prune messages are sent to the neighbor. Additionally we were calling the pim_upstream_rpf_genid_changed function 2 times in a row. This function just spun throught the upstream list and marked all relevant upstreams to be sent immediately Ticket:CM-11979 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'pimd/pim_hello.c')
-rw-r--r--pimd/pim_hello.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/pimd/pim_hello.c b/pimd/pim_hello.c
index 3502f4e962..434a0e66c4 100644
--- a/pimd/pim_hello.c
+++ b/pimd/pim_hello.c
@@ -350,7 +350,8 @@ int pim_hello_recv(struct interface *ifp,
hello_option_override_interval,
hello_option_dr_priority,
hello_option_generation_id,
- hello_option_addr_list);
+ hello_option_addr_list,
+ PIM_NEIGHBOR_SEND_DELAY);
if (!neigh) {
if (PIM_DEBUG_PIM_HELLO) {
char src_str[100];
@@ -374,11 +375,6 @@ int pim_hello_recv(struct interface *ifp,
/* GenID mismatch ? */
if (!PIM_OPTION_IS_SET(neigh->hello_options, PIM_OPTION_MASK_GENERATION_ID) ||
(hello_option_generation_id != neigh->generation_id)) {
-
- /* GenID changed */
-
- pim_upstream_rpf_genid_changed(neigh->source_addr);
-
/* GenID mismatch, then replace neighbor */
if (PIM_DEBUG_PIM_HELLO) {
@@ -401,7 +397,8 @@ int pim_hello_recv(struct interface *ifp,
hello_option_override_interval,
hello_option_dr_priority,
hello_option_generation_id,
- hello_option_addr_list);
+ hello_option_addr_list,
+ PIM_NEIGHBOR_SEND_NOW);
if (!neigh) {
if (PIM_DEBUG_PIM_HELLO) {
char src_str[100];