-
-
Notifications
You must be signed in to change notification settings - Fork 90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PIM Assert handling does not seem to work #63
Comments
Good work tracking this one down! I've actually never dared to venture into the assert handling, it always looked very scary. I too have noticed recurring problems with the assert election but could never figure out what was the root cause ... you may have stumbled upon it here! 👍 In any case, simply creating a branch and doing a pull-request is a LOT easier to discuss around at GitHub. So just go ahead and make a pull request and we can discuss the details around that 😃 |
It might be the case that the `MRTF_ASSERTED` flag was originally meant to be used for inbound ASSERT detection only, but from now on we will be using it for outbound handling as well. With these changes ASSERT state is cleared after 180 seconds, hard coded value, like before this fix. Signed-off-by: Mika Joutsenvirta <mika.joutsenvirta@insta.fi> Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
…uter Signed-off-by: Mika Joutsenvirta <mika.joutsenvirta@insta.fi> Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
Signed-off-by: Mika Joutsenvirta <mika.joutsenvirta@insta.fi> Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
Merged to master |
While doing some tests I ended up to a situation where RP had some (S,G) entries in Assert state. Once entered to such state, it looks like pimd never resets Assert. I looked at the
receive_pim_assert()
function a bit and I couldn't understand what actually happens there. First of all inpim_proto.c
line 2878-2879 there ismrt->timer
manipulation, but I suppose it should bemrt->assert_timer
manipulation? If I change that timer, then ASSERT timer starts to run once assert message is received. But then intimer.c
theassert_timer
handling seems to be somewhat unfinished.What I would do is change
mrt->timer
tomrt->assert_timer
inreceive_pim_assert()
, and then intimer.c if
assert_timerhas expired, then go through all VIFs of given
mrtentry and clear assert state. Currently VIFs are not looped through at all while doing assert checks and
asserted_oifs` are not cleared.So, am I missing something here? I could do some fixes to assert message state handling, but it would be great to get another opinion how this should be fixed.
The text was updated successfully, but these errors were encountered: