RFC Errata
RFC 4443, "Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification", March 2006
Note: This RFC has been updated by RFC 4884
Source of RFC: ipv6 (int)
Errata ID: 6153
Status: Reported
Type: Technical
Publication Format(s) : TEXT
Reported By: Töma Gavrichenkov
Date Reported: 2020-05-01
Section 3.1 says:
3.1. Destination Unreachable Message [..] If the reason for the failure to deliver is that the destination is beyond the scope of the source address, the Code field is set to 2. This condition can occur only when the scope of the source address is smaller than the scope of the destination address (e.g., when a packet has a link-local source address and a global-scope destination address) and the packet cannot be delivered to the destination without leaving the scope of the source address.
It should say:
3.1. Destination Unreachable Message [..] If the reason for the failure to deliver is that the destination is beyond the scope zone of the source address, the Code field is set to 2. The scope zone of the destination address is determined by the scope of the address and arrival interface of the packet, as specified in [IPv6-SCOPE, Section 9]. Similarly, the scope zone of the source address is determined by the scope of the address and arrival interface of the packet. This condition can occur only when transmitting the packet on the chosen next-hop interface would cause the packet to leave the zone of the source address, i.e., cross a zone boundary of the scope of the source address. 7.1. Normative References [..] [IPv6-SCOPE] Deering, S., Haberman, B., Jinmei, T., Nordmark, E., and B. Zill, "IPv6 Scoped Address Architecture", RFC 4007, March 2005.
Notes:
https://tools.ietf.org/html/rfc4007#section-9
Scope zone is not scope.
Consider a case when the source IP is link-local and the destination is global, yet the routing happens in the same VLAN. Per RFC 4007, the packet should be transmitted; however, RFC 4443 allows for an ambiguity which is already causing vendors to reject packets in this case.