Skip to content
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

Closed
idismmxiv opened this issue Dec 23, 2015 · 2 comments
Closed

PIM Assert handling does not seem to work #63

idismmxiv opened this issue Dec 23, 2015 · 2 comments
Assignees
Milestone

Comments

@idismmxiv
Copy link
Contributor

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 in pim_proto.c line 2878-2879 there is mrt->timer manipulation, but I suppose it should be mrt->assert_timer manipulation? If I change that timer, then ASSERT timer starts to run once assert message is received. But then in timer.c the assert_timer handling seems to be somewhat unfinished.

What I would do is change mrt->timer to mrt->assert_timer in receive_pim_assert(), and then in timer.c ifassert_timerhas expired, then go through all VIFs of givenmrtentry and clear assert state. Currently VIFs are not looped through at all while doing assert checks andasserted_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.

@troglobit
Copy link
Owner

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 😃

@troglobit troglobit changed the title PIM Assert message state PIM Assert handling does not seem to work Dec 23, 2015
@troglobit troglobit self-assigned this Jan 7, 2016
@troglobit troglobit added this to the 2.3.2 milestone Jan 7, 2016
troglobit pushed a commit that referenced this issue Feb 10, 2016
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>
troglobit pushed a commit that referenced this issue Feb 10, 2016
…uter

Signed-off-by: Mika Joutsenvirta <mika.joutsenvirta@insta.fi>
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
troglobit pushed a commit that referenced this issue Feb 10, 2016
Signed-off-by: Mika Joutsenvirta <mika.joutsenvirta@insta.fi>
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
@troglobit
Copy link
Owner

Merged to master

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants