<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE rfc SYSTEM "rfc2629.dtd" []><rfc category="std" ipr="trust200902" docName="draft-ietf-pim-hello-intid-01.txt"><?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?><?rfc toc="yes" ?><?rfc symrefs="yes" ?><?rfc sortrefs="yes"?><?rfc iprnotified="no" ?><?rfc strict="yes" ?>    <front>        <title>An Interface ID Hello Option for PIM</title>	<author initials='S.' surname='Gulrajani' fullname='Sameer Gulrajani'>            <organization>cisco Systems</organization>	    <address><postal>                <street>Tasman Drive</street>		<city>San Jose</city> <region>CA</region>		<code>95134</code>		<country>USA</country>  	    </postal>	    <email>sameerg@cisco.com</email></address>	</author>        <author initials='S.' surname="Venaas" fullname='Stig Venaas'>            <organization>cisco Systems</organization>	    <address><postal>                <street>Tasman Drive</street>		<city>San Jose</city> <region>CA</region>		<code>95134</code>		<country>USA</country>  	    </postal>	    <email>stig@cisco.com</email></address>        </author>        <date/>        <abstract>	  <t>This document defines a new PIM Hello option to advertise 	  an interface identifier that can be used by PIM protocols to uniquely	  identify an interface of a neighboring router.</t>        </abstract>    </front>    <middle>	<section title="Introduction">	    <t>	      This document defines a new option for use in PIM Hello	      messages <xref target="RFC4601"/> to	      carry an Interface Identifier. A router generates	      identifiers for each of its PIM enabled interfaces	      such that each interface has a different identifier.	      The identifiers can optionally be generated such that	      they are unique within, e.g., an administrative domain.	    </t>	    <t>An example where this Interface Identifier can be used is with	      PIM PORT <xref target="I-D.ietf-pim-port"/>, where a single	      Transport connection is used between two routers that have	      multiple 	      interfaces connecting them. If these interfaces have unnumbered 	      or IPv6 Link local addresses, the Interface Identifier included in	      the  PORT Join/Prune message will identify which interface the	      message is associated with. For PIM PORT the Router Identifier is	      not needed, and it can be set to zero.	    </t>            <section title="Requirements Notation">                <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>	</section>	<section title="Interface Identifier Option">	  <t>The Interface Identifier option is used to identify which             interface of a neighboring router a PIM Hello	    <xref target="RFC4601"/> is sent on.	    This allows PIM protocols to refer to, or identify, a 	    particular interface on a neighboring router.	  </t>          <t>	    The Interface Identifier option need only be included in PIM	    Hello messages if the router supports protocols that require	    it. An implementation MAY choose to always include it.	    How exactly the Interface Identifier is used, and the	    uniqueness requirements, is left to the specifications	    of the PIM protocols that make use of it. It is assumed	    that different protocols may have different minimum	    requirements for stability and uniqueness of the interface            identifier, but that they	    have no maximum requirement. When specified, these protocols	    should indicate what their minimum requirements are.	  </t>	  	  <t>The Interface Identifier consists of 64 bits. The lower 32	    bits form a Local Interface Identifier, and the high 32 bits	    a Router Identifier.          </t> 	  	  <section title="Local Interface Identifier">	    <t>The 32 bit Local Interface Identifier is selected such that it is	      unique among the router's PIM enabled interfaces. That is, there	      MUST NOT be two PIM interfaces with the same Local Interface	      Identifier. While an interface is up, the Identifier MUST always	      be the same once it has been allocated. If an interface goes down	      and comes up, the router SHOULD use the same Identifier.	      Many systems	      make use of an ifIndex <xref target="RFC1213"/>, which can be	      used as a Local Interface Identifier.	    </t>	    <t>The Local Interface Identifier MUST be non-zero. The reason	      for this, is that some protocols may want to only optionally	      refer to an Interface using the Interface Identifier Hello	      option, and use the value of 0 to show that it is not referred	      to. Note that the value of 0 is not a valid ifIndex as defined	      in <xref target="RFC1213"/>.	    </t>	  </section>	  <section title="Router Identifier">	    <t>The 32 bit Router Identifier may be used to uniquely identify	      the router. It may be selected to be unique within some	      administrative domain, or possibly globally unique.              The requirements for the scope in which it needs to be unique              depend on the protocol that utilizes this.              A router implementation MAY choose an IPv4 unicast address              assigned to the router as the Router Identifer, but MUST allow              the identifier to be configured manually. Protocols such as BGP	      <xref target="RFC4271"/> and OSPFv2 <xref target="RFC2328"/>	      are other protocols making use of 32 bit identifiers for	      routers. One may use the same identifier to construct the	      Interface Identifier option, provided it meets the stability	      and uniqueness requirements of protocols making use of this	      option.	    </t>	    <t>The value 0 has a special meaning for the Router	      Identifier. It means that no Router Identifier is used.	      If a router only supports protocols that require the Interface	      Identifier to be unique for one router (only making use of the	      Local Interface Identifier), then the implementation MAY set the	      Router Identifier to zero.	    </t>	  </section>	</section>	<section title="Message Format" anchor="helloopts">            <figure>            <preamble>Option Type: Interface Identifier</preamble>            <artwork><![CDATA[        0                   1                   2                   3        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       |           Type = 31           |         Length = 8            |       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       |                       Router Identifier                       |       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       |                   Local Interface Identifier                  |       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+            ]]></artwork>	    <postamble>Allocated Hello Type values can be found in 	    <xref target="HELLO-OPT" />.</postamble>            </figure>        	  <t><list style="hanging">	    <t hangText="Length: ">	    In bytes for the value part of the Type/Length/Value encoding.	    The Interface Identifier will be 8 bytes long.</t>  	    <t hangText="Router Identifier: ">	    The Router Identifier is a 4 byte identifier uniquely identifying	    the router within some scope. It MAY be 0 when no protocols	    require a Router Identifier.</t>	    <t hangText="Local Interface Identifier: ">	    The Local Interface Identifier is a 4 byte identifier that is	    unique among all PIM enabled interfaces on a router.</t>          </list></t>	</section>	<section title="Security Considerations">	  <t>	    The Interface Identifier is included in PIM Hello messages.            See <xref target="RFC4601"/> for security considerations            regarding PIM Hello messages. In particular, PIM Hello messages            may be forged, and may include an arbitrary Interface Identifier,            or the Interface Identifier may be intentionally omitted.	    The effects of this depend on            how the Interface Identifier is used by other protocols.	  </t>	</section>	<section anchor="IANA-Considerations" title="IANA Considerations">	  <t>IANA has temporarily assigned the value 31 for the	    Interface Identifier Hello option defined in this document.            IANA is requested to make this assignment permanent.	  </t>	</section>        <section title="Acknowledgments">	  <t>	    The authors thank Yiqun Cai, Heidi Ou, Liming Wei,	    Gorry Fairhurst, Bharat Joshi and Bill Atwood for            providing valuable feedback.	  </t>        </section>    </middle>    <back>        <references title='Normative References'>	  <?rfc include='reference.RFC.2119' ?>	  <?rfc include='reference.RFC.4601' ?>        </references>        <references title='Informative References'>	  <?rfc include='reference.RFC.1213' ?>	  <?rfc include='reference.RFC.2328' ?>	  <?rfc include='reference.RFC.4271' ?>	  <?rfc include="reference.I-D.ietf-pim-port" ?>	    <reference anchor="HELLO-OPT">  	        <front>	            <title>PIM Hello Options</title>		    <author surname="IANA">		        <organization />   		    </author>	            <date month="March" year="2007" />	        </front>	        <seriesInfo name="PIM-HELLO-OPTIONS per RFC4601"		value="http://www.iana.org/assignments/pim-hello-options" />	    </reference>	</references>    </back></rfc>