Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 2 Oct 2019 15:51:25 -0700
From:      =?UTF-8?B?56We5piO6YGU5ZOJ?= <jinmei@wide.ad.jp>
To:        Ryan Stone <rysto32@gmail.com>
Cc:        freebsd-net <freebsd-net@freebsd.org>
Subject:   Re: IPv6: Invalid nd6 entry created for an RA without an lladdr
Message-ID:  <CAJE_bqfk6f43aC32U26EHi6ETpqyWQyuS%2B32Ep8F5MwRgkjonA@mail.gmail.com>
In-Reply-To: <CAFMmRNwntj7aKAPk1D-7%2BCvxRjtPTWX3J7qE0xkAbD=Y%2BdVbxw@mail.gmail.com>
References:  <CAFMmRNwntj7aKAPk1D-7%2BCvxRjtPTWX3J7qE0xkAbD=Y%2BdVbxw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
At Wed, 2 Oct 2019 17:04:23 -0400,
Ryan Stone <rysto32@gmail.com> wrote:
>
> At work, our product is putting through an IPv6 conformance test and
> it's found an issue in our handling of Routing Advertisements (RAs).
> If we receive an RA that does not specify an lladdr, then
> nd6_cache_lladdr() is called with lladdr NULL:
>
>
https://svnweb.freebsd.org/base/head/sys/netinet6/nd6.c?revision=347984&view=markup#l1961
>
> In this case, the linkhdr cache is never initialized, but we still put
> the entry in the STALE state at line 2032.

If lladdr is NULL shouldn't it reach line 2032?

if (lladdr != NULL) { /* (7) */
nd6_llinfo_setstate(ln, ND6_LLINFO_STALE);
EVENTHANDLER_INVOKE(lle_event, ln,
   LLENTRY_RESOLVED);
}

In any case, if a host receives an RA without a link-layer address
option and no neighbor cache entry exists for the RA sender at that
point, it shouldn't set the state of a newly created cache entry to
STALE.  While RFC4861 is not so explicit about this particular
condition, I believe it's pretty clear from Section 6.3.4 of the RFC
(it may even be questionable just to create an entry in this case, but
that's probably within the scope of acceptable implementation choices
as long as the entry is a mere placeholder).  I also believe FreeBSD
used to not do this (correctly), so if it currently sets it to STALE
it's quite likely to be some regression.

--
JINMEI, Tatuya



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJE_bqfk6f43aC32U26EHi6ETpqyWQyuS%2B32Ep8F5MwRgkjonA>