<?xml version="1.0" encoding="UTF-8"?>

<!-- This is built from a template for a generic Internet Draft. Suggestions for
     improvement welcome - write to Brian Carpenter, brian.e.carpenter @ gmail.com -->

<!-- This can be converted using the Web service at http://xml.resource.org/experimental.html
     (which supports the latest, sometimes undocumented and under-tested, features.) -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [

<!-- You need one entry like the following for each RFC referenced -->

<!ENTITY RFC2119 PUBLIC ''
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>
<!ENTITY RFC2629 PUBLIC ''
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2629.xml'>
<!ENTITY RFC2460 PUBLIC ''
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2460.xml'>
<!ENTITY RFC4291 PUBLIC ''
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4291.xml'>
<!ENTITY RFC5453 PUBLIC ''
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5453.xml'>
<!ENTITY RFC4941 PUBLIC ''
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4941.xml'>
<!ENTITY RFC5342 PUBLIC ''
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5342.xml'>
<!ENTITY RFC6741 PUBLIC ''
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6741.xml'>
<!ENTITY RFC3306 PUBLIC ''
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3306.xml'>
<!ENTITY RFC3307 PUBLIC ''
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3307.xml'>
<!ENTITY RFC3972 PUBLIC ''
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3972.xml'>
<!ENTITY RFC2526 PUBLIC ''
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2526.xml'>


<!-- You need one entry like the following for each I-D referenced -->

<!ENTITY DRAFT-stable SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-6man-stable-privacy-addresses.xml">
<!ENTITY DRAFT-4rd SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-softwire-4rd.xml">

]>


<?rfc toc="yes"?>            <!-- You want a table of contents -->
<?rfc symrefs="yes"?>        <!-- Use symbolic labels for references -->
<?rfc sortrefs="yes"?>       <!-- This sorts the references -->
<?rfc iprnotified="no" ?>    <!-- Change to "yes" if someone has disclosed IPR for the draft -->
<?rfc compact="yes"?>


