One document matched: draft-ietf-isis-genapp-04.xml


<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
     There has to be one entity for each item to be referenced. 
     An alternate method (rfc include) is described in the references. -->
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC4971 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4971.xml">
<!ENTITY RFC5226 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5226.xml">
<!ENTITY RFC5304 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5304.xml">
<!ENTITY RFC5305 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5305.xml">
<!ENTITY RFC5310 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5310.xml">
<!ENTITY I-D.ietf-isis-mi SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-isis-mi-03.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
     please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
     (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="std" docName="draft-ietf-isis-genapp-04.txt" ipr="trust200902"
     updates="">
  <!-- category values: std, bcp, info, exp, and historic
     ipr values: full3667, noModification3667, noDerivatives3667
     you can add the attributes updates="NNNN" and obsoletes="NNNN" 
     they will automatically be output with "(if approved)" -->

  <!-- ***** 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="">Advertising Generic Information in IS-IS</title>

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

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

    <author fullname="Les Ginsberg" initials="L." surname="Ginsberg">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street>510 McCarthy Blvd.</street>

          <city>Milpitas</city>

          <region>Ca.</region>

          <code>95035</code>

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

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

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

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

          <city>00142 - Roma</city>

          <region></region>

          <code></code>

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

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

    <author fullname="Mike Shand" initials="M." 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>

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

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

    <date day="10" month="November" year="2010" />

    <!-- If the month and year are both specified and are the current ones, xml2rfc will fill 
         in the current day for you. If only the current year is specified, xml2rfc will fill 
	 in the current day and month for you. If the year is not the current one, it is 
	 necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the 
	 purpose of calculating the expiry date).  With drafts it is normally sufficient to 
	 specify just the year. -->

    <!-- Meta-data Declarations -->

    <!-- WG name at the upperleft corner of the doc,
         IETF is fine for individual submissions.  
	 If this element is not present, the default is "Network Working Group",
         which is used by the RFC Editor as a nod to the history of the IETF. -->

    <!-- Keywords will be incorporated into HTML output
         files in a meta tag but they have no effect on text or nroff
         output. If you submit your draft to the RFC Editor, the
         keywords will be used for the search engine. -->

    <abstract>
      <t>This draft describes the manner in which generic application
      information (i.e. information not directly related to the operation of
      the IS-IS protocol) should be advertised in IS-IS LSPs and defines
      guidelines which should be used when flooding such information.</t>
    </abstract>
  </front>

  <middle>
    <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 <xref
      target="RFC2119"></xref>.</t>
    </section>

    <section title="Overview">
      <t><xref target="ISO10589"></xref> defines the format of
      type-length-value (TLVs) which may be sent in IS-IS Protocol Data Units
      (PDUs). The first octet of a TLV encodes the "type" or "codepoint" which
      provides a scope for the information and information format which
      follows. The protocol is therefore limited to 256 different codepoints
      which may be assigned. This number has proved generous as regards the
      information required for correct operation of the Intermediate System to
      Internediate System (IS-IS) protocol. However, the increasing use of
      IS-IS Link State Protocol Data Units (LSPs) for advertisement of generic
      information (GENINFO) not directly related to the operation of the IS-IS
      protocol places additional demands on the TLV encoding space which has
      the potential to consume a significant number of TLV codepoints. This
      document therefore defines an encoding format for GENINFO which
      minimizes the consumption of TLV codepoints and also maximizes the
      flexibility of the formats which can be used to represent GENINFO.</t>

      <t>This document also discusses optimal behavior associated with the
      advertisement and flooding of LSPs containing GENINFO in order to avoid
      the advertisement of stale information and minimize the presence of
      duplicate or conflicting information when advertisements are
      updated.</t>

      <t>The manner in which the information contained in GENINFO TLVs is
      exchanged between an instance of the IS-IS protocol and the application
      which generates/consumes the GENINFO is outside the scope of this
      specification.</t>

      <t>In order to minimize the impact advertisement of GENINFO may have on
      the operation of routing, such advertisements MUST occur in the context
      of a non-zero instance of the IS-IS protocol as defined in <xref
      target="I-D.ietf-isis-mi"></xref> except where the rules for the use of
      the zero instance set out later in this document are followed.</t>

      <t></t>
    </section>

    <section title="Encoding Format for GENINFO">
      <t>The encoding format defined below has the following goals regarding
      the advertisement of GENINFO in IS-IS LSPs:</t>

      <t><list style="symbols">
          <t>Minimize the number of IS-IS top level and sub-TLV codepoints
          required</t>

          <t>Minimize the depth of sub-TLV levels required</t>
        </list></t>

      <t>In order to support these goals, a new IANA registry is required.
      This registry will manage the assignment of IS-IS GENINFO Application
      Identifiers. These numbers are unsigned 16 bit numbers ranging in value
      from 1 to 65535. Application specific sub-TLV codepoints are unsigned 8
      bit numbers ranging in value from 0 to 255. The assignment of the
      sub-TLV codepoints is scoped by the Application Identifier. Management
      of the application specific sub-TLV codepoints is outside the scope of
      this document.</t>

      <t></t>

      <section title="GENINFO TLV">
        <t></t>

        <t>The GENINFO TLV supports the advertisement of application specific
        information which is not directly related to the operation of the
        IS-IS protocol.</t>

        <t><figure>
            <preamble></preamble>

            <artwork><![CDATA[  Type   251 
  Length # of octets in the value field (3 to 255) 
  Value

                                       No. of octets 
             +-----------------------+ 
             | Flags                 |     1 
             +-----------------------+ 
             | Application ID        |     2 
             +-----------------------+ 
             | Application           | 
             | IP Address Info       |     0 to 20 
             +-----------------------+ 
             | Additional Application|     0 to (252 - 
             |  Specific Information |     len of IP Address info) 
             +-----------------------+ 
              
            
           Flags  

                 0 1 2 3 4 5 6 7  
                +-+-+-+-+-+-+-+-+  
                |  Rsvd |V|I|D|S|  
                +-+-+-+-+-+-+-+-+  
                

                The following bit flags are defined.  

                S bit (0x01): If the S bit is set(1), the GENINFO TLV 
                MUST be flooded across the entire routing domain. If 
                the S bit is not set(0), the TLV MUST NOT be leaked 
                between levels. This bit MUST NOT be altered during the 
                TLV leaking.  

                D bit (0x02): When the GENINFO TLV is leaked from 
                level-2 to level-1, the D bit MUST be set. Otherwise 
                this bit MUST be clear. GENINFO TLVs with the D bit set 
                MUST NOT be leaked from level-1 to level-2. This is to 
                prevent TLV looping. 

                I bit (0x04): When the I bit is set the 4 octet IPv4 
                address associated with the application immediately 
                follows the Application ID.  

                V bit (0x08): When the V bit is set, the 16 octet IPv6 
                address associated with the application immediately 
                follows either the Application ID (if I bit is clear) 
                or the IPv4 address (if I bit is set). 
  
           Application ID  

                An identifier assigned to this application via the IANA
                registry defined later in this document. 

           Application IPv4 Address Info  

                The IPv4 address associated with the application. This 
                is not necessarily an address of a router running the 
                IS-IS protocol. 

           Application IPv6 Address Info  

                The IPv6 address associated with the application. This 
                is not necessarily an address of a router running the 
                IS-IS protocol. 

           Additional Application Specific Information  

                Each application may define additional information to 
                be encoded in a GENINFO TLV following the fixed 
                information. Definition of such information is beyond 
                the scope of this document. 

  ]]></artwork>

            <postamble></postamble>
          </figure></t>

        <t></t>
      </section>

      <section title="Use of sub-TLVs in GENINFO TLV">
        <t></t>

        <t><xref target="RFC5305"></xref> introduced the definition and use of
        sub-TLVs. One of the advantages of using sub-TLVs rather than fixed
        encoding of information inside a TLV is to allow for the addition of
        new information in a backwards compatible manner i.e. just as with
        TLVs, implementations are required to ignore sub-TLVs which they do
        not understand.</t>

        <t>GENINFO TLVs MAY include sub-TLVs in the application specific
        information as deemed necessary and appropriate for each application.
        The scope of the codepoints used in such sub-TLVs is defined by the
        combination of the GENINFO TLV codepoint and the Application ID i.e.
        the sub-TLV codepoints are private to the application. Such sub-TLVs
        are referred to as APPsub-TLVs.</t>

        <t>Additional levels of APPsub-TLVs may be required when there is
        variable information which is scoped by a specific APPsub-TLV. These
        "nested" sub-TLVs MUST be encoded in the same manner as sub-TLVs i.e.
        with a one-octet Type field, a one-octet Length field, and zero or
        more octets of Value.</t>

        <t></t>
      </section>
    </section>

    <section title="GENINFO Flooding Procedures">
      <t>This section describes procedures which apply to the propagation of
      LSPs which contain GENINFO TLVs. These procedures have been previously
      discussed in <xref target="RFC4971"></xref>. This section is intended to
      serve as a reference specification for future documents which define the
      use of GENINFO TLV(s) for a specific application - eliminating the need
      to repeat the definition of these procedures in the application specific
      documents.</t>

      <t>Each GENINFO TLV contains information regarding exactly one
      application instance as identified by the Application ID in the GENINFO
      TLV. When it is necessary to advertise sets of information with the same
      Application ID which have different flooding scopes, a router MUST
      originate a minimum of one GENINFO TLV for each required flooding scope.
      GENINFO TLVs which contain information having area/level scope will have
      the S bit clear. These TLVs MUST NOT be leaked into another level.
      GENINFO TLVs which contain information which has domain scope will have
      the S bit set. These TLVs MUST be leaked into other IS-IS levels. When a
      TLV is leaked from level-2 to level-1, the D bit MUST be set in the
      level-1 LSP advertisement.</t>

      <section title="Leaking Procedures">
        <t>When leaking GENINFO TLVs downward from Level-2 into Level-1, if
        the originator of the TLV is a Level-1 router in another area, it is
        possible that multiple copies of the same TLV may be received from
        multiple L2 routers in the originating area. A router performing
        downward leaking MUST check for such duplication by comparing the
        contents of the TLVs. The set of LSPs generated by a router for a
        given level MUST NOT contain two or more copies of the same GENINFO
        TLV.</t>

        <t>In order to prevent the use of stale GENINFO information, a system
        MUST NOT use a GENINFO TLV present in an LSP of a system which is not
        currently reachable via Level-x paths, where "x" is the level (1 or 2)
        associated with the LSP in which the GENINFO TLV appears. Note that
        leaking a GENINFO TLV is one of the uses which is prohibited under
        these conditions. The following example illustrates what might occur
        in the absence of this restriction.</t>

        <t>Example: If Level-1 router A generates a GENINFO TLV and floods it
        to two L1/L2 routers S and T, they will flood it into the Level-2
        sub-domain. Now suppose the Level-1 area partitions, such that A and S
        are in one partition and T is in another. IP routing will still
        continue to work, but if A now issues a revised version of the GENINFO
        TLV, or decides to stop advertising it, S will follow suit, but T will
        continue to advertise the old version until the LSP times out.</t>

        <t>Routers in other areas have to choose whether to trust T's copy of
        A's GENINFO TLV or S's copy of A's information and they have no
        reliable way to choose. By making sure that T stops leaking A's
        information, this removes the possibility that other routers will use
        stale information from A.</t>
      </section>

      <section title="Minimizing Update Confusion">
        <t></t>

        <t>If an update to a TLV is advertised in an LSP with a different
        number than the LSP associated with the old advertisement, the
        possibility exists that other systems can temporarily have either 0
        copies of a particular advertisement or 2 copies of a particular
        advertisement, depending on the order in which new copies of the LSP
        which had the old advertisement and the LSP which has the new
        advertisement arrive at other systems.</t>

        <t>Whenever possible, an implementation SHOULD advertise the update to
        a GENINFO TLV in the LSP with the same number as the advertisement
        which it replaces. Where this is not possible, the two affected LSPs
        SHOULD be flooded as an atomic action.</t>

        <t>Systems which receive an update to an existing GENINFO TLV can
        minimize the potential disruption associated with the update by
        employing a holddown time prior to processing the update so as to
        allow for the receipt of multiple LSPs associated with the same update
        prior to beginning processing.</t>

        <t></t>
      </section>

      <section title="Interpreting Attribute Information">
        <t>Where a receiving system has two copies of a GENINFO TLV with the
        same Application ID, attribute information in the two TLVs which does
        not conflict MUST be considered additive. When information in the two
        GENINFO TLVs conflicts i.e there are different settings for a given
        attribute, the procedure used to choose which copy shall be used is
        undefined.</t>

        <t></t>
      </section>
    </section>

    <section title="Use of a Separate Protocol Instance">
      <t>The use of the IS-IS flooding mechanism as a means of reliably and
      efficiently propagating information is understandably attractive.
      However, it is prudent to remember that the primary purpose of that
      mechanism is to flood information necessary for the correct operation of
      the IS-IS protocol. Flooding of information not directly related to the
      use of the IS-IS protocol in support of routing degrades the operation
      of the protocol. Degradation occurs because the frequency of LSP updates
      is increased and because the processing of non-routing information in
      each router consumes resources whose primary responsibility is to
      efficiently respond to reachability changes in the network.</t>

      <t>Advertisement of GENINFO therefore MUST occur in the context of a
      non-zero instance of the IS-IS protocol as defined in <xref
      target="I-D.ietf-isis-mi"></xref> except when the use in the zero
      instance is defined in a Standards Track RFC.</t>

      <t>The use of a separate instance of the protocol allows both the
      flooding and the processing of the non-routing information to be
      decoupled from the information necessary to support correct routing of
      data in the network. The flooding and processing of non-routing
      information can then be prioritized appropriately.</t>

      <t>Use of a separate protocol instance to advertise GENINFO does not
      eliminate the need to use prudence in the frequency with which such
      information is updated. One of the most egregious oversights is a
      failure to appropriately dampen changes in the information to be
      advertised, which can lead to flooding storms. Documents which specify
      the use of the mechanisms defined here MUST define the expected rate of
      change of the information to be advertised.</t>

      <t>If desirable, independent control of the flooding scope for
      information related to two different applications can be achieved by
      utilizing separate non-zero protocol instances for each
      application.<xref target="I-D.ietf-isis-mi"></xref>.</t>

      <t></t>
    </section>

    <section title="Applicability of GENINFO TLV">
      <t>The GENINFO TLV supports the advertisement of application specific
      information in IS-IS LSPs which is not directly related to the operation
      of the IS-IS protocol. Information advertised in the GENINFO TLV MUST
      NOT alter basic IS-IS protocol operation including (but not limited to)
      the establishment of adjacencies, the update process, and the decision
      process.</t>

      <t></t>
    </section>

    <section title="Standardization Requirements">
      <t></t>

      <t>GENINFO is intended to advertise information on behalf of
      applications whose operations have been defined in a public
      specification as discussed in <xref target="RFC5226"></xref>.</t>

      <t>The public specification MUST include:</t>

      <t><list style="symbols">
          <t>a description of the sub-TLV allocation policy</t>

          <t>discussion of security issues</t>

          <t>discussion of the rate of change of the information being
          advertised</t>

          <t>justification for the use of GENINFO</t>
        </list></t>
    </section>

    <section title="Security Considerations">
      <t>The introduction and use of the new TLV codepoint for GENINFO in and
      of itself raises no new security issues for IS-IS.</t>

      <t>It is possible that information advertised in a GENINFO TLV by a
      given Application MAY introduce new security issues. The public
      specification which defines the use of GENINFO by that Application MUST
      include a discussion of the security issues. Where appropriate, it is
      recommended that either <xref target="RFC5304"></xref> or <xref
      target="RFC5310"></xref> be used.</t>
    </section>

    <section title="IANA Considerations">
      <t>This document defines a new IS-IS TLV that needs to be reflected in
      the IS-IS TLV code-point registry:</t>

      <figure>
        <preamble></preamble>

        <artwork><![CDATA[Type        Description                            IIH   LSP   SNP
----        -----------------------------------    ---   ---   ---
251         Generic Information                     n     y     n 
]]></artwork>

        <postamble></postamble>
      </figure>

      <t>This document also defines a new registry. The new registry will
      manage the assignment of Application Identifiers which may be used in
      the Generic Information TLV. These identifiers are unsigned 16 bit
      numbers ranging in value from 1 to 65535. The value 0 is reserved.
      Registration procedure is "Expert Review" as defined in <xref
      target="RFC5226"></xref>. The expert MUST verify that the public
      specification which defines the use of GENINFO for the application
      adequately discusses all points mentioned in Section 7 of this
      document.</t>

      <t>The following information MUST be specified in the registry:</t>

      <t><list style="symbols">
          <t>ID Value (1-65535)</t>

          <t>Description</t>

          <t>Allowed in Instance zero (Y/N)</t>

          <t>Reference Specification</t>
        </list></t>
    </section>

    <section title="Acknowledgements">
      <t>The authors would like to thank JP Vasseur and David Ward for
      providing the need to produce this document and Tony Li for making sure
      it was done with appropriate wisdom and prudence.</t>
    </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
          routeing 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;

      &RFC4971;

      &RFC5226;

      &RFC5304;

      &RFC5305;

      &RFC5310;

      &I-D.ietf-isis-mi;
    </references>
  </back>
</rfc>

PAFTECH AB 2003-20262026-04-23 05:27:18