Repository navigation
Conversation
An Echo Request to ff02::1 was counted as answered (netstat -s: "message responses generated") but no reply reached the wire; a request to the host's own link-local address was answered. The request had come in as a multicast frame, so its mbuf was marked M_MCAST, and the reply, made from it with its packet header (icmp6_echo_copy()), kept the mark. ip6_output() did not clear it for a unicast destination, and the interface sent the reply to the asker's MAC address as a multicast (S2_MULTICAST), which the device refused. ip6_output() now clears M_BCAST and M_MCAST for a destination that is not a group, as FreeBSD's does. RFC 4443 section 4.2: a reply to a request sent to a group SHOULD be sent, from a unicast address of the interface the request came in by - which icmp6_reflect() already chooses. The host pinging ff02::1%aros0 for 4 s (aros-matter tests/ipv6/mcast_echo_amiga.sh, tcpdump on the tap): 0 replies from AROS before, 4 now, from its link-local address, on AROS m68k on an emulated A3000 with an A2065 and on hosted AROS; unicast unchanged (2 of 2). ip6_output.o: +18 bytes of text on the 68000. bsdsocket.library 5.48 (kernel v0.87).
|
The IPv6 part is right. With the host pinging
Note: this PR and #2284 both take |
An Echo Request to ff02::1 was counted as answered (
netstat -s: "message responses generated") but no reply reached the wire; a request to AROS's own link-local address was answered. The request came in as a multicast frame, so its mbuf was markedM_MCAST, and the reply, made from it with its packet header (icmp6_echo_copy()), kept the mark:ip6_output()did not clear it for a unicast destination, and the interface sent the reply to the asker's MAC address as a multicast (S2_MULTICAST), which the device refused.ip6_output()now clearsM_BCASTandM_MCASTfor a destination that is not a group, as FreeBSD's does. RFC 4443 section 4.2: a reply to a request sent to a group SHOULD be sent, from a unicast address of the interface the request came in by - whichicmp6_reflect()already chooses.The host pinging
ff02::1%aros0for 4 s (aros-mattertests/ipv6/mcast_echo_amiga.sh, tcpdump on the tap):The cunit suite passes (cunit-net-acd's first test can fail when it is the first program after
startnet, on master too: a separate test fix).ip6_output.o: +18 bytes of text on the 68000. bsdsocket.library 5.48 (kernel v0.87).