-
Notifications
You must be signed in to change notification settings - Fork 2k
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
gnrc_ipv6: Forward multicast packets even if they are registered with the receiving netif #4528
Conversation
static inline bool _pkt_none_local_mcast(ipv6_hdr_t *hdr) | ||
{ | ||
return (hdr->dst->u8[0] == 0xff) && | ||
(hdr->dst->u8[1] >= IPV6_ADDR_MCAST_SCP_LINK_LOCAL); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This ignores the flags of a multicast address. ff12::1
would also be a legal link-local address.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Learned something new. Fixed it
Fixes #4527 |
Another problem is, that we currently don't implement MLP, so this configuration will most likely flood a network. |
Would I also need to change the |
Yes, thanks for pointing that out |
oh and while we're are at nitpicky stuff: the module you're changing is |
What does MLP stand for? Multinode Link Layer Protocol? And sorry about that, first thought it was 6Low specific. |
I believe @authmillenon was referring to MLD |
Yes, sorry for the confusion. |
Np, I have build an IGMP querier for Linux before. This seems like fun to
implement :D
|
@authmillenon, what's the state here? |
I have not tested it yet, but code-wise it looks alright. Will test at the Hack'n'ACK :-) |
Wait a minute: what if the router has the address assigned to one of its interfaces. Then it won't forward it though it might make sense. |
@DipSwitch ping? |
Whit this PR it would forward it? That was my intention at leased. But maybe I misunderstood what you said. |
Ah okay, yes. I forgot about the |
Yeah, I thought it tries to process it anyway. Will fix tonight. :)
|
8f4a78b
to
be18502
Compare
Rebased, squashed the rest, and fixed to also processing the packet ourselfs part. |
Will test tonight. |
@@ -738,6 +738,12 @@ static inline bool _pkt_not_for_me(kernel_pid_t *iface, ipv6_hdr_t *hdr) | |||
} | |||
} | |||
|
|||
static inline bool _pkt_none_local_mcast(ipv6_hdr_t *hdr) | |||
{ | |||
return (hdr->dst->u8[0] == 0xff) && |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/dst->u8/dst.u8/
345e9ec
to
203b147
Compare
Addressed, rebased, squashed, pushed |
When I try to ping an added
|
Last time I tried this was 20 December probably, and I don't have tranceivers at home yet. Moving to next release. :) |
Hm, since this is a bugfix, we can still merge - and I would like to see this problem solved. |
@@ -738,6 +738,12 @@ static inline bool _pkt_not_for_me(kernel_pid_t *iface, ipv6_hdr_t *hdr) | |||
} | |||
} | |||
|
|||
static inline bool _pkt_none_local_mcast(ipv6_hdr_t *hdr) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"none" -> "non" or "not"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed.
…with the receiving netif
203b147
to
88532c0
Compare
Please rebase. |
Please rebase, we need this fix! |
Can this fix come into the release? Maybe is it related to #5596 ? |
If @DipSwitch is unavailable right now, we could adopt it. |
Can you @OlegHahm ? |
Not this week. |
OK, so I need to postpone it. |
I go ahead and adapt it myself. Can you review @kYc0o? |
I can try to test, I'm supposed to be off today but I'll have some time. |
kk |
Need not be today ;-) |
Let's do it then ;-) |
See #5729. |
Currently if you send a broadcast to ff05::1 for example a routing node doesn't forward the packed if the router itself has the address assigned to it's receiving interface.
Thoughts on the subject are welcome :)