<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
	  <!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
	  <!ENTITY RFC3563 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3563.xml">
	  <!ENTITY RFC5304 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5304.xml">
	  <!ENTITY RFC5310 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5310.xml">
	  <!ENTITY I-D.ietf-isis-purge-tlv SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-isis-purge-tlv.xml">
	  ]>

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt'?>
<?rfc strict="yes"?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>

<rfc category="std" docName="draft-ietf-isis-reg-purge-01"
     ipr="trust200902" updates="3563 5304 5310">

  <front>
    <title abbrev="Registry Extension for Purges">
      IS-IS Registry Extension for Purges
    </title>

    <author initials="T" surname="Li" fullname="Tony Li">
      <organization>Cisco Systems, Inc.</organization>
      <address><postal>
	  <street>170 W. Tasman Dr.</street>
	  <city>San Jose</city><region>CA</region>
	  <code>95134</code><country>USA</country> 
	</postal>
	<email>tony.li@tony.li</email>
      </address>
    </author>

    <author initials="L" surname="Ginsberg" fullname="Les Ginsberg">
      <organization>Cisco Systems, Inc.</organization>
      <address><postal>
	  <street>170 W. Tasman Dr.</street>
	  <city>San Jose</city><region>CA</region>
	  <code>95134</code><country>USA</country> 
	</postal>
	<email>ginsberg@cisco.com</email>
      </address>
    </author>

    <date month="March" day="1" year="2011"/>
    <area>Routing</area>
    <workgroup>IS-IS Working Group</workgroup>
    <abstract>
      <t>
	IANA maintains the IS-IS TLV Codepoint Registry.  This registry
	documents which TLVs can appear in different types of IS-IS
	Protocol Data Units (PDUs), but does not document which TLVs can be
	found in zero Remaining Lifetime Link State PDUs (LSPs, a.k.a.,
	purges).  This document extends the existing registry to record the
	set of TLVs that are permissible in purges, and updates the rules
	for generating and processing purges in the presence of
	authentication.
      </t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>
	The IS-IS <xref target='ISO 10589'/> routing protocol maintains a
	link state database of the topology of its routing domain by
	flooding a set of Link State Protocol Data Units (LSPs).  When the
	protocol no longer needs the information stored in an LSP, it uses
	the purge mechanism to cause the Intermediate Systems (ISs) in its
	domain to discard the information contained in the LSP.  The
	process for generating purges can be found in Section 7.3.16.4 of
	<xref target='ISO 10589'/>.  This process retains only the LSP
	header, discarding any TLVs that had been carried within the LSP.
      </t>
      
      <t>
	Subsequent enhancements to IS-IS, such as <xref target='RFC5304'/>
	<xref target='RFC5310'/>, amend the process of generating a purge
	and allow the inclusion of certain TLVs in purges.
      </t>

      <section title="Requirements Language">
	<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='Registry Changes'>
      <t>
	This document extends the current IS-IS TLV Codepoint Registry,
	defined in <xref target='RFC3563'/>, to record the set of TLVs that
	MAY be found in purges.  All other TLVs MUST NOT appear in purges.
	This will serve as an aid to subsequent documents, which can then
	refer to the registry as the definitive list of the TLVs allowed in
	purges.  This will also act as an aid to implementers, providing
	them with an easily accessible compendium of allowable TLVs.
      </t>

      <t>
	The purge status defined for a given TLV applies to all sub-TLVs
	defined for that TLV.
      </t>

    </section>

    <section title='Purges and Authentication'>
      <t>
	Previous documents on Authentication <xref target='RFC5304'/>
	<xref target='RFC5310'/> required that an IS only accept a purge if
	it only contained the Authentication TLV.
      </t>
      <t>
	This document updates and generalizes that behavior as follows: an
	implementation that implements Authentication MUST NOT accept a
	purge that contains any TLV listed in the registry that is not
	acceptable in a purge.  An implementation MUST NOT accept a purge
	that contains a TLV not listed in the registry unless the purge
	also contains the Purge Originator Identification (POI) TLV
	<xref target='I-D.ietf-isis-purge-tlv'/>.  Purges that are accepted
	MUST be propagated without removal of TLVs.  If multiple purges are
	received for the same LSP, then the implementation MAY propagate
	any one of the purges.
      </t>
      <t>
	If an implementation that implements Authentication accepts a purge
	that does not include the POI TLV and it chooses to insert the POI
	TLV, it MUST also recompute Authentication.
      </t>
      <t>
	ISs MUST NOT accept LSPs with a non-zero Remaining Lifetime that
	contain the POI TLV.
      </t>
      <t>
	Purge generation is updated as follows: an implementation that
	implements Authentication generates a purge by first removing any
	TLVs that are not listed in the registry as being acceptable in
	purges. The POI TLV MUST be added.  Then any other TLVs that MAY be
	in purges, as shown by the registry, MAY be added.  Finally,
	Authentication, if any, is added.
      </t>
    </section>

    <section title="IANA Considerations">
      <t>
	This document requests that IANA modify the IS-IS 'TLV Codepoints
	Registry' by adding a column in the registry for 'Purge'.  A 'y' in
	this column indicates that the TLV for this row MAY be found in a
	purge.  A 'n' in this column indicates that the TLV for this row
	MUST NOT be found in a purge.
      </t>

      <t>
	The 'Purge' column should initially contain a 'y' for TLV type 10
	(Authentication) and for TLV type 137 (Dynamic hostname).  All
	other entries in this column should have an 'n'.  Other additions
	to this registry should explicitly specify their value for this
	column.
      </t>
    </section>

    <section anchor="security" title="Security Considerations">
      <t>
	This document introduces no new security issues.
      </t>
    </section>

  </middle>

  <back>
    <references title="Normative References">
      <reference anchor="ISO 10589">
	<front>
          <title>
	    Intermediate system to Intermediate system routeing information
	    exchange protocol for use in conjunction with the Protocol for
	    providing the Connectionless-mode Network Service (ISO
	    8473)
	  </title> 
          <author fullname="ISO">
	    <organization >ISO</organization>
	  </author>
	</front>
        <seriesInfo name="ISO/IEC" value="10589:2002"/>
      </reference>
      
      &I-D.ietf-isis-purge-tlv;
      &RFC2119;
      &RFC3563;
      &RFC5304;
      &RFC5310;
    </references>
  </back>
</rfc>

