[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lwip-devel] [bug #59319] ICMPv6 neighbor solicitation fails if LWIP_IPV
From: |
Erik Ekman |
Subject: |
[lwip-devel] [bug #59319] ICMPv6 neighbor solicitation fails if LWIP_IPV6_MLD is set |
Date: |
Mon, 18 Jan 2021 16:05:04 -0500 (EST) |
User-agent: |
Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 |
Follow-up Comment #1, bug #59319 (project lwip):
I agree that this seems strange.
Originally the code was like this (commit 4bfbe7ebe):
/* match packet against an interface, i.e. is this packet for us? */
if (ip6_addr_ismulticast(ip6_current_dest_addr())) {
/* Always joined to multicast if-local and link-local all-nodes group. */
if (ip6_addr_isallnodes_iflocal(ip6_current_dest_addr()) ||
ip6_addr_isallnodes_linklocal(ip6_current_dest_addr())) {
netif = inp;
}
#if LWIP_IPV6_MLD
else if (mld6_lookfor_group(inp, ip6_current_dest_addr())) {
netif = inp;
}
#else /* LWIP_IPV6_MLD */
else if (ip6_addr_issolicitednode(ip6_current_dest_addr())) {
/* Accept all solicited node packets when MLD is not enabled
* (for Neighbor discovery). */
netif = inp;
}
#endif /* LWIP_IPV6_MLD */
else {
netif = NULL;
Then in commit 6e81f722a the solicited node handling was added:
#else /* LWIP_IPV6_MLD */
else if (ip6_addr_issolicitednode(ip6_current_dest_addr())) {
/* Filter solicited node packets when MLD is not enabled
* (for Neighbor discovery). */
netif = NULL;
for (i = 0; i < LWIP_IPV6_NUM_ADDRESSES; i++) {
if (ip6_addr_isvalid(netif_ip6_addr_state(inp, i)) &&
ip6_addr_cmp_solicitednode(ip6_current_dest_addr(),
netif_ip6_addr(inp, i))) {
netif = inp;
LWIP_DEBUGF(IP6_DEBUG, ("ip6_input: solicited node packet accepted
on interface %c%c\n",
netif->name[0], netif->name[1]));
break;
}
}
}
#endif /* LWIP_IPV6_MLD */
Since solicited nodes are not checked inside mld6 code, it seems this code
should always be active.
Simon, do you have an opinion here?
_______________________________________________________
Reply to this item at:
<https://savannah.nongnu.org/bugs/?59319>
_______________________________________________
Message sent via Savannah
https://savannah.nongnu.org/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lwip-devel] [bug #59319] ICMPv6 neighbor solicitation fails if LWIP_IPV6_MLD is set,
Erik Ekman <=