When a Host A sends for the first time a NS request to another Host B, host B answers with a NA.
In Host A Neighbor Cache, the state Entry for host B gets from INCOMPLETE to REACHABLE, when NA comes back.
But what happens in the remote Host B ?
RFC4861 describes :
Nodes send Neighbor Solicitations to request the link-layer address of a target node while also providing their own link-layer address to the target.
So that means that Host B should take advantage of the situation and make a new entry for Host A in his cache.
But what would the state for this entry be ?
The standard describes:
Receipt of other Neighbor Discovery messages, such as Router Advertisements and Neighbor Advertisement with the Solicited flag set to zero, MUST NOT be treated as a reachability confirmation. Receipt of unsolicited messages only confirms the one-way path from the sender to the recipient node. In contrast, Neighbor Unreachability Detection requires that a node keep track of the reachability of the forward path to a neighbor from its perspective, not the neighbor’s perspective. Note that receipt of a solicited advertisement indicates that a path is working in both directions. The solicitation must have reached the neighbor, prompting it to generate an advertisement. Likewise, receipt of an advertisement indicates that the path from the sender to the recipient is working. However, the latter fact is known only to the recipient; the advertisement’s sender has no direct way of knowing that the advertisement it sent actually reached a neighbor. From the perspective of Neighbor Unreachability Detection, only the reachability of the forward path is of interest.
So, in our case the Host A shouldn't be declared REACHABLE for Host B ?
Could it be, that it's declared STALE ?
If you could also provide some kind of source document together with your explanation, it would be really appreciated. :)