<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC1195 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.1195.xml">
<!ENTITY RFC3784 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3784.xml">
<!ENTITY RFC2702 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2702.xml">
<!ENTITY RFC2966 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2966.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<?rfc toc="yes"?>
<?rfc tocdepth="4"?>

<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>

<?rfc rfcedstyle="yes" ?>
<?rfc subcompact="no" ?>

<rfc number="5130" category="std">

  <!-- ***** FRONT MATTER ***** -->

  <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the 
         full title is longer than 39 characters -->

    <title abbrev="IS-IS Admin Tags">A Policy Control Mechanism in IS-IS Using
    Administrative Tags</title>

    <!-- add 'role="editor"' below for the editors if appropriate -->

    <!-- Another author who claims to be an editor -->

    <author fullname="Stefano Previdi" initials="S." surname="Previdi">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street>Via Del Serafico, 200</street>

          <city>00142 Rome</city>

          <region></region>

          <code></code>

          <country>Italy</country>
        </postal>

        <email>sprevidi@cisco.com</email>
      </address>
    </author>

    <author fullname="Mike Shand" initials="M." role="editor" surname="Shand">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street>250, Longwater Avenue.</street>

          <!-- Reorder these if your country does things differently -->

          <city>Reading</city>

          <region>Berks</region>

          <code>RG2 6GB</code>

          <country>UK</country>
        </postal>

        <phone>+44 208 824 8690</phone>

        <email>mshand@cisco.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <author fullname="Christian Martin" initials="C." surname="Martin">
      <organization>Verizon</organization>

      <address>
        <postal>
          <street>1880 Campus Commons Dr</street>

          <city>Reston</city>

          <region></region>

          <code>VA 20191</code>

          <country>USA</country>
        </postal>

        <email>cmartin@verizon.com</email>
      </address>
    </author>

    <date month="February" year="2008" />

<!-- [rfced] Please insert any keywords (beyond those that appear in
the title) for use on http://www.rfc-editor.org/rfcsearch.html. -->
<keyword>example</keyword>

    <abstract>
      <t>This document describes an extension to the IS-IS protocol to add
      operational capabilities that allow for ease of management and control
      over IP prefix distribution within an IS-IS domain. This document
      enhances the IS-IS protocol by extending the information that
      an Intermediate System (IS) router can
      place in Link State Protocol (LSP) Data Units for policy use. This
      extension will provide operators with a mechanism to control IP prefix
      distribution throughout multi-level IS-IS domains.</t>
    </abstract>
  </front>

  <middle>


    <section title="Introduction">
      

      <t>As defined in <xref target="RFC1195"></xref> and extended in <xref
      target="RFC3784"></xref>, the IS-IS protocol <xref
      target="ISO10589"></xref> may be used to distribute IPv4 prefix
      reachability information throughout an IS-IS domain. In addition, thanks
      to extensions made in <xref
      target="RFC5120"></xref> and <xref
      target="ISIS-IPv6"></xref>, IS-IS may be used to distribute
      IPv6 reachability information.</t>

      

      <t>The IPv4 prefix information is encoded as TLV type 128 and 130 in
      <xref target="RFC1195"></xref>, with additional information carried in
      TLV 135 as specified in <xref target="RFC3784"></xref> and TLV 235 as
      defined in <xref target="RFC5120"></xref>. In
      particular, the extended IP Reachability TLV (TLV 135) contains support
      for a larger metric space, an up/down bit to indicate redistribution
      between different levels in the hierarchy, an IP prefix, and one or more
      sub-TLVs that can be used to carry specific information about the
      prefix. TLV 235 is a derivative of TLV 135, with the addition of
      Multi-Topology membership information <xref
      target="RFC5120"></xref>. The IPv6 prefix
      information is encoded as TLV 236 in <xref
      target="ISIS-IPv6"></xref>, and TLV 237 in <xref
      target="RFC5120"></xref>.</t>

      

      <t>This document defines 2 new sub-TLVs for TLV 135, TLV 235, TLV 236 and
      TLV 237 that may be used to carry administrative information about an IP
      prefix.</t>

      
    </section>

    <section title="Conventions Used in This Document">
      <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 BCP 14, <xref
      target="RFC2119"></xref>.</t>

    </section>

    <section title="Sub-TLV Additions ">
      

      <t>This document creates 2 new "Administrative Tag" sub-TLVs to be added
      to TLV 135, TLV 235, TLV 236 and TLV 237. These TLVs specify one or more
      32- or 64-bit unsigned integers that may be associated with an IP prefix.
      Example uses of these tags include controlling redistribution between
      levels and areas, different routing protocols, or multiple instances of
      IS-IS running on the same router, or carrying BGP standard or extended
      communities.</t>

<!-- [rfced] Please clarify the above sentence. Suggest:

      Example uses of these tags include carrying BGP standard (or
      extended) communities and controlling redistribution between
      levels and areas, different routing protocols, or multiple
      instances of IS-IS running on the same router.
-->

      <t>The methods for which their use is employed is beyond the scope of
      this document and left to the implementer and/or operator.</t>

      <t>The encoding of the sub-TLV(s) is discussed in the following
      subsections.</t>

      <section title="32-bit Administrative Tag Sub-TLV 1 ">
        

        <t>The Administrative Tag SHALL be encoded as one or more 4-octet
        unsigned integers using Sub-TLV 1 in TLV 135 <xref
        target="RFC3784"></xref>, TLV 235 <xref
        target="RFC5120"></xref>, TLV 236 <xref
        target="ISIS-IPv6"></xref>, and TLV 237 <xref
        target="RFC5120"></xref>. The Administrative
        Tag Sub-TLV has following structure:</t>

        <t><list style="symbols">
            <t>1 octet of type (value: 1)</t>

            <t>1 octet of length (value: multiple of 4)</t>

            <t>one or more instances of 4 octets of administrative tag</t>
          </list></t>

        

        

        <t>On receipt, an implementation MAY consider only one encoded tag, in
        which case, the first encoded tag MUST be considered and any additional
        tags ignored. A tag value of zero is reserved and SHOULD be treated as
        "no tag".</t>
      </section>

      <section title="64-bit Administrative Tag Sub-TLV 2  ">
        

        <t>The Administrative Tag SHALL be encoded as one or more 8-octet
        unsigned integers using Sub-TLV 2 in TLV 135 <xref
        target="RFC3784"></xref>, TLV 235 <xref
        target="RFC5120"></xref>, TLV 236 <xref
        target="ISIS-IPv6"></xref>, and TLV 237 <xref
        target="RFC5120"></xref>. The 64-bit
        Administrative Tag Sub-TLV has following structure:</t>

        <t><list style="symbols">
            <t>1 octet of type (value: 2)</t>

            <t>1 octet of length (value: multiple of 8)</t>

            <t>one or more instances of 8 octets of administrative tag</t>
          </list></t>

        <t>On receipt, an implementation MAY consider only one encoded tag; in
        which case, the first encoded tag MUST be considered and any additional
        tags ignored. A tag value of zero is reserved and SHOULD be treated as
        "no tag".</t>

        
      </section>
    </section>

    <section title="Ordering of Tags  ">
      

      <t>The semantics of the tag order are implementation-dependent. That is,
      there is no implied meaning to the ordering of the tags that indicates a
      certain operation or set of operations need be performed based on the
      order of the tags. Each tag SHOULD be treated as an autonomous
      identifier that MAY be used in policy to perform a policy action.
      Whether or not tag A precedes or succeeds tag B SHOULD not change the
      meaning of the tag set. However, when propagating TLVs that contain
      multiple tags between levels, an implementation SHOULD preserve the
      ordering such that the first tag remains the first tag, so that
      implementations that only recognize a single tag will have a consistent
      view across levels.</t>

      <t>Each IS that receives an LSP with TLV(s) 135 and/or 235 and/or 236
      and/or 237, that have associated sub-TLV(s) 1 and/or 2, MAY operate on
      the tag values as warranted by the implementation. If an implementation
      needs to change tag values, for example, when propagating TLVs between
      levels at an area boundary, then the TLV(s) SHOULD be copied to the
      newly generated Level-1 or Level-2 LSP.  At that point, the contents of
      the sub-TLV(s) MAY change as dictated by the policy action. In the event
      that no change is required, the sub-TLV(s) SHOULD be copied in order into
      the new LSP, such that ordering is preserved.</t>

      
    </section>

    <section title="Compliance">
      

      <t>A compliant IS-IS implementation MUST be able to assign one tag to
      any IP prefix in any of the following TLVs: TLV 135, TLV 235, TLV 236,
      TLV 237. It MUST be able to interpret a single tag present in the
      sub-TLV, or the first tag where there is more than one tag present in
      the sub-TLV.</t>

      <t>A compliant IS-IS implementation MAY be able to assign more than one
      tag to any IP prefix in any of the following TLVs: TLV 135, TLV 235, TLV
      236, TLV 237. It MAY be able to interpret the second and subsequent tags
      where more than one tag is present in the sub-TLV.</t>

      <t>When propagating TLVs between levels, a compliant IS-IS implementation MAY be able to rewrite or remove one
      or more tags associated with a prefix in any of the following TLVs: TLV
      135, TLV 235, TLV 236, TLV 237.</t>
    </section>

    <section title="Operations  ">

      <t>An administrator associates an Administrative Tag value with some
      interesting property. When IS-IS advertises reachability for some IP
      prefix that has that property, it adds the Administrative Tag to the IP
      reachability information TLV for that prefix, and the tag "sticks" to
      the prefix as it is flooded throughout the routing domain.</t>

      

      <t>Consider the network in <xref target="fig_example"></xref>. We wish
      to "leak" L1 prefixes <xref target="RFC2966"></xref> with some property,
      A, from L2 to the L1 router R1. Without policy groups, there is no way
      for R2 to know property A prefixes from property B prefixes.</t>

      

      <figure anchor="fig_example" title="Example of usage">
        <preamble></preamble>

        <artwork><![CDATA[                             R2--------R3--------R4 
                      L2     /                    \          
                      - - - /- - - - - - - - - - - - - - 
                      L1   /                        \               
                         R1----1.1.1.0/24 (A)       R5 
                                                     | 
                                                     | 
                                               1.1.2.0/24 (B) 
]]></artwork>

        <postamble></postamble>
      </figure>

      

      <t>We associate Administrative Tag 100 with property A, and have R5
      attach that value to the IP extended reachability information TLV for
      prefix 1.1.2.0/24. R2 has a policy in place to "match prefixes with
      Administrative Tag 100, and leak to L1".</t>

      <t>The previous example is rather simplistic; it seems that it would be
      just as easy for R2 simply to match the prefix 1.1.2.0/24. However, if
      there are a large number of routers that need to apply some policy
      according to property A and a large number of "A" prefixes, this mechanism
      can be quite helpful.</t>

      <t>Implementations that support only a single tag and those that
      support multiple tags may coexist in the same IS-IS domain. An
      implementation supporting multiple tags SHOULD therefore assign any tag
      that is required to be interpreted by all systems as the first tag in
      any set of multiple tags.</t>
    </section>

    <section title="Security Considerations">
      

      <t>This document raises no new security issues for IS-IS, as any
      annotations to IP prefixes should not pass outside the administrative
      control of the network operator of the IS-IS domain. Such an allowance
      would violate the spirit of Interior Gateway Protocols in general and
      IS-IS in particular.</t>
    </section>

    <section title="IANA Considerations">
      

      <t>IANA has assigned "1" as the type code of the 32-bit
      Administrative Tag Sub-TLV and "2" as the type code of the 64-bit
      Administrative Tag Sub-TLV.</t>
    </section>

    <section title="Manageability Considerations">
      <t>These extensions have been designed, developed, and deployed for
      many years and do not have any new impact on management and operation of the
      IS-IS protocol via this standardization process.</t>
    </section>

    <section title="Acknowledgements">
      

      <t>The authors would like to thank Henk Smit for clarifying the best
      place to describe this new information, Tony Li and Tony Przygienda for
      useful comments on this document, and Danny McPherson for some much needed
      formatting assistance.</t>
    </section>

    <section title="Contributors">

