summaryrefslogtreecommitdiff
path: root/pimd/pim_pim.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2016-12-07 11:01:57 -0500
committerDonald Sharp <sharpd@cumulusnetworks.com>2016-12-21 20:26:18 -0500
commit5a515ebed0af700d8ec6020961559270d6a37e8c (patch)
tree1c99fd04e75c51811e5b91191cb66226c350a87e /pimd/pim_pim.c
parenta85d8802932986e35d2585d99b51e5a9c447b0e6 (diff)
pimd: Reset neighbor hold time when we receive packet
When we receive a packet from a neighbor, reset the hold time as that we *know* that they are still alive. During heavy packet load, we were seeing cases where neighbors were being reset because we were timing out due to not processing the hello packet in time. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'pimd/pim_pim.c')
-rw-r--r--pimd/pim_pim.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/pimd/pim_pim.c b/pimd/pim_pim.c
index b973adacc4..f9d74ff039 100644
--- a/pimd/pim_pim.c
+++ b/pimd/pim_pim.c
@@ -245,6 +245,7 @@ int pim_pim_packet(struct interface *ifp, uint8_t *buf, size_t len)
pim_type, src_str, ifp->name);
return -1;
}
+ pim_neighbor_timer_reset(neigh, neigh->holdtime);
return pim_joinprune_recv(ifp, neigh,
ip_hdr->ip_src,
pim_msg + PIM_MSG_HEADER_LEN,
@@ -259,6 +260,7 @@ int pim_pim_packet(struct interface *ifp, uint8_t *buf, size_t len)
pim_type, src_str, ifp->name);
return -1;
}
+ pim_neighbor_timer_reset(neigh, neigh->holdtime);
return pim_assert_recv(ifp, neigh,
ip_hdr->ip_src,
pim_msg + PIM_MSG_HEADER_LEN,