[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ipng
Subject:    (IPng 701) ND neighbor cache states.
From:       Matt Thomas <matt () lkg ! dec ! com>
Date:       1995-09-26 16:47:37
[Download RAW message or body]


As a result of implementing Neighbor Discovery and after exchanging
email with Francis Dupont, I wish to propose the following change to
Neighbor Discovery states:

    The PROBE state (as it currently exists) in Neighbor Discovery
    should be split into two states, STALE and PROBE. 

Here are the current definitions of PROBE from
draft-ietf-ipngwg-discovery-02.txt:
   
   PROBE       The neighbor may be reachable, but the last explicit
   (page 17)   reachability confirmation was received long enough ago
               that verification is now actively sought.

   PROBE	More than ReachableTime milliseconds have elapsed since the
   (page 51)   last positive confirmation was received that the forward
               path was functioning properly.  Upon entering the PROBE
               state, no Neighbor Solicitation is sent.  However, a
               timer is set to expire DELAY_FIRST_PROBE_TIME seconds
               later, and a Neighbor Solicitation probe is sent if the
               entry is still in a PROBE state when the timer expires.
               Delaying the sending of the initial Neighbor Solicitation
               gives the upper layers additional time to provide
               reachability confirmation information.  After the initial
               delay, Neighbor Solicitations are retransmitted every
               RetransTimer milliseconds until a reachability
               confirmation is received.

These definitions (and especially the latter) are too complex.  In the
second definition, the first and second statements describe
different and possibly overlapping substates of the PROBE state.

Does one really enter the PROBE state after "More than ReachableTime
milliseconds..."?  Not according to the description of the NUD algorithm
on page 52:

    Unreachability detection changes a neighbor's state from REACHABLE to
    PROBE only on-demand, as a side effect of sending a data packet to that
    neighbor.  If no traffic is sent to a neighbor, no probes are sent
    either.  Note that an entry may technically no longer be in a REACHABLE
    state, but the condition need not be checked or acted upon until a
    packet is sent to the neighbor.


So let's define the idle period between being REACHABLE and instigating a
PROBE as STALE.  The new definitions could be:
   
       STALE	The contents of the neighbor cache entry may be valid, but
   		must be verified upon use.
   
       PROBE    The neighbor cache entry is undergoing verification of its
   		contents.

A possible scenario could be:
   
       ie.  REACHABLE -> STALE -> PROBE -> (deleted) -> INCOMPLETE

A related issue is that ND requires the neighbor cache entry go into PROBE
because of various events (such as receipt of neighbor advertisements).
Instead, the cache entry should became STALE and only go into PROBE when
the next transmission is done.

Matt Thomas                          Internet:   matt@lkg.dec.com
IPv6 Kernel Grunt                    WWW URL:    http://ftp.dec.com/%7Ethomas/
Digital Equipment Corporation        Disclaimer: This message reflects my
Littleton, MA                                    own warped views, etc.

------------------------------------------------------------------------------
IETF IPng Mailing List		      FTP archive: ftp.parc.xerox.com/pub/ipng
IPng Home Page:          http://playground.sun.com/pub/ipng/html/ipng-main.html
Direct all administrative requests to majordomo@sunroof.eng.sun.com

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic