I'm still looking for OKs on this.

On Mon, Apr 02, 2012 at 14:18 +0200, Mike Belopuhov wrote:
> So when TLLA/SLLA is not specified we get into a weird state where
> we don't know a LL address and don't ask for it.  Apparently, this
> is not what some IPv6 compliance tests expect.  For example Tahi
> really wants you to ask for a LLA by sending a neighbor solicitation
> which means state should be INCOMPLETE.
> 
> It doesn't change a big picture, essentially NS will be sent once
> there will be another packet, but INCOMPLETE means we'll send this
> NS right away.  In fact this NOSTATE gets promoted to INCOMPLETE
> itself.  While old RFC is not super clear about, RFC 4861 states:
> 
>    Because unicast Neighbor Solicitations are not required to include a
>    Source Link-Layer Address, it is possible that a node sending a
>    solicited Neighbor Advertisement does not have a corresponding link-
>    layer address for its neighbor in its Neighbor Cache.  In such
>    situations, a node will first have to use Neighbor Discovery to
>    determine the link-layer address of its neighbor (i.e., send out a
>    multicast Neighbor Solicitation).
> 
> Which means that INCOMPLETE matches better.
> 
> OK?
> 
> diff --git sys/netinet6/nd6.c sys/netinet6/nd6.c
> index f995e27c..1547a2b 100644
> --- sys/netinet6/nd6.c
> +++ sys/netinet6/nd6.c
> @@ -1556,7 +1556,7 @@ fail:
>        *      0       n       y       --      (3) * STALE
>        *      0       y       y       n       (4) *
>        *      0       y       y       y       (5) * STALE
> -      *      1       --      n       --      (6)   NOSTATE(= PASSIVE)
> +      *      1       --      n       --      (6) * INCOMPLETE
>        *      1       --      y       --      (7) * STALE
>        */
>  
> @@ -1583,7 +1583,7 @@ fail:
>       } else {
>               do_update = 1;
>               if (!lladdr)                            /* (6) */
> -                     newstate = ND6_LLINFO_NOSTATE;
> +                     newstate = ND6_LLINFO_INCOMPLETE;
>               else                                    /* (7) */
>                       newstate = ND6_LLINFO_STALE;
>       }

Reply via email to