<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-knoll-idr-cos-interconnect-00"
     ipr="full3978" submissionType="IETF">
  <front>
    <title abbrev="BGP CoS Interconnect">BGP Class of Service
    Interconnection</title>

    <author fullname="Thomas Martin Knoll" initials="Th. M." surname="Knoll">
      <organization>Chemnitz University of Technology</organization>

      <address>
        <postal>
          <street>Reichenhainer Str. 70 /331</street>

          <city>Chemnitz</city>

          <code>09126</code>

          <region></region>

          <country>GERMANY</country>
        </postal>

        <phone>+49-371-531-33246</phone>

        <facsimile>+49-371-531-833246</facsimile>

        <email>knoll@etit.tu-chemnitz.de</email>
      </address>
    </author>

    <date day="7" month="July" year="2008" />

    <area>Routing Area</area>

    <workgroup>Inter-Domain Routing Working Group</workgroup>

    <keyword>Draft</keyword>

    <abstract>
      <t>This document focuses on Class of Service Interconnection at
      inter-domain peering points. It specifies two new non-transitive
      attributes, which enable adjacent peers to signal Class of Service
      Capabilities and certain Class of Service admission control Parameters.
      The new "CoS Capability Attribute" is deliberately kept simple and
      denotes the general EF, AF Group and BE forwarding support across the
      advertising AS. The second "CoS Parameter Attribute" is of variable
      length and contains a more detailed description of available forwarding
      behaviours using the PHB id Code encoding. Each PHB id Code is
      associated with rate and size based traffic parameters, which will be
      applied in the ingress AS Border Router for admission control purposes
      to a given forwarding behaviour. The denoted Class of Service forwarding
      support is meant as the AS externally available (transit) Class of
      Service support.</t>
    </abstract>

    <note 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">RFC 2119</xref>.</t>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t>AS interconnection is currently based on best effort peering only.
      BGP-4 <xref target="RFC4271"></xref> is the de-facto peering protocol
      used to exchange reachability information. There is no standardized set
      of supported traffic classes, no standardized packet marking and no
      standardized forwarding behaviour, which cross-domain traffic could rely
      on. QoS policy decisions are taken by AS providers independently and in
      an uncoordinated fashion. However, many AS providers make use of the
      Differentiated Services Architecture <xref target="RFC2475"></xref> as
      AS internal QoS mechanism. Within this architecture, there are 64
      codepoints and an unlimited number of Per Hop Behaviours (PHBs)
      possible. Some PHBs have been defined in separate RFCs, which will be
      focused on in this document.</t>

      <t>A Basic Set of supported Classes, called "Basic CoS" is defined
      inhere, which consists of the primitive "Best Effort (BE)" PHB, the
      "Expedited Forwarding (EF)" PHB <xref target="RFC3246"></xref> and the
      "Assured Forwarding (AF)" PHB Group <xref target="RFC2597"></xref>. AS
      providers, which can support this Basic CoS are asked to signal this
      capability to their peering partners by means of the new CoS Capability
      Attribute defined in <xref target="CoS_Capability_Attribute"></xref> of
      this draft.</t>

      <t>4 AF PHB classes have been defined so far, which will be grouped into
      the generally signalled "AF Group". That is, as long as the AS provider
      can support at least one out of the 4 AF classes in his externally
      supported CoS Set, this AS is regarded as AF capable.</t>

      <t>A second non-transitive attribute is defined in <xref
      target="CoS_Parameter_Attribute"></xref>, which is used for parameter
      signalling about the applied access control within the ingress AS Border
      Router. The reason for this traffic limitation is the fact, that certain
      high quality forwarding behaviours can only be achieved, if the
      percentage of high priority traffic within the traffic mix lies below a
      certain threshold. This attribute informs the peering partner about the
      applied limitation, which can in turn be used to perform traffic shaping
      at the neighbouring AS egress. The attribute allows this limitation
      signalling either associated to the NLRI within the same UPDATE message
      or with "global" scope to describe the generally applied ingress
      limitation.</t>

      <t>Both attributes are likely to be used together, if ingress class
      limitation is used for the respective AS.</t>

      <t>More detailed signalling of forwarding behaviour distinction and
      associated cross-layer marking can be achieved using the QoS Marking
      Attribute approach <xref
      target="I-D.knoll-idr-qos-attribute"></xref>.</t>
    </section>

    <section anchor="CoS_Capability_Attribute"
             title="Definition and Usage of the CoS Capability Attribute">
      <t></t>

      <section title="Extended Community Type">
        <t>The new CoS Capability Attribute is encoded as a BGP Extended
        Community Attribute <xref target="RFC4360"></xref>. Extended Community
        Attributes are transitive optional BGP attribute with Type Code 16. An
        adoption to the simple BGP Community Attribute encoding <xref
        target="RFC1997"></xref> is not defined in this document. The actual
        encoding within the BGP Extended Community Attribute is as
        follows.</t>

        <t>The CoS Capability Attribute is non-transitive and of regular type
        which results in a 1 octet Type field followed by 7 octets for the CoS
        Capability structure. The Type is IANA-assignable (FCFS procedure) and
        marks the community as non-transitive across ASes. The type number has
        been assigned by IANA to 0xYY (0x40-0x7f).</t>

        <figure anchor="Figure_1">
          <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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 1 x x x x x x|                                               |
+-+-+-+-+-+-+-+-+   7 octet CoS Capability Attribute structure  |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
        </figure>

        <t>Note to RFC Editor: The actual type number needs to replace the
        '0xYY (0x40-0x7f)' after the IANA assignment has occurred.</t>
      </section>

      <section title="Structure of the CoS Capability Attribute">
        <t>The CoS Capability Attributes structure is deliberately kept very
        simple and is defined as follows.</t>

        <figure anchor="Figure_2">
          <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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1 1 1| Currently Unused - default to '0'                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Currently Unused - default to '0'|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>

        <t>The Currently Unused bits default to '0' and must be ignored on
        reception.</t>

        <t>Leading "111" encoding.</t>

        <t><list style="hanging">
            <t>This encoding signals the BE, EF and AF Group support of the
            respective AS. The implied Per-Hop-Behaviour Identification Codes
            follow the definition as standardized in <xref
            target="RFC3140"></xref>. The AF Group needs to consist of at
            least one of the available AF1x, AF2x, AF3x and AF4x.</t>
          </list></t>

        <figure anchor="Figure_3">
          <artwork><![CDATA[BE:
  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0   0   0   0   0   0 | 0   0   0   0   0   0   0   0   0   0 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

EF:
  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 1   0   1   1   1   0 | 0   0   0   0   0   0   0   0   0   0 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

AF1x:
  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0   0   1   0   1   0 | 0   0   0   0   0   0   0   0   1   0 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

AF2x:
  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0   1   0   0   1   0 | 0   0   0   0   0   0   0   0   1   0 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

AF3x:
  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0   1   1   0   1   0 | 0   0   0   0   0   0   0   0   1   0 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

AF4x:
  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 1   0   0   0   1   0 | 0   0   0   0   0   0   0   0   1   0 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

]]></artwork>
        </figure>

        <t></t>
      </section>

      <section title="Usage of the CoS Capability Attribute">
        <t>The CoS Capability Attribute is used as primitive means to signal
        the general availability of the set of "Basic CoS" PHBs in the
        advertising AS. The attribute is included within the attribute section
        of an BGP UPDATE message and is therefore associated to the NLRI
        information of the same message. Whether the Basic CoS is available
        and is therefore advertised can easily being judged on for all
        prefixes, which originate from the advertising AS.</t>

        <t>All other reachability information MUST be signalled together with
        this CoS Capability Attribute if they were received together with such
        an Attribute by neighbouring peers.</t>

        <t>NLRI MUST NOT be marked as supporting "Basic CoS" by means of the
        CoS Capability Attribute, if it were not received together with such
        an Attribute.</t>
      </section>
    </section>

    <section anchor="CoS_Parameter_Attribute"
             title="Definition and Usage of the CoS Parameter Attribute">
      <section title="Definition of the CoS Parameter Attribute">
        <t>The CoS Parameter Attribute is an optional non-transitive BGP
        attribute.</t>

        <t>The attribute contains one or more of the following:</t>

        <figure anchor="Figure_4">
          <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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    PHB id Code                |     Flags     | Reserved = '0'|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Peak Rate                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Token Bucket Rate                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Token Bucket Size                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>

        <t>PHB ID:</t>

        <t><list style="hanging">
            <t>This field specifies the targeted Per Hop Behaviour limitations
            and follows the defined encoding of <xref
            target="RFC3140"></xref></t>
          </list></t>

        <t>Flags:</t>

        <figure>
          <artwork><![CDATA[ 0  1  2  3  4  5  6  7
+--+--+--+--+--+--+--+--+
|G |DR|0 |0 |0 |0 |0 |0 |
+--+--+--+--+--+--+--+--+]]></artwork>
        </figure>

        <t><list style="hanging">
            <t>Only two flags are defines. The resulting bits default to '0'
            and must be ignored on reception.</t>

            <t>The 'G' flag signals, whether the limitations have global scope
            on all incoming traffic ('1') or are associated to traffic that is
            destined to destinations within the NLRI of the UPDATE message
            ('0'). NLRI specific limitation will supersede globally signalled
            ones for traffic destined to those NLRI destinations.</t>

            <t>The 'DR' flags signals the applied handling of non-confirming
            traffic. DR='0' signals strict dropping of excess traffic. DR='1'
            signals the performed remarking of excess traffic packets to Best
            Effort traffic marking.</t>
          </list></t>

        <t>Peak Rate, Token Bucket Rate and Token Bucket Size:</t>

        <t><list style="hanging">
            <t>The rates and sizes are given in 4 octet IEEE floating point
            format <xref target="IEEE"></xref> .</t>
          </list></t>

        <t></t>
      </section>

      <section title="Usage of the CoS Parameter Attribute">
        <t>The signalled Parameter as used of PHB id Code based ingress
        limitation. Depending on which PHB id Codes a BGP peer signals in this
        attribute to its neighbour, it is said, that the respective PHB id
        Code is supported and will experience the defined limitations.</t>

        <t>Those limitations can be applied to all incoming traffic of a
        specific PHB id Code (marked as 'G') or only for incoming traffic,
        that is destined for the NLRI of the given UPDATE message.</t>

        <t>The resulting treatment for non-confirming traffic is signalled
        through the 'DR' flag.</t>

        <t>All limitations have AS local scope for the advertising AS and the
        peering AS might or might not adopt its sending behaviour to those
        advertised limitations.</t>
      </section>
    </section>

    <section anchor="Confidentiality" title="Confidentiality Considerations">
      <t>The disclosure of confidential AS intrinsic information by means of
      the signalled Basic CoS support is certainly of low key security
      concern. The disclosure of information through CoS Parameter signalling
      is more detailed. However, the attribute is non-transitive and all
      included parameters are the free choice of each AS provider.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This document defines a new BGP Extended Community Attribute, which
      needs to be assigned a number by IANA within the Extended Community
      Attribute list.</t>

      <t>The new CoS Capability Attribute is a BGP Extended Community
      Attribute of regular type. It is IANA-assignable (FCFS procedure) and is
      non-transitive across ASes.</t>

      <t>An number assignment application within the numbering range of
      0x40-0x7f is made to IANA.</t>

      <t>Note to RFC Editor: this section may be removed on publication as an
      RFC.</t>

      <t>This document defines a second BGP attribute. This attribute is
      optional and non-transitive and need to be assigned an appropriate
      number as well.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>This extension to BGP does not change the underlying security issues
      inherent in the existing BGP.</t>

      <t>The signalled attributes are non-transitive, which limits the reach
      of possibly applied malicious attribute modifications. AS peers, which
      use egress traffic shaper on the signalled limitations should exhaust
      all available BGP security features to make sure, that the signalled
      limitation is actually sent by the adjacent peer.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.1997"?>

      <?rfc include="reference.RFC.2119"?>

      <?rfc include="reference.RFC.2597"?>

      <?rfc include="reference.RFC.3140"?>

      <?rfc include="reference.RFC.3246"?>

      <?rfc include="reference.RFC.4271"?>

      <?rfc include="reference.RFC.4360"?>

      <reference anchor="IEEE">
        <front>
          <title>IEEE Standard for Binary Floating-Point Arithmetic</title>

          <author fullname="" initials="" surname="">
            <organization>IEEE</organization>
          </author>

          <date day="" month="" year="1985" />
        </front>

        <seriesInfo name="ISBN" value="1-5593-7653-8" />
      </reference>
    </references>

    <references title="Informative References">
      <?rfc include="reference.RFC.2475"?>

      <?rfc include="reference.I-D.draft-knoll-idr-qos-attribute-01.xml"?>
    </references>
  </back>
</rfc>