<t>Brad Neal contributed portions of this document.</t>
      
<!--
<artwork>
Brad Neal
Broadwing Communications
1835 Kramer Lane - Suite 100
Austin,   TX 78758
USA

EMail: bneal@broadwing.com
</artwork>
-->

    </section>


  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
    <!-- References split into informative and normative -->

    <!-- There are 2 ways to insert reference entries from the citation libraries:
     1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
     2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
        (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

     Both are cited textually in the same manner: by using xref elements.
     If you use the PI option, xml2rfc will, by default, try to find included files in the same
     directory as the including file. You can also define the XML_LIBRARY environment variable
     with a value containing a set of directories to search.  These can be either in the local
     filing system or remote ones accessed by http (http://domain/dir/... ).-->

    <references title="Normative References">
      <reference anchor="ISO10589">
        <front>
          <title>Intermediate system to Intermediate system intra-domain
          routing information exchange protocol for use in conjunction with
          the protocol for providing the connectionless-mode Network Service
          (ISO 8473)</title>

          <author>
            <organization abbrev="ISO">International Organization for
            Standardization</organization>
          </author>

          <date month="Nov" year="2002" />
        </front>

        <seriesInfo name="ISO/IEC" value="10589:2002, Second Edition" />
      </reference>

      &RFC2119;

      &RFC1195;

 
    </references>

    <references title="Informative References">

     &RFC2966;

     &RFC3784;

<!-- I-D.ietf-isis-wg-multi-topology -->
<reference anchor='RFC5120'>
<front>
<title>M-ISIS: Multi Topology (MT) Routing in IS-IS</title>

<author initials='T' surname='Przygienda' fullname='Tony Przygienda'>
    <organization />
</author>
<author initials='N' surname='Shen' fullname='Naiming Shen'>
    <organization />
</author>
<author initials='N' surname='Sheth' fullname='Nischal Sheth'>
    <organization />
</author>

<date month='February' year='2008' />

<abstract><t>This document describes an optional mechanism within ISIS used today by many ISPs for IGP routing within their clouds. This document describes how to run within a single ISIS domain a set of independent IP topologies that we call Multi-Topologies (MTs). This MT extension can be used for variety of purposes such as an in-band management network ``on top'' of the original IGP topology, maintain separate IGP routing domains for isolated multicast or IPv6 islands within the backbone, or force a subset of an address space to follow a different topology.</t></abstract>

</front>

<seriesInfo name='RFC' value='5120' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-isis-wg-multi-topology-12.txt' />
</reference>

<!-- I-D.ietf-isis-ipv6 -->

<reference anchor='ISIS-IPv6'>
<front>
<title>Routing IPv6 with IS-IS</title>

<author initials='C' surname='Hopps' fullname='Christian Hopps'>
    <organization />
</author>

<date month='October' day='5' year='2007' />

<abstract><t>This draft specifies a method for exchanging IPv6 routing information using the IS-IS routing protocol. The described method utilizes 2 new TLVs, a reachability TLV and an interface address TLV to distribute the necessary IPv6 information throughout a routing domain. Using this method one can route IPv6 along with IPv4 and OSI using a single intra-domain routing protocol.Requirements Language 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 RFC 2119 [RFC2119].</t></abstract>

</front>

<seriesInfo name='Work in' value='Progress' />

<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-isis-ipv6-07.txt' />
</reference>


    </references>
  </back>
</rfc>
