Subject: LL70: Use of the term "valid"

From: Bernard Aboba <[email-masked]>
Date: Tue, 18 May 2004 09:47:23 -0700 (PDT)

In looking over Issue LL70, I've come to the conclusion that the term
"valid" is used gratuitously in several places, and that in several
cases the term can be removed without doing damage.  If this is done,
I think that a normative reference to [DNAv4] will not be required.

Section 1.9:

"For these reasons, a host SHOULD NOT have both a valid routable address and a
Link-Local IPv4 address configured on the same interface."

I don't think the term "valid" is useful here.  If the routable address is
invalid then it should not be configured.  The term can be deleted
without changing the meaning.

"   A "valid routable address" is a routable address that passes the
   reachability test described in section 2 of "Detection of Network
   Attachment (DNA) in IPv4" [DNAv4]."

This definition belongs in the terminology section, not here and in any
case it differs from the definition used in [DNAv4].  Recommend adding the
following definition to Section 1.2:

"A "valid routable address" is a routable address which is either
statically assigned or whose lease
has not expired and that passes the
reachability test described in section 2 of "Detection of Network
Attachment (DNA) in IPv4" [DNAv4]."

"   When an interface has a valid routable address configured on an
   interface, the host SHOULD NOT also assign a Link-Local IPv4 address
   to that interface."

Again, the term "valid" is not helpful.  A host shouldn't have an invalid
address assigned on an interface, so the term "valid" has no use here
either.

"   If a host finds that an interface that was previous configured with a
   Link-Local IPv4 address is now configured with a valid routable
   address, the host MUST always use the routable address when
   initiating new communications, and MUST cease advertising the
   availability of the Link-Local IPv4 address through whatever
   mechanisms that address had been made known to others."

Again, the term "valid" is not needed here -- if the host has a routable
address configured, that's enough.

"Ways in which a valid routable address might be configured
   for the interface include:

   * Manual configuration
   * Address assignment through DHCP
   * Roaming of the host to a network on which a routable address
      assigned to the interface is valid

   If a host finds that an interface that was previously configured with
   a valid routable address no longer has a valid routable address, the
   host MAY identify a usable Link-Local IPv4 address (as described in
   section 2) and assign that address to the interface.  Ways in which a
   valid routable address might no longer be assigned to an interface
   include:

   * Removal of the address from the interface through manual
      configuration
   * Expiration of the lease on the address assigned through DHCP
   * Roaming of the host to a new network on which the address is no
     longer valid."

Here several uses of the term "valid" are not helpful.  Recommend changing
to:

"  Ways in which a routable address might be configured
   for the interface include:

   * Manual configuration
   * Address assignment through DHCP
   * Roaming of the host to a network on which the host has a valid
     routable address

   If a host finds that a routable address is no longer assigned to
   an interface,  the host MAY identify a usable Link-Local IPv4 address
   (as described in section 2) and assign that address to the interface.
   Ways in which a routable address might no longer be assigned to an
   interface include:

   * Removal of the address from the interface through manual
      configuration
   * Expiration of the lease on the address assigned through DHCP
   * Roaming of the host to a new network on which the address is no
     longer valid."

---

From: Peter Johansson <[email-masked]>
Date: Tue, 18 May 2004 10:12:11 -0700

At 09:47 AM 5/18/2004 -0700, Bernard Aboba wrote:

>statically assigned or whose lease has not expired and that passes the

I would go the extra step and say: "A routable address is an address that 
is either statically assigned or whose lease has not expired and that 
passes the reachability test described in section 2 of "Detection of 
Network Attachment (DNA) in IPv4" [DNAv4]."

Please also note the grammatical correction, "which" to "that". Is there 
any risk that some readers will parse "(static or unexpired) and reachable" 
as "static or (unexpired and reachable)"? If so, you might consider reordering:

"A routable address is an address that passes the reachability test 
described in section 2 of "Detection of Network Attachment (DNA) in IPv4" 
[DNAv4] and is either statically assigned or one whose lease is unexpired."

Regards,

Peter Johansson

Congruent Software, Inc.
98 Colorado Avenue
Berkeley, CA  94707

(510) 527-3926
(510) 527-3856 FAX

[email-masked]

---

From: "Philip Nye" <[email-masked]>
Date: Tue, 18 May 2004 21:34:32 +0100

> From: "Peter Johansson" <[email-masked]>

If this change is made, we are back to square one - the protocol depends on the definition of a routable address and that definition depends on the reference [DNAv4] which is therefore normative - and is problematic because it is an unapproved draft.

I think that the use of "valid" conveys meaning because it helps people grasp the idea that a host may have been configured with an address which was previously valid but although still configured, is no longer useable because the network has changed (e.g. the host moved to a new network). This is a common case and there is often good reason not to simply unconfigure that address because the host may soon be moved back to a context in which it is valid - meanwhile assigning an IPv4LL address provides some connectivity.

The validity of a configured address is difficult to establish because the context in which it is intended to operate or becomes invalid can vary. Therefore I think that all we can do is explain the concept and present the DNAv4 reachability test as a useful example (informative) rather than a definition (normative) of validity.

