Hi Richard,

>Now the algorithm cannot actually rely solely on the prefix, 
> but in fact must also examine the embedded address to make sure
> it is a valid IPv4 unicast address. 

Exactly.

>It would be much easier to code the algorithm to check only for
> the prefixes "::" and "::ffff" (from RFC-4291), and then specifically
> make an exception for the well-known IPv6 "::" (unknown) and "::1"
> (loopback) addresses. This is what I have done now in my code,
> which leaves the above mentioned four addresses (supposedly) incorrectly
> formatted. 

Your code is correct.
Moreover, except merely loopback address from the embedded address.
Many codes(like a inet_ntop) are same behavior, or do nothing.

But, I've never heard any trouble about "loopback" and "unspecified".
Thus, it is reasonable code.

Regards,
Masanobu


>I understand your point, which is that regardless of the prefix, if the 
>embedded address is not a globally unique IPv4 address, then the special 
>formatting does not apply. 
>
>I still think it is not clear that this is the intended interpretation of 
>RFC-5952 given the phrase "solely... through the use of a well-known prefix". 
>Now the algorithm cannot actually rely solely on the prefix, but in fact must 
>also examine the embedded address to make sure it is a valid IPv4 unicast 
>address. 
>
>This interpretation presents other irritations when coding RFC-5952's 
>recommendations as an algorithm because the algorithm must make a special case 
>for at least the following other addresses beyond :: and ::1.
>
>  ::ffff:ffff      (not ::255.255.255.255)
>  ::ffff:0:0       (not ::ffff:0.0.0.0)
>  ::ffff:0:1       (not ::ffff:0.0.0.1)
>  ::ffff:ffff:ffff (not ::ffff:255.255.255.255)
>
>It would be much easier to code the algorithm to check only for the prefixes 
>"::" and "::ffff" (from RFC-4291), and then specifically make an exception for 
>the well-known IPv6 "::" (unknown) and "::1" (loopback) addresses. This is 
>what I have done now in my code, which leaves the above mentioned four 
>addresses (supposedly) incorrectly formatted. 
>
>Thanks for your prompt replies, and I will now leave you alone :-)
>
>     --Rich
>
>
>-----Original Message-----
>From: Masanobu Kawashima [mailto:kawashi...@vx.jp.nec.com] 
>Sent: Friday, July 29, 2011 11:42 AM
>To: Rich Smith (rjsmith2)
>Cc: ipv6@ietf.org
>Subject: RE: [Technical Errata Reported] RFC5952 (2872)
>
>
>Hi Richard,
>
>Thank you for your reply.
>
>>These sections clearly indicate that addresses with the first 96 bits
>> all-zero have embedded IPv4 addresses. 
>
>I don't think so.
>You have missed note below in Section 2.5.5.1.
>
>===================================================================
>Note: The IPv4 address used in the "IPv4-Compatible IPv6 address"
>must be a globally-unique IPv4 unicast address.
>===================================================================
>
>::(Unspecified Address) and ::1(Loopback Address) are not
> globally-unique IPv4 unicast address.
>We should not use the 96-bit all-zeros prefix to identify
> embedded IPv4 addresses.
>We have to check last 32 bits of the address.
>Thus, we don't need any addition. It is not an error.
>
>
>>By the way, I want to thank you for authoring this RFC, since it solves
>> a major problem we have, which is searching for and matching IPv6 addresses
>> that are represented as text. 
>
>Thank you for your feedback.
>I'm so glad to hear that. :-)
>
>Regards,
>Masanobu
>
>
>>RFC-4291 (IP Version 6 Addressing Architecture), which RFC-5952 references, 
>>has a section 2.5.5 called "IPv6 Addresses with Embedded IPv4 Addresses". 
>>Presumably, this is what RFC-5952 is referring to. Section 2.5.5 two 
>>subsections. The first subsection 2.5.5.1 is called "IPv4-Compatible IPv6 
>>Address". Let me copy it here:
>>
>>2.5.5.1.  IPv4-Compatible IPv6 Address
>>
>>   The "IPv4-Compatible IPv6 address" was defined to assist in the IPv6
>>   transition.  The format of the "IPv4-Compatible IPv6 address" is as
>>   follows:
>>
>>   |                80 bits               | 16 |      32 bits        |
>>   +--------------------------------------+--------------------------+
>>   |0000..............................0000|0000|    IPv4 address     |
>>   +--------------------------------------+----+---------------------+
>>
>>   Note: The IPv4 address used in the "IPv4-Compatible IPv6 address"
>>   must be a globally-unique IPv4 unicast address.
>>
>>   The "IPv4-Compatible IPv6 address" is now deprecated because the
>>   current IPv6 transition mechanisms no longer use these addresses.
>>   New or updated implementations are not required to support this
>>   address type.
>>
>>In addition, in RFC-4291 has a section 2.2 called "Text Representation of 
>>Addresses", which has the following paragraph regarding mixed IPv6 / IPv4 
>>addresses:
>>
>>   3. An alternative form that is sometimes more convenient when dealing
>>      with a mixed environment of IPv4 and IPv6 nodes is
>>      x:x:x:x:x:x:d.d.d.d, where the 'x's are the hexadecimal values of
>>      the six high-order 16-bit pieces of the address, and the 'd's are
>>      the decimal values of the four low-order 8-bit pieces of the
>>      address (standard IPv4 representation).  Examples:
>>
>>         0:0:0:0:0:0:13.1.68.3
>>
>>         0:0:0:0:0:FFFF:129.144.52.38
>>
>>      or in compressed form:
>>
>>         ::13.1.68.3
>>
>>         ::FFFF:129.144.52.38
>>
>>These sections clearly indicate that addresses with the first 96 bits 
>>all-zero have embedded IPv4 addresses. It does say that this prefix is 
>>deprecated, but deprecated or not, RFC-4291 clearly defines 96 bits of zero 
>>to contain an embedded IPv4 address, and then shows it in at least two 
>>examples.
>>
>>Thus my confusion from this paragraph in RFC-5952, section 5:
>>
>>5.  Text Representation of Special Addresses
>>
>>   Addresses such as IPv4-Mapped IPv6 addresses, ISATAP [RFC5214], and
>>   IPv4-translatable addresses [ADDR-FORMAT] have IPv4 addresses
>>   embedded in the low-order 32 bits of the address.  These addresses
>>   have a special representation that may mix hexadecimal and dot
>>   decimal notations.  The decimal notation may be used only for the
>>   last 32 bits of the address.  For these addresses, mixed notation is
>>   RECOMMENDED if the following condition is met: the address can be
>>   distinguished as having IPv4 addresses embedded in the lower 32 bits
>>   solely from the address field through the use of a well-known prefix.
>>   Such prefixes are defined in [RFC4291] and [RFC2765] at the time of
>>   this writing.  If it is known by some external method that a given
>>   prefix is used to embed IPv4, it MAY be represented as mixed
>>   notation.  Tools that provide options to specify prefixes that are
>>   (or are not) to be represented as mixed notation may be useful.
>>
>>specifically "solely... through the use of a well-known prefix" then citing 
>>RFC-4291.
>>
>>RFC-4291 does define 96 bits of zero as a well-known IPv4 address prefix, as 
>>I've pasted above. 
>>
>>If it was your intention that readers of RFC-5952 IGNORE section 2.5.5.1 of 
>>RFC-4291, then YOU MUST MAKE THAT CLEAR because NOTHING in RFC-5952 says to 
>>do that. In fact, just the opposite is at least implied, and implied because 
>>sections 2.2 and 2.5.5.1 clearly show 96-bit all-zeros prefix indicate an 
>>embedded IPv4 address, and RFC-5952 references this standard with no 
>>additional clarification other than to go solely by the address prefix. 
>>
>>So, I want it made clear EITHER: a) Ignore section 2.5.5.1 of RFC-4291, which 
>>is to say that the 96-bit all-zero prefix is NOT intended to indicate an 
>>embedded IPv4 address, or b) make it clear that at least :: and ::1 are not 
>>to be treated as embedded IPv4 addresses because they are, in fact, 
>>well-known IPv6 addresses. The latter was my suggestion from the original 
>>errata. 
>>
>>If you require further clarification, then let me know. I don't know if I can 
>>make it any clearer. I've pasted the relevant sections of RFC-5952 and 
>>RFC-4291. But, if this is not enough, then I can try to provide more 
>>information if you need it. 
>>
>>By the way, I want to thank you for authoring this RFC, since it solves a 
>>major problem we have, which is searching for and matching IPv6 addresses 
>>that are represented as text. 
>>
>>Thanks. 
>>
>>     --Rich
>>
>>
>>-----Original Message-----
>>From: Masanobu Kawashima [mailto:kawashi...@vx.jp.nec.com] 
>>Sent: Thursday, July 28, 2011 5:04 PM
>>To: Rich Smith (rjsmith2); ipv6@ietf.org
>>Subject: Re: [Technical Errata Reported] RFC5952 (2872)
>>
>>
>>Hi Richard,
>>
>>Thank you for your report.
>>I think this is better discussed in 6man.
>>
>>But I think it is not an error.
>>Section 5 describes "Embedded IPv4 Addresses" for mixed notation.
>>IPv6 unspecified address and IPv6 loopback address are out of scope.
>>
>>Moreover, the 80-bit all-zeros prefix is not "IPv4-compatible IPv6 address".
>>We should not use the 80-bit all-zeros prefix to identify embedded IPv4 
>>addresses.
>>
>>I didn't understand what you mean.
>>Please describe more detail.
>>
>>Regards,
>>Masanobu
>>
>>
>>>
>>>The following errata report has been submitted for RFC5952,
>>>"A Recommendation for IPv6 Address Text Representation".
>>>
>>>--------------------------------------
>>>You may review the report below and at:
>>>http://www.rfc-editor.org/errata_search.php?rfc=5952&eid=2872
>>>
>>>--------------------------------------
>>>Type: Technical
>>>Reported by: Richard J. Smith <rjsmi...@cisco.com>
>>>
>>>Section: 5
>>>
>>>Original Text
>>>-------------
>>>For these addresses, mixed notation is RECOMMENDED if the following 
>>>condition is met: the address can be distinguished as having IPv4 addresses 
>>>embedded in the lower 32 bits solely from the address field through the use 
>>>of a well-known prefix.
>>>
>>>
>>>Corrected Text
>>>--------------
>>>For these addresses, mixed notation is RECOMMENDED if the following 
>>>conditions are met: the address can be distinguished as having IPv4 
>>>addresses embedded in the lower 32 bits solely from the address field 
>>>through the use of a well-known prefix, and the entire address is not either 
>>>the unspecified IPv6 address "::" or the loopback IPv6 address "::1".
>>>
>>>
>>>Notes
>>>-----
>>>RFC-4291 defines the 80-bit all-zeros prefix as indicating an 
>>>"IPv4-compatible IPv6 address". Without further clarification in section 5 
>>>of RFC-5952, the recommended formatting of the IPv6 unspecified address 
>>>would be "::0.0.0.0", and the recommended formatting of the IPv6 loopback 
>>>address would be "::0.0.0.1". Neither of these recommended representations 
>>>is desirable.
>>>
>>>Instructions:
>>>-------------
>>>This errata is currently posted as "Reported". If necessary, please
>>>use "Reply All" to discuss whether it should be verified or
>>>rejected. When a decision is reached, the verifying party (IESG)
>>>can log in to change the status and edit the report, if necessary. 
>>>
>>>--------------------------------------
>>>RFC5952 (draft-ietf-6man-text-addr-representation-07)
>>>--------------------------------------
>>>Title               : A Recommendation for IPv6 Address Text Representation
>>>Publication Date    : August 2010
>>>Author(s)           : S. Kawamura, M. Kawashima
>>>Category            : PROPOSED STANDARD
>>>Source              : IPv6 Maintenance
>>>Area                : Internet
>>>Stream              : IETF
>>>Verifying Party     : IESG
>>
>>¢(._.)
>>========================================
>> NEC AccessTechnica, Ltd.               
>> Product Development Department         
>> Masanobu Kawashima                     
>> kawashi...@vx.jp.nec.com               
>> http://www.necat.co.jp/                
>>========================================
>>
>
>¢(._.)
>========================================
> NEC AccessTechnica, Ltd.               
> Product Development Department         
> Masanobu Kawashima                     
> kawashi...@vx.jp.nec.com               
> http://www.necat.co.jp/                
>========================================
>

¢(._.)
========================================
 NEC AccessTechnica, Ltd.               
 Product Development Department         
 Masanobu Kawashima                     
 kawashi...@vx.jp.nec.com               
 http://www.necat.co.jp/                
========================================

--------------------------------------------------------------------
IETF IPv6 working group mailing list
ipv6@ietf.org
Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------

Reply via email to