One document matched: draft-wu-alto-json-te-00.xml


<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v5 rel. 3 U (http://www.xmlspy.com)
     by Daniel M Kohn (private) -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
]>
<rfc category="std" docName="draft-wu-alto-json-te-00" ipr="trust200902">
  <?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 abbrev="JSON for ALTO TE">JSON Format Extensions for Traffic
    Engineering (TE) performance metrics in the ALTO Information Resource
    Directory</title>

    <author fullname="Qin Wu" initials="Q." surname="Wu">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street>101 Software Avenue, Yuhua District</street>

          <city>Nanjing</city>

          <region>Jiangsu</region>

          <code>210012</code>

          <country>China</country>
        </postal>

        <email>sunseawq@huawei.com</email>
      </address>
    </author>

    <author fullname="Liang Xia" initials="L." surname="Xia">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street>101 Software Avenue, Yuhua District</street>

          <city>Nanjing</city>

          <region>Jiangsu</region>

          <code>210012</code>

          <country>China</country>
        </postal>

        <email>frank.xialiang@huawei.com</email>
      </address>
    </author>

    <date year="2013" />

    <area>TSV Area</area>

    <workgroup>Application-Layer Traffic Optimization Working
    Group</workgroup>

    <keyword>RFC</keyword>

    <keyword>Request for Comments</keyword>

    <keyword>I-D</keyword>

    <keyword>Internet-Draft</keyword>

    <keyword>JavaScript Object Notation, Application-Layer Traffic
    Optimization</keyword>

    <abstract>
      <t>The base ALTO specification defines two properties for cost metric
      attribute in the Cost MAP, including 'hopcount' and 'routingcost'. This
      specification adds five new properties and one new parameter for Traffic
      Engineering(TE) performance related constraint attribute associated with
      cost metric attribute 'routingcost' in the ALTO Information Resource
      Directory: Link Delay, Delay Variation, Packet Loss, Residual Bandwidth,
      Available Bandwidth,linkstate.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>The ALTO protocol [I.D-ietf-alto-protocol] uses a REST-ful design
      [Fielding-Thesis], and encodes its requests and responses using JSON. In
      ALTO architecture [I.D-ietf-alto-protocol], the ALTO server allows alto
      information to be gathered from multiple systems(e.g., routing
      protocol). [I.D-ietf-ospf-te-metric-extensions] describes extensions to
      OSPF TE called "OSPF TE Metric Extensions", that can be used to
      distribute network performance information (such as link delay, delay
      variation, packet loss, residual bandwidth, and available bandwidth).
      The mechanism defined in [I.D-ietf-ospf-te-metric-extensions]can be used
      by an ALTO Server to retrieve the necessary performance information
      supplementing the prefix and network topology data gathered from other
      sources in the underlying network.</t>

      <t>In the ALTO Information Resource Directory, Network and Cost Map are
      two core ALTO Information provided to clients. The TE performance metric
      can be represented using Cost MAP. The base ALTO specification
      [I.D-ietf- alto-protocol] defines one typical cost metric attribute for
      Cost Type in the Cost MAP (i.e.,'routingcost')and uses constraint
      attribute to list additional constraints to which elements of the Cost
      Map are related. This specification adds five new properties and one new
      parameter for constraint attribute associated with 'routingcost' cost
      metric attribute in alto information service: Link Delay, Link Jitter,
      Packet Loss, Residual Bandwidth, Available Bandwidth,linkstate.</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 <xref
      target="RFC2119">RFC2119</xref>.</t>

      <t>Syntax specifications shown here use the augmented Backus-Naur Form
      (ABNF) as described in [RFC5234], and are specified as in the base JSON
      specification [RFC4627].</t>
    </section>

    <section title="Cost Metric Extensions: properties">
      <section title="property: linkdelay">
        <figure>
          <artwork>
Namespace:

property name:  linkdelay

Purpose:  To specify the average link delay between two directly
           connected neighboring peers in the network.

Value type:  A single number value containing an integer component that
              may be prefixed with an optional minus sign, which may
              be followed by a fraction part and/or an exponent part.

Cardinality:  *1

Member parameters:  N/A

Description: This is intended to be a cost constraint attribute used 
together with cost metric attribute ‘routingcost’. ‘routingcost’ may
also be used with other cost constraint attributes that is used to 
specify cost constraints. If ‘linkdelay’ is present, ‘routingcost’ MUST
have at most one ‘linkdelay’. 

Format definition:

  LINKDELAY-param = 
"VALUE”(“gt”/“lt"/”eq”/”ge”/”le”) ("number" / "object")
  LINKDELAY-value =  number / object
     ; Value type and VALUE parameter MUST match.

