diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2016-12-07 11:01:57 -0500 |
|---|---|---|
| committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2016-12-21 20:26:18 -0500 |
| commit | 5a515ebed0af700d8ec6020961559270d6a37e8c (patch) | |
| tree | 1c99fd04e75c51811e5b91191cb66226c350a87e /pimd/pim_pim.c | |
| parent | a85d8802932986e35d2585d99b51e5a9c447b0e6 (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.c | 2 |
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, |