I suggested alternative text in an earlier email.

> Please also note the grammatical correction, "which" to "that".

I would dispute that English grammar is so clear cut. In this context "that" or "which" both seem acceptable and either conveys the meaning well so I can happily accept your ammendment - or not.

Philip

---

From: "Jim Busse" <[email-masked]>
Date: Tue, 18 May 2004 14:48:22 -0700

Because of the lack of subordination betweeen the "and" and the "or"
conjuctions, a programmer may interpret the text differently from a
marketeer.  And I'm not sure which version is "right", so wording
clarification I believe is necessary.

Philip's change removes this issue but doesn't fix my implementation
question.

Just to clarify my understanding, If the reachability test described in
DNAv4 is skipped, or fails, then IPv4LL can't have a "valid" address, simply
it will have a "routable" address.  In that event, I may assign an IPv4LL
address additionally on that interface, right?

Best regards

Jim Busse

----- Original Message ----- 
From: "Philip Nye" <[email-masked]>
To: "Zeroconf Working Group" <[email-masked]>
Sent: Tuesday, May 18, 2004 1:34 PM
Subject: Re: LL70: Use of the term "valid"

> Network Attachment (DNA) in IPv4" [DNAv4]."

If this change is made, we are back to square one - the protocol depends on
the definition of a routable address and that definition depends on the
reference [DNAv4] which is therefore normative - and is problematic because
it is an unapproved draft.

I think that the use of "valid" conveys meaning because it helps people
grasp the idea that a host may have been configured with an address which
was previously valid but although still configured, is no longer useable
because the network has changed (e.g. the host moved to a new network). This
is a common case and there is often good reason not to simply unconfigure
that address because the host may soon be moved back to a context in which
it is valid - meanwhile assigning an IPv4LL address provides some
connectivity.

The validity of a configured address is difficult to establish because the
context in which it is intended to operate or becomes invalid can vary.
Therefore I think that all we can do is explain the concept and present the
DNAv4 reachability test as a useful example (informative) rather than a
definition (normative) of validity.

> Please also note the grammatical correction, "which" to "that".

I would dispute that English grammar is so clear cut. In this context "that"
or "which" both seem acceptable and either conveys the meaning well so I can
happily accept your ammendment - or not.

Philip

---

From: Peter Johansson <[email-masked]>
Date: Tue, 18 May 2004 13:51:39 -0700

At 09:34 PM 5/18/2004 +0100, Philip Nye wrote:

>because the network has changed (e.g. the host moved to a new network). 
>This is a common case and there is often good reason not to simply 
>unconfigure that address because the host may soon be moved back to a 
>context in which it is valid - meanwhile assigning an IPv4LL address 
>provides some connectivity.paragraph

I most emphatically do NOT wish to impede progress (in particular, since I 
have been an interested observer and not a contributor), but "valid" does 
not convey any meaning beyond what "routable" conveys. I understand your 
example and the difficulty caused by lack of normative text to 
reference---but I suggest you improve matters by adequately explaining what 
"routable" means in the context of your draft. I agree with Bernard that 
"valid" is white noise.

>Therefore I think that all we can do is explain the concept and present 
>the DNAv4 reachability test as a useful example (informative) rather than 
>a definition (normative) of validity.

Sounds like a good idea to me---but do it in the context of "routable" 
rather than "valid".

Regards,

Peter Johansson

Congruent Software, Inc.
98 Colorado Avenue
Berkeley, CA  94707

(510) 527-3926
(510) 527-3856 FAX

[email-masked]

---

From: "Philip Nye" <[email-masked]>
Date: Wed, 19 May 2004 09:48:20 +0100

> Sounds like a good idea to me---but do it in the context of "routable" 

The term "routable" is clearly defined:

   "This document uses the term "routable address" to refer to all
   unicast IPv4 addresses outside the 169.254/16 prefix, including
   global addresses and private addresses such as Net 10/8 [RFC1918],
   all of which may be forwarded via routers."

"configured" is not explicitly defined but I would assume that if I type "ifconfig eth0 5.6.7.8" then I have "configured" that address. Similarly, if DHCP has handed me the address 5.6.7.8 and my lease is still valid then that address is configured and because it conforms to the definition above it is a "configured routable address".

This tells me nothing about whether the address can be successfully used in any way. The useability of an address depends largely on the routing tables of other hosts on the same link and/or on the accessibility of routers which will recognise the presence of the address and route traffic to and from it. The reachability test of DNAv4 is a quick but rough test of the second part of this.

As Bernard pointed out - if the default router is down it doesn't mean that an address is totally unuseable - it may still work fine for communications which are on-link or via other routers.

On the other hand, if I have the "configured routable address" 5.6.7.8 but am sitting on a network 200.0.0.x many hops away from my default router and with no other local hosts aware of my presence then 5.6.7.8 will not be useable and for now I would be better off with a LL address.

The term "valid" could possibly be replaced with "useable" or "working"  but is not redundant.

Philip