<!-- This defines the specific filename and version number of your draft (and inserts the appropriate IETF boilerplate -->
<rfc ipr="trust200902" docName="draft-carpenter-6man-ug-00" category="info" >


<front>
<title abbrev="IPv6 IID U and G bits">The U and G bits in IPv6 Interface Identifiers</title>


<author initials="B. E." surname="Carpenter" fullname="Brian Carpenter">
    <organization abbrev="Univ. of Auckland"></organization>
    <address>
      <postal>
        <street>Department of Computer Science</street>
        <street>University of Auckland</street>
        <street>PB 92019</street>
        <city>Auckland</city>
        <region></region>
        <code>1142</code>
        <country>New Zealand</country>
      </postal>
      
      <email>brian.e.carpenter@gmail.com</email>
    </address>
</author>


   <author fullname="Sheng Jiang" initials="S." surname="Jiang">
      <organization>Huawei Technologies Co., Ltd</organization>
      <address>
        <postal>
          <street>Q14, Huawei Campus</street>
          <street>No.156 Beiqing Road</street>
          <city>Hai-Dian District, Beijing</city>
          <code>100095</code>
          <country>P.R. China</country>
        </postal>
        <email>jiangsheng@huawei.com</email>
      </address>
    </author>


 <date day="31" month="January" year="2013" />

<area>Internet</area>
<workgroup>6MAN</workgroup>


<abstract>

<t>
The IPv6 addressing architecture defines a method by which the Universal and Group
bits of an IEEE link-layer address are mapped into an IPv6 unicast interface identifier.
This document clarifies the status of those bits for interface identifiers that are
not derived from an IEEE link-layer address.
</t>
    
</abstract>
</front>

<middle>
<section anchor="intro" title="Introduction">

<t>NOTE IN DRAFT: This version is in the form of a discussion document, but the proposal
included uses normative language. If the WG wishes to proceed with it, the authors suggest
to make it a formal standards-track update of the IPv6 addressing architecture. </t>

<t>According to the IPv6 addressing architecture <xref target="RFC4291"/>, when an IPv6 unicast
Interface Identifier (IID) is formed on the basis of an IEEE EUI-64 address, usually itself
expanded from a 48-bit MAC address, a particular format must be used:</t>

<figure><artwork>
  "For all unicast addresses, except those that start with the binary
   value 000, Interface IDs are required to be 64 bits long and to be
   constructed in Modified EUI-64 format."
</artwork></figure>

<t>The specification assumes that that the normal case is
to transform an Ethernet-style address into an IID, preserving the
semantics of two bits in particular:</t>

<t><list style="symbols">
<t>The "u" bit in an IEEE address is set to 0 to indicate universal scope
(implying uniqueness) or to 1 to indicate local scope (without implying uniqueness).
In an IID this bit is inverted, i.e., 1 for universal scope and 0 for local
scope. According to <xref target="RFC5342"/>, the reason for this was "to make
it easier for network operators to type in local-scope identifiers". </t>

<t>The "g" bit in an IEEE address is set to 1 to indicate group addressing
(link-layer multicast).  This value is supposed to be preserved in an IID. </t>
</list></t>

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in <xref target="RFC2119"/>.</t>

</section> <!-- intro -->

<section anchor="problem" title="Problem statement">

<t>Various new forms of IID have been defined or proposed, such as temporary addresses <xref target="RFC4941"/>,
Cryptographically Generated Addresses (CGAs) <xref target="RFC3972"/>,
stable privacy addresses <xref target="I-D.ietf-6man-stable-privacy-addresses"/>, or mapped addresses
<xref target="I-D.ietf-softwire-4rd"/>.
In each case, the question of how to set and interpret the "u" and "g" bits
has been debated. For example, RFC 3972 specifies that they are zero in CGAs. </t>

<t>NOTE IN DRAFT: Are there other examples we should include? Are we sure that no IID format
defines semantics for u/g? </t>

<t>The question underlying these repeated debates is: do these bits have any usefulness as currently
defined? Section 2.2.1 of RFC 5342 discusses the mechanics of the bit
allocations but does not explain the purpose or value of these bits in an IID.
There is an IANA registry for reserved IID values
<xref target="RFC5453"/> but again there is no explanation of 
the purpose of the "u" and "g" bits. </t>

<t>Another case where the "u" and "g" bits are specified is in the 
Reserved IPv6 Subnet Anycast Address format <xref target="RFC2526"/>, which states
that "for interface identifiers in EUI-64 format, the universal/local bit in the
interface identifier MUST be set to 0" (i.e., local) and requires that "g" bit
to be set to 1. However, the text neither states nor implies any semantics for these
bits in anycast addresses. </t>

<t>There was a presumption when IPv6 was designed and the IID format was first
specified that a universally unique IID might prove to be very useful, for
example to contribute to solving the multihoming problem. Indeed, the addressing
architecture <xref target="RFC4291"/> states this explicitly: </t>

<figure><artwork>
  "The use of the universal/local bit in the Modified EUI-64 format
   identifier is to allow development of future technology that can take
   advantage of interface identifiers with universal scope."
</artwork></figure>

<t>However, this has not so far proved to be the case. Also, there is evidence from
the field that IEEE MAC addresses with "u" = 0 are sometime incorrectly assigned to
multiple MAC interfaces. Once transformed into IID format (with "u" = 1) these
identifiers would purport to be universally unique but would in fact be
ambiguous. Also, ILNP, the currently specified multihoming solution that might
be expected to benefit from universally unique IIDs in modified EUI-64 format
does not in fact rely on them; it uses its own format, defined as a Node Identifier 
<xref target="RFC6741"/>. We can conclude that the "u" bit in IIDs has no
semantic value. In the case of an IID created from a MAC address according
to RFC 4941, its value is determined by the MAC address, but that is all. </t>

<t>The "g" bit in an IID has no meaning in IPv6. If an IID
is for some reason created from a MAC group address, the bit will be set,
but that is all. Both the "u" and the "g" bit are meaningless in the format
of an IPv6 multicast group ID <xref target="RFC3306"/>, <xref target="RFC3307"/>. </t>

<t>The problem caused by the above is the confusion and distraction caused each time
that a new form of IID is proposed. Since the bits concerned appear to have
no useful semantics, this is wasteful. </t>

</section> <!-- problem -->

<section anchor="solution" title="Proposed solution">

<t>It should be noted that IIDs known or guessed to have been created according
to RFC 4941 could be transformed back into MAC addresses, for example during
fault diagnosis. For that reason, keeping the "u" and "g" bits in the IID has
operational value. Therefore, the EUI-64 to IPv6 IID transformation defined in RFC
4941 MUST be used for all cases where an IID is derived from a MAC address. </t>

<t>However, for all forms of IID that are not derived from an EUI-64 MAC address
(or an equivalent form of link-layer address), it is not required to set the "u" and "g"
bits in any particular way. These bits have no semantics in an IID. Specifications of
other forms of IID MUST specify how they should be set, without defining any semantics
for them.  </t>

<t>The statement about future technology quoted above from RFC 4941
is obsolete. </t>

<t>As far as is known, no existing implementation will be affected by these changes.
The benefit is that future design discussions are simplified. </t>

</section> <!-- solution -->


<section anchor="security" title="Security Considerations">

<t>No new security exposures or issues are raised by this document. </t>

</section> <!-- security -->


<section anchor="iana" title="IANA Considerations">
<t>This document requests no immediate action by IANA. However, in considering
future proposed additions to the registry of reserved IID values <xref target="RFC5453"/>,
no special consideration is needed of the "u" and "g" bits, since they have no special meaning. </t>
</section> <!-- iana -->




<section anchor="ack" title="Acknowledgements">

<t>
Valuable comments were received from
...
and other participants in the 6MAN working group.
 </t>

<t>Brian Carpenter was a visitor at the Computer Laboratory, Cambridge University during part of this work. </t>

<t>This document was produced using the xml2rfc tool
<xref target="RFC2629"/>.</t>

</section> <!-- ack -->


<section anchor ="changes" title="Change log [RFC Editor: Please remove]">



<t>draft-carpenter-6man-ug-00: original version, 2013-01-31.</t>


</section> <!-- changes -->

</middle>

<back>

<references title="Normative References">

&RFC2119;
&RFC4291;
&RFC5342;
&RFC5453;

</references>

<references title="Informative References">

&RFC2629;
&RFC4941;
&RFC6741;
&RFC3306;
&RFC3307;
&RFC3972;
&RFC2526;

&DRAFT-stable;
&DRAFT-4rd;

  
</references>




</back>
</rfc>