Examples:
   "data": {
           “cost type”: {
            "cost-mode": "numerical",
            "cost-metric":"routingcost"},
               "constraints" : {"linkdelay"},
               “endpoints”: {
                   "srcs": [ "ipv4:192.0.2.2" ],
                   "dsts": [
                   "ipv4:192.0.2.89",
                   "ipv4:198.51.100.34",
                   "ipv4:203.0.113.45"
                            ]
                               }
             }
   "map": {
           "ipv4:192.0.2.2": {
           "ipv4:192.0.2.89": 0.0[linkdelay eq 0.0],
           "ipv4:198.51.100.34": 15.0[linkdelay eq 3.0],
           "ipv4:203.0.113.45": 1.0[linkdelay eq 12.0],
                 }
             }
</artwork>
        </figure>
      </section>

      <section title="property: linkjitter">
        <figure>
          <artwork>
Namespace:

Property name:  linkjitter

Purpose:  To specify the average link delay variation between two
           directly connected neighboring peers.

Value type:  A single number value containing an integer component that
              may be prefixed with an optional minus sign, which may
              be followed by a fraction part and/or an exponent part.

Cardinality:  *1

Member parameters:  N/A

Description: This is intended to be a constraint attribute value 
used together with ‘routingcost’ cost metric attribute. 
routingcost’ may also be used with other cost constraint a
ttributes that is used to specify cost constraints.If ‘linkjitter’ 
is present, ‘routingcost’ MUST have at most one ‘linkjitter’. 


Format definition:

  LINKJITTER-param = 
  "VALUE”(“gt”/“lt"/”eq”/”ge”/”le”) ("number" / "object")
  LINKJITTER-value =  number / object
     ; Value type and VALUE parameter MUST match.

Examples:

   "data": {
              “cost type”: {
            "cost-mode": "numerical",
            "cost-metric":"routingcost"},
               "constraints" : {"linkdelay",”linkjitter”}
               “endpoints”: {
                   "srcs": [ "ipv4:192.0.2.2" ],
                   "dsts": [
                   "ipv4:192.0.2.89",
                   "ipv4:198.51.100.34",
                   "ipv4:203.0.113.45"
                            ]
                              }
            }
   "map": {
            "ipv4:192.0.2.2": {
            "ipv4:192.0.2.89": 0[linkdelay eq0.0,linkjitter eq0.00],
            "ipv4:198.51.100.34": 5[linkdelay eq3.0,linkjitter eq1.0],
            "ipv4:203.0.113.45":2[linkdelay eq12.0,linkjitter eq5.0],
                                  }
          }
</artwork>
        </figure>
      </section>

      <section title="property: linkloss">
        <figure>
          <artwork>
Namespace:

Property name:  linkloss

Purpose:  To specify a percentage of the total traffic sent over a
          configurable interval between two directly connected
          neighboring peers.

Value type:  A single number value containing an integer component that
             may be prefixed with an optional minus sign, which may
             be followed by a fraction part and/or an exponent part.

Cardinality:  *1

Format definition: This is intended to be a constraint attribute value
 used together with ‘routingcost’ cost metric attribute. 
routingcost’ may also be used with other cost constraint attributes t
hat is used to specify cost constraints. If ‘linkloss’ is present, 
routingcost’ MUST have at most one ‘linkloss’. 

Format definition:

   LINKLOSS-param = 
"VALUE”(“gt”/“lt"/”eq”/”ge”/”le”) ("number" / "object")
   LINKLOSS-value =  number / object
     ; Value type and VALUE parameter MUST match.

Examples:

   "data": {
              “cost type”: {
            "cost-mode": "numerical",
            "cost-metric":"routingcost"},
               "constraints" : {"linkloss"}
               “endpoints”: {
                   "srcs": [ "ipv4:192.0.2.2" ],
                   "dsts": [
                   "ipv4:192.0.2.89",
                   "ipv4:198.51.100.34",
                   "ipv4:203.0.113.45"
                            ]
                                   }
           }
  "map": {
          "ipv4:192.0.2.2": {
          "ipv4:192.0.2.89": 0 [linkloss eq0],
          "ipv4:198.51.100.34": 1 [linkloss eq0.0001],
          "ipv4:203.0.113.45": 0 [linkloss eq0],
                            }
            }
</artwork>
        </figure>
      </section>

      <section title="property: residualbandwidth">
        <figure>
          <artwork>
Namespace:

Property name:  residualbandwith

Purpose:  To specify Maximum Link Bandwidth minus the bandwidth
          currently allocated between two directly connected
          neighboring peers. For a link, residual bandwidth is
          defined to be Maximum Bandwidth minus the bandwidth
          currently allocated to RSVP-TE packets.  For a bundled
          link, residual bandwidth is defined to be the sum of
          the component link residual bandwidths.

Value type:  A single number value containing an integer component that
             may be prefixed with an optional minus sign, which may
             be followed by a fraction part and/or an exponent part.

Cardinality:  *1

Member parameters:  N/A

Description: This is intended to be a constraint attribute value
 used together with ‘routing cost’ cost metric attribute. 
‘routingcost’ may also be used with other cost constraint at
tributes that is used to specify cost constraints.If 
‘residualbw’ is present, ‘routingcost’ MUST have at most
 one ‘residualbw’. 

Format definition:

  RESIDUALBANDWIDTH-param = 
 "VALUE”(“gt”/“lt"/”eq”/”ge”/”le”) ("number" / "object")
  RESIDUALBANDWIDTH-value =  number / object
    ; Value type and VALUE parameter MUST match.

Examples:

   "data": {
              “cost type”: {
            "cost-mode": "numerical",
            "cost-metric":"routingcost"},
               "constraints" : {"residbw"}
               “endpoints”: {
                   "srcs": [ "ipv4:192.0.2.2" ],
                   "dsts": [
                   "ipv4:192.0.2.89",
                   "ipv4:198.51.100.34",
                   "ipv4:203.0.113.45"
                            ]
                                   }
           }
   "map": {
           "ipv4:192.0.2.2": {
           "ipv4:192.0.2.89": 0[residbw eq0.000000],
           "ipv4:198.51.100.34": 5[residbw eq12.5],
           "ipv4:203.0.113.45":2[residbw eq5.9],
                             }
            }
</artwork>
        </figure>
      </section>

      <section title="property: availablebandwidth">
        <figure>
          <artwork>
Namespace:

Property name:  availablebandwith

Purpose:  To specify the available bandwidth on a link between two
          directly connected neighboring peers. For a link, available
          bandwidth is defined to be residual bandwidth  minus the
          measured bandwidth used for the actual forwarding of non-
          RSVP-TE packets.  For a bundled link, available bandwidth
          is defined to be the sum of the component link available
          bandwidths.

Value type:  A single number value containing an integer component that
             may be prefixed with an optional minus sign, which may
             be followed by a fraction part and/or an exponent part.

Cardinality:  *1

Member parameters:  N/A

Description: This is intended to be a constraint attribute value 
used together with ‘routing cost’ cost metric attribute. 
‘routingcost’ may also be used with other cost constraint at
tributes that is used to specify cost constraints.
If ‘availablebw’ is present, ‘routingcost’ MUST have
 at most one ‘availablebw’. 

Format definition:

  AVAILABLEBANDWITH-param = 
 "VALUE”(“gt”/“lt"/”eq”/”ge”/”le”) ("number" / "object")
  AVAILABLEBANDWITH-value =  number / object
    ; Value type and VALUE parameter MUST match.

Examples:

   "data": {
              “cost type”: {
            "cost-mode": "numerical",
            "cost-metric":"routingcost"},
               "constraints" : {"residbw",”availbw”}
               “endpoints”: {
                   "srcs": [ "ipv4:192.0.2.2" ],
                   "dsts": [
                   "ipv4:192.0.2.89",
                   "ipv4:198.51.100.34",
                   "ipv4:203.0.113.45"
                            ]
                                   }
            }
   "map": {
           "ipv4:192.0.2.2": {
           "ipv4:192.0.2.89": 0[residbw eq0,availbw eq0],
           "ipv4:198.51.100.34": 0[residbw eq12.5,availbw eq10.5],
           "ipv4:203.0.113.45":0[residbw eq5.9,availbw eq3.9],
                             }
            }
</artwork>
        </figure>
      </section>
    </section>

    <section title="Cost Metric Extensions: Parameters">
      <t>The following sections define Parameters used within Properties
      definitions.</t>

      <section title="parameter: linkstate">
        <figure>
          <artwork>
Namespace:

Parameter name:  linkstate

Purpose:  Used in a multi-valued property to 
          indicate whether it is steady state
          link performance.

Description:  When a property is multi-valued,
LINKSTATE can be used to construct a steady state
performancetopology for initial tunnel path computation,
or to verify alternative failover paths. The LINSTATE 
is set when the measured value of this parameter exceeds
its configured maximum threshold.  The LINKSTATE is 
cleared when the measured value falls below its 
configured threshold.LINKSTATE should be used 
together with properties we defined in the 
section 3. 

Format definition:

    LINKSTATE-param =  "LINKSTATE=" INDEX-value

    LINKSTATE-value =  integer

Examples:

   object {
         JSONBOOL linkstate;
    } linkdelay;

       "data": {
                  “cost type”:{
               "cost-mode": "numerical",
                "cost-metric":"routingcost"}
                "constraints": {"linkdelay"}
                    endpoints”: {
                   "srcs": [ "ipv4:192.0.2.2" ],
                   "dsts": [
                   "ipv4:192.0.2.89"
                            ]
                                   }
                }
     "map": {
            "ipv4:192.0.2.2": {
            "ipv4:192.0.2.89": 0.0[linkdelay[linkstate eq 0] eq 10],
                                 }
               }
</artwork>
        </figure>
      </section>
    </section>

    <section title="Security Considerations">
      <t>The properties defined in this document present no security
      considerations beyond those in Section 14 of the base ALTO specification
      [draft-ietf-alto-protocol].</t>
    </section>

    <section title="IANA Considerations">
      <t>IANA has added the following entries to the ALTO cost map Properties
      registry, defined in Section 3 of [RFCXXX].</t>

      <figure>
        <artwork>
+-----------+--------------+------------------------+
| Namespace | Property     | Reference              |
+-----------+--------------+------------------------+
|           | linkdelay    | [RFCxxxx], Section 3.1 |
|           | linkjitter   | [RFCxxxx], Section 3.2 |
|           | linkloss     | [RFCxxxx], Section 3.3 |
|           |  residbw     | [RFCxxxx], Section 3.4 |
|           |  availbw     | [RFCxxxx], Section 3.5 |
+-----------+--------------+------------------------+
</artwork>
      </figure>

      <t>IANA has added the following entries to the " ALTO cost map
      Parameters" registry, defined in [RFCxxxx] Section 4.1.</t>

      <figure>
        <artwork>
+-------+------------------------+------------------------+
| Name- |                        |                        |
| space | Parameter              | Reference              |
+-------+------------------------+------------------------+
|       | LINKSTATE              | [RFCxxxx], Section 4.1 |
+-------+------------------------+------------------------+
</artwork>
      </figure>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <reference anchor="RFC2119">
        <front>
          <title abbrev="RFC Key Words">Key words for use in RFCs to Indicate
          Requirement Levels</title>

          <author fullname="Scott Bradner" initials="S." surname="Bradner">
            <organization>Harvard University</organization>

            <address>
              <postal>
                <street>1350 Mass. Ave.</street>

                <street>Cambridge</street>

                <street>MA 02138</street>
              </postal>

              <phone>- +1 617 495 3864</phone>

              <email>sob@harvard.edu</email>
            </address>
          </author>

          <date month="March" year="1997" />

          <area>General</area>

          <keyword>keyword</keyword>

          <abstract>
            <t>In many standards track documents several words are used to
            signify the requirements in the specification. These words are
            often capitalized. This document defines these words as they
            should be interpreted in IETF documents. Authors who follow these
            guidelines should incorporate this phrase near the beginning of
            their document: <list>
                <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 RFC 2119.</t>
              </list></t>

            <t>Note that the force of these words is modified by the
            requirement level of the document in which they are used.</t>
          </abstract>
        </front>
      </reference>

      <reference anchor="RFC5234">
        <front>
          <title>Augmented BNF for Syntax Specifications: ABNF</title>

          <author fullname="D.Crocker" initials="D." surname="Crocker">
            <organization></organization>
          </author>

          <date month="January" year="2008" />
        </front>

        <seriesInfo name="RFC" value="5234" />
      </reference>

      <reference anchor="RFC4627">
        <front>
          <title>The application/json Media Type for JavaScript Object
          Notation (JSON)</title>

          <author fullname="D. Crockford" initials="D." surname="Crockford">
            <organization></organization>
          </author>

          <date month="July" year="2006" />
        </front>

        <seriesInfo name="RFC" value="4627" />
      </reference>

      <reference anchor="ALTO">
        <front>
          <title>ALTO Protocol</title>

          <author fullname="R. Alimi" initials="R." surname="Alimi">
            <organization></organization>
          </author>

          <date month="May" year="2013" />
        </front>

        <seriesInfo name="ID" value="draft-ietf-alto-protocol-16" />
      </reference>

      <reference anchor="OSPF">
        <front>
          <title>OSPF Traffic Engineering (TE) Metric Extensions</title>

          <author fullname="S. Giacalone" initials="S." surname="Giacalone">
            <organization></organization>
          </author>

          <date month="June" year="2013" />
        </front>

        <seriesInfo name="ID" value="draft-ietf-ospf-te-metric-extensions-04" />
      </reference>
    </references>
  </back>
</rfc>

PAFTECH AB 2003-20262026-04-24 01:22:03