-
-
Notifications
You must be signed in to change notification settings - Fork 8
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
Missing pim-join-prune in 3 router setup #13
Comments
Awesome bug report, very much appreciate your attention to detail! I'll have a look at it on Friday evening at the latest, I'm a bit swamped right now with personal matters. |
Hm, I think this debug output gives a hint to the issue:
The route towards the BSR on
Therefore the kernel reports fd5c:725:2841::2%5 as the router and not the link-local one used in the IPv6 source address in PIM messages. So now as it's not the primary PIM address, the link-local one, The issue here is that the kernel reported a router address with an interface index (neighbor_addr->sin6_scope_id) of 5. However the addresses in n->aux_addrs are all stored with a scope id of 0. Therefore the I'm not quite sure how to fix this. There could be several ways: A) Set the scope id of the neighbor_addr the kernel route request returned to 0 before calling inet6_equal() on the aux_addr (but only before the aux_addr check, as the primary one, n->address is stored with a sin6_scope_id...). B) Store the sin6_scope_id in the addresses of aux_addr, too (but check what other places, especially the ones calling inet6_equal(), expect) C) Avoid checking the sin6_scope_id in inet6_equal() if it is 0 for one of the provided address. D) Provide the (link-local) IPv6 source address of the PIM bootstrap message, including the sin6_scope_id, to |
Ok, as far as I can tell, I'm going to try a patch. |
Just to double check, PR #15 fixes this issue, right? |
Yes, it does, thanks :-). |
Advancing to more interesting setups now, here is an issue for a three router setup, with a client subnet attached to each of them:
Setup:
In this setup
router0
,router1
androuter2
are running pim6sd.router1
is configured as the bootstrap router androuter2
as a rendez-vous point forff13:23:42:ffff::/64
. There is then a multicast listener forff13:23:42:ffff::123
onclient0
andclient1
. Andclient2
continuously sends ICMPv6 messages toff13:23:42:ffff::123
.Issue:
While
router1
sendspim-join-prune
messages torouter2
, our RP, just finerouter0
does not.router0
receives seemingly correct bootstrap messages with the RP information:But does not seem to be able to set the "upstream" in its RP-Set:
router0
is able to ping both the bootstrap and RP listed just fine (so does not seem to be an issue with unicast routes):Reproducer and pim6stat:
https://gist.github.com/T-X/b585768892bda7d652406c71365a2b27
The text was updated successfully, but these errors were encountered: