home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / rfc / rfc2216 < prev    next >
Text File  |  1997-10-01  |  54KB  |  1,236 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                         S. Shenker
  8. Request for Comments: 2216                                 J. Wroclawski
  9. Category: Informational                               Xerox PARC/MIT LCS
  10.                                                           September 1997
  11.  
  12.  
  13.              Network Element Service Specification Template
  14.  
  15.  
  16. Status of this Memo
  17.  
  18.    This memo provides information for the Internet community.  It does
  19.    not specify an Internet standard of any kind.  Distribution of this
  20.    memo is unlimited.
  21.  
  22. Abstract
  23.  
  24.    This document defines a framework for specifying services provided by
  25.    network elements, and available to applications, in an internetwork
  26.    which offers multiple qualities of service. The document first
  27.    provides some necessary context -- including relevant definitions and
  28.    suggested data formats -- and then specifies a "template" which
  29.    service specification documents should follow. The specification
  30.    template includes per-element requirements such as the service's
  31.    packet handling behavior, parameters required and made available by
  32.    the service, traffic specification and policing requirements, and
  33.    traffic ordering relationships.  It also includes evaluation criteria
  34.    for elements providing the service, and examples of how the service
  35.    might be implemented (by network elements) and used (by
  36.    applications).
  37.  
  38. Introduction
  39.  
  40.    This document defines the framework used to specify the functionality
  41.    of internetwork system components which support the the ability to
  42.    provide multiple, dynamically selectable qualities of service to
  43.    applications using an internetwork. The behavior of individual
  44.    routers and subnetworks is captured as a set of "services", some or
  45.    all of which may be offered by each element. The concatenation of
  46.    these services along the end-to-end data paths used by an application
  47.    provides overall quality of service control.
  48.  
  49.    The definition of a service states what is required of a router (or,
  50.    more generally, any network element; a router, switch, subnet, etc.)
  51.    which supports a particular service. The service definition also
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58. Shenker & Wroclawski         Informational                      [Page 1]
  59.  
  60. RFC 2216            Network Element Service Template      September 1997
  61.  
  62.  
  63.    specifies parameters used to invoke the service, the relationship
  64.    between those parameters and the service delivered, and the end-to-
  65.    end behavior obtained by concatenating several instances of the
  66.    service.
  67.  
  68.    Each service definition also specifies the interface between that
  69.    service and the environment. This includes the parameters needed to
  70.    invoke the service, informational parameters which the service must
  71.    make available for use by setup, routing, and management mechanisms,
  72.    and information which should be carried between end-nodes and network
  73.    elements by those mechanisms in order to achieve the desired end-to-
  74.    end behavior. However, a service definition does not describe the
  75.    specific protocols or mechanisms used to establish state in the
  76.    network elements for flows that use the described service.
  77.  
  78.    Services defined following the guidelines of this document are
  79.    intended for use both within the global Internet and private IP
  80.    networks. In certain cases a concatenation of network element
  81.    services may be used to provide a range of end-to-end behaviors, some
  82.    more suited to a decentralized internet and some more appropriate for
  83.    a tightly managed private network. This document points out places
  84.    where such distinction may be appropriate.
  85.  
  86.    This document is comprised of three parts.  The first defines some
  87.    terms used both in this document and in the various service
  88.    specification documents.  The second discusses data formats and
  89.    representations.  The third portion of the document describes the
  90.    various components of the service specification template.
  91.  
  92. Definitions
  93.  
  94.    The following terms are used throughout this document. Service
  95.    specification documents should employ the same terms to express these
  96.    concepts.
  97.  
  98.  o Quality of Service (QoS)
  99.  
  100.    In the context of this document, quality of service refers to the
  101.    nature of the packet delivery service provided, as described by
  102.    parameters such as achieved bandwidth, packet delay, and packet loss
  103.    rates. Traditionally, the Internet has offered a single quality of
  104.    service, best-effort delivery, with available bandwidth and delay
  105.    characteristics dependent on instantaneous load. Control over the
  106.    quality of service seen by applications is exercised by adequate
  107.    provisioning of the network infrastructure. In contrast, a network
  108.    with dynamically controllable quality of service allows individual
  109.    application sessions to request network packet delivery
  110.    characteristics according to their perceived needs, and may provide
  111.  
  112.  
  113.  
  114. Shenker & Wroclawski         Informational                      [Page 2]
  115.  
  116. RFC 2216            Network Element Service Template      September 1997
  117.  
  118.  
  119.    different qualities of service to different applications. It should
  120.    be understood that there is a range of useful possibilities between
  121.    the two endpoints of providing no dynamic QoS control at all and
  122.    providing extremely precise and accurate control of QoS parameters.
  123.  
  124.  o Network Element
  125.  
  126.    A "Network Element" (or the equivalent shorter form "Element"), is
  127.    any component of an internetwork which directly handles data packets
  128.    and thus is potentially capable of exercising QoS control over data
  129.    flowing through it. Network elements include routers, subnetworks,
  130.    and end-node operating systems. A QoS-capable network element is one
  131.    which offers one or more of the services defined according to the
  132.    rules given in this document.  Note that this definition, by itself,
  133.    preclude QoS-capable network elements that meet performance goals
  134.    purely through adequate provisioning rather than active admission and
  135.    traffic control mechanisms.  A "QoS-aware" network element is one
  136.    which supports the interfaces (described below) required by the
  137.    service definitions.  Thus, a QoS-aware network element need not
  138.    actually offer any of the services defined according to the format of
  139.    this document; it merely needs to know how to deny service requests.
  140.  
  141.  o Flow
  142.  
  143.    For the purposes of this document a flow is a set of packets
  144.    traversing a network element all of which are covered by the same
  145.    request for control of quality of service. At a given network element
  146.    a flow may consist of the packets from a single application session,
  147.    or it may be an aggregation comprising the combined data traffic from
  148.    a number of application sessions.
  149.  
  150.       NOTE: this definition of a flow is different from that used in
  151.       IPv6, where a flow is defined as those packets with the same
  152.       source address and FlowID.
  153.  
  154.    Mechanisms used to associate a request for quality of service control
  155.    with the packets covered by that request are beyond the scope of this
  156.    document.
  157.  
  158.  o Service
  159.  
  160.    The phrase "service" or "QoS Control Service" describes a named,
  161.    coordinated set of QoS control capabilities provided by a single
  162.    network element.  The definition of a service includes a
  163.    specification of the functions to be performed by the network
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170. Shenker & Wroclawski         Informational                      [Page 3]
  171.  
  172. RFC 2216            Network Element Service Template      September 1997
  173.  
  174.  
  175.    element, the information required by the element to perform these
  176.    functions, and the information made available by the element to other
  177.    elements of the system.  A service is conceptually implemented within
  178.    the "service module" contained within the network element.
  179.  
  180.       NOTE: The above defines a precise meaning for the word "service".
  181.       Service is a word which has a variety of meanings throughout the
  182.       networking community;  the definition of "service" given here
  183.       refers specifically to the actions and responses of a single
  184.       network element such as a router or subnet. This contrasts with
  185.       the more end-to-end oriented definition of the same word seen in
  186.       some other networking contexts.
  187.  
  188.  o Behavior
  189.  
  190.    A "behavior" is the QoS-related end-to-end performance seen by an
  191.    application session. This behavior is the end result of composing the
  192.    services offered by each network element along the path of the
  193.    application's data flow.
  194.  
  195.    When each network element along a data flow path offers the same
  196.    service, it is frequently possible to explain the resulting end-to-
  197.    end behavior in a straightforward fashion. The behavior of a data
  198.    flow path comprised of elements using different services is more
  199.    complicated, and may in fact be undefined. A future version of this
  200.    document may impose additional requirements on the service
  201.    specification relating to multi-service concatenation.
  202.  
  203.  o Characterization
  204.  
  205.    A characterization is a computed approximation of the actual end-to-
  206.    end behavior which would be seen by a flow requesting specific QoS
  207.    services from the network.  By providing additional information to
  208.    the end-nodes before a flow is established, characterizations assist
  209.    the end-nodes in choosing the services to be requested from the
  210.    network.
  211.  
  212.  o Characterization Parameters
  213.  
  214.    Characterizations are computed from a set of characterization
  215.    parameters provided by each network element on the flow's path, and a
  216.    composition function which computes the end-to-end characterization
  217.    from those parameters. The composition function may in practice be
  218.    executed in a distributed fashion by the setup or routing protocol,
  219.    or the characterization parameters may be gathered to a single point
  220.    and the characterization computed at that point.
  221.  
  222.  
  223.  
  224.  
  225.  
  226. Shenker & Wroclawski         Informational                      [Page 4]
  227.  
  228. RFC 2216            Network Element Service Template      September 1997
  229.  
  230.  
  231.    Several characterizations may be computed for a single candidate data
  232.    flow. Conversely, a service may provide no characterizations, and
  233.    under some conditions no characterizations may be available to the
  234.    end-nodes requesting QoS services.
  235.  
  236.  o Composition Function
  237.  
  238.    A composition function accepts characterization parameters as input
  239.    and computes a characterization, as described above.
  240.  
  241.  o Traffic Specification (TSpec)
  242.  
  243.    A Traffic Specification, or TSpec, is a description of the traffic
  244.    pattern for which service is being requested. In general, the TSpec
  245.    forms one side of a "contract" between the data flow and the service.
  246.    Once a service request is accepted, the service module has agreed to
  247.    provide a specific QoS as long as the flow's data traffic continues
  248.    to be accurately described by the TSpec.
  249.  
  250.    As examples, this specification might take the form of a token bucket
  251.    filter (defined below) or an upper bound on the peak rate. Note that
  252.    the traffic specification specifies the flow's *allowed* traffic
  253.    pattern, not the flows *actual* traffic pattern. The behavior of a
  254.    service when a flow's actual traffic does not conform to the traffic
  255.    specification must be defined by the service (see "Policing" below).
  256.  
  257.  o Service Request Specification (RSpec)
  258.  
  259.    A Service Request Specification, or RSpec, is a specification of the
  260.    quality of service a flow wishes to request from a network element.
  261.    The contents of a service request specification is highly specific to
  262.    a particular service. As examples, these specifications might contain
  263.    information about bandwidth allocated to the flow, maximum delays, or
  264.    packet loss rates.
  265.  
  266.  o Setup Protocol
  267.  
  268.    A setup protocol is used to carry QoS-related information from the
  269.    end-nodes requesting QoS control to network elements which must
  270.    exercise that control, and to install and maintain to required QoS
  271.    control state in those network elements.  A setup protocol may also
  272.    be used to collect QoS-related information from interior network
  273.    elements along an application's data flow path for ultimate delivery
  274.    to end nodes. Examples of protocols which perform setup functions are
  275.    RSVP [RFC 2205], ST-II [RFC 1819], and Q.2931.
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282. Shenker & Wroclawski         Informational                      [Page 5]
  283.  
  284. RFC 2216            Network Element Service Template      September 1997
  285.  
  286.  
  287.    Note that other mechanisms, such as network management protocols, may
  288.    also perform this function. The phrase "setup protocol"
  289.    conventionally refers to a protocol with this function as its primary
  290.    purpose.
  291.  
  292.  o Token Bucket
  293.  
  294.    A Token Bucket is a particular form of traffic specification
  295.    consisting of a "token rate" r and a "bucket size" b. Essentially,
  296.    the r parameter specifies the continually sustainable data rate,
  297.    while the b parameter specifies the extent to which the data rate can
  298.    exceed the sustainable level for short periods of time.  More
  299.    specifically, the traffic must obey the rule that over all time
  300.    periods, the amount of data sent cannot exceed rT+b, where T is the
  301.    length of the time period.
  302.  
  303.    Token buckets are further discussed in [PARTRIDGE].
  304.  
  305.  o Token Bucket Filter
  306.  
  307.    A Token Bucket Filter is a filtering or policing function which
  308.    differentiates those packets in a traffic flow which conform to a
  309.    particular token bucket specification from those packets which do
  310.    not. The specific treatment accorded nonconforming packets is not
  311.    specified in this definition; common actions are relegating the
  312.    packet to best effort service, discarding the packet, or marking the
  313.    packet in some fashion.
  314.  
  315.   o Admission Control
  316.  
  317.    Admission control is the process of deciding whether a newly arriving
  318.    request for service from a network element can be granted. This
  319.    action must be performed by any service which wishes to offer
  320.    absolute quantitative bounds on overall performance. It is not
  321.    necessary for services which provide only relative statements about
  322.    performance, such as the Internet's current best-effort service. The
  323.    precise criteria for making the admission control decision are a
  324.    specific to each particular service.
  325.  
  326.  o Policing
  327.  
  328.    Policing is the set of actions triggered when a flow's actual data
  329.    traffic characteristics exceed the expected values given in the
  330.    flow's traffic specification. Services which require policing
  331.    functions to operate correctly must specify both the action to be
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Shenker & Wroclawski         Informational                      [Page 6]
  339.  
  340. RFC 2216            Network Element Service Template      September 1997
  341.  
  342.  
  343.    taken when such discrepancies occur and the locations in the network
  344.    where discrepancies are to be detected.  Examples of such actions
  345.    might include relegating the packet to best effort service, dropping
  346.    packets, reshaping the traffic, or marking non-conforming traffic in
  347.    some fashion.
  348.  
  349.   o Interfaces
  350.  
  351.    The service module conceptually interacts with other portions of the
  352.    network element through a number of interfaces.  The service
  353.    specification document should clearly define the specific data,
  354.    including formats, which moves across each conceptual interface, and
  355.    ensure that the mapping between conceptual interfaces and the
  356.    specific mechanisms of the service being defined are clear.
  357.  
  358.  Data Format and Representation
  359.  
  360.    A service module will import and export a variety of data according
  361.    to the specific requirements of the services the network element
  362.    supports. Each service definition MUST specify the format of each
  363.    such data item in an abstract manner. The information specified must
  364.    be sufficient for the designer of a setup protocol to correctly
  365.    select an appropriate concrete (packet) format for variables
  366.    containing this data. At minimum, the following information must be
  367.    given:
  368.  
  369.      - Type: whether the quantity is an enumeration, a numerical value,
  370.      etc.
  371.  
  372.      - Range: for numerical quantities, the minimum and maximum values
  373.      the quantity must be able to represent. For enumerated quantities,
  374.      an estimate of the maximum number of items which may need be
  375.      enumerated in the future, even if many of the values are currently
  376.      unused.
  377.  
  378.      - Precision: the precision with which a numerical quantity must be
  379.      represented, and whether that precision is absolute (calling for an
  380.      integer quantity) or a percentage of the value (allowing for a
  381.      floating point quantity).
  382.  
  383.    The service definition SHOULD additionally specify a preferred
  384.    concrete format for each data field, in the usual packet-layout
  385.    format used in current Internet Standard documents or in some other
  386.    accepted specification format. If the service definition contains
  387.    these concrete definitions, they should be sufficiently complete and
  388.    detailed to allow the service definition to be incorporated by
  389.    reference into the specifications for setup protocols and other users
  390.    of the specified data.
  391.  
  392.  
  393.  
  394. Shenker & Wroclawski         Informational                      [Page 7]
  395.  
  396. RFC 2216            Network Element Service Template      September 1997
  397.  
  398.  
  399.       NOTE: The wording above is intended to encourage the use of common
  400.       data formats by all protocols carrying data related to a specific
  401.       service, while not mandating this common format or infringing on
  402.       the freedom of protocol specification designers to define data
  403.       representations using alternative mechanisms such as ASN.1 or XDR.
  404.  
  405. Service and Data Element Naming
  406.  
  407.    End-nodes, network elements, setup protocols, and management entities
  408.    within an integrated services internetwork need to exchange
  409.    information about services, service invocation parameters,
  410.    characterization parameters, and the intermediate variables and end
  411.    results of composition functions.  To support this requirement, a
  412.    single uniform namespace is established for services and their
  413.    parameters.
  414.  
  415.    The namespace is a two-level hierarchy:
  416.  
  417.      <service_name>.<parameter_name>.
  418.  
  419.    Each of these elements is a integer numerical quantity.
  420.  
  421.    <Service Name> is an integer in the range 1 to 254. The number space
  422.    is broken into three regions.
  423.  
  424.    Service number 1 is used to indicate that the associated parameter is
  425.    generic", and is not associated with a specific service. This use of
  426.    generic parameters is described more fully in [RFC 2215].
  427.  
  428.    The range from 2 to 127 used to name services defined by the IETF.
  429.    Procedures for allocating service numbers in this region will be
  430.    established by the IETF INT-SERV WG and the IANA. Services designed
  431.    for public use should obtain a number from this space. The minimum
  432.    requirement for doing so is a published RFC following the format
  433.    described in this note.
  434.  
  435.    Service numbers in the region above 127 are reserved for experimental
  436.    or private services. Service designers may allocate numbers from this
  437.    space at random for local experimental use. A policy for global but
  438.    temporary allocation of these numbers may be established in the
  439.    future if necessary.
  440.  
  441.    The value 0 is left unused to allow the direct mapping of parameter
  442.    names to MIB object names, as described below.
  443.  
  444.    The value 255 is reserved to facilitate future expansion of the
  445.    service number space, if required.
  446.  
  447.  
  448.  
  449.  
  450. Shenker & Wroclawski         Informational                      [Page 8]
  451.  
  452. RFC 2216            Network Element Service Template      September 1997
  453.  
  454.  
  455.    <Parameter_name> is a number in the range 1 to 254, allocated on a
  456.    per-service basis.  Within this range, the values 1 to 127 are
  457.    reserved for assignment to parameters with a common, shared meaning
  458.    across all services. These parameters are defined in [RFC 2215].
  459.  
  460.    Numbers for parameters specific to a service are assigned from the
  461.    range 128-254 by the author of the service specification document.
  462.  
  463.    The value 0 is left unused to allow the direct mapping of parameter
  464.    names to MIB object names, as described below.
  465.  
  466.    The value 255 is reserved to facilitate future expansion of the
  467.    parameter number space, if required.
  468.  
  469.    In addition to their uses within the integrated services framework,
  470.    these <service_number>.<parameter_number> pairs should be used as
  471.    last two levels of the MIB name when the corresponding values are
  472.    made available to network management protocols.
  473.  
  474. Specification Document Format
  475.  
  476.    The following portion of this document describes the layout and
  477.    contents of a service specification. Each service specification
  478.    document MUST contain the sections marked [required] below, in the
  479.    order listed. Each document SHOULD contain each of the remaining
  480.    sections in the list below, unless there is a compelling argument
  481.    that the presence of the section is not beneficial. Additional
  482.    material, including references, should be included at the end of the
  483.    document.
  484.  
  485.    Some of these sections are normative, in that they describe specific
  486.    requirements to which conformant implementations must adhere.  Other
  487.    sections are informational in nature, in that they describe necessary
  488.    context and technical considerations important to the implementor of
  489.    a service. The sections, and their nature (required or optional, and
  490.    informational or normative) are listed below:
  491.  
  492.  o Components
  493.  
  494.    The body of a service specification document incorporates the
  495.    following sections:
  496.  
  497.      - End-to-End Behavior [required] [informational]
  498.  
  499.      - Motivation [required]  [informational]
  500.  
  501.      - Network Element Data Handling Requirements [required] [normative]
  502.  
  503.  
  504.  
  505.  
  506. Shenker & Wroclawski         Informational                      [Page 9]
  507.  
  508. RFC 2216            Network Element Service Template      September 1997
  509.  
  510.  
  511.      - Invocation Information [required] [normative]
  512.  
  513.      - Exported Information [required] [normative]
  514.  
  515.      - Policing [required] [normative]
  516.  
  517.      - Ordering and Merging [required] [normative]
  518.  
  519.      - Guidelines for Implementors  [optional] [informational]
  520.  
  521.      - Evaluation Criteria [required] [informational]
  522.  
  523.      - Examples of Implementation [optional] [informational]
  524.  
  525.      - Examples of Use [optional] [informational]
  526.  
  527.  o End-to-end Behavior
  528.  
  529.    This is a description of the behavior that results if all network
  530.    elements along the path offer the same service, invoked with a
  531.    defined set of parameters.
  532.  
  533.    In private networks it will generally be the case that the required
  534.    end-to-end behavior is obtained by concatenation of network elements
  535.    utilizing the same service and making significant use of
  536.    characterizations.
  537.  
  538.    In the global Internet, this will not always be true. End-to-end
  539.    behaviors will frequently be obtained through a concatenation of
  540.    network elements supporting different services, including in some
  541.    cases elements which exercise no QoS control at all. Mechanisms to
  542.    characterize end-to-end behavior in this circumstance are not fully
  543.    established at this time. Future versions of this document may impose
  544.    additional requirements on service specifications to facilitate
  545.    inter-service composition.
  546.  
  547.    This section is for informational purposes only.
  548.  
  549.  o Motivation
  550.  
  551.    This section discusses why this service is being defined. It
  552.    describes what kinds of applications might make use of this service,
  553.    and why this service might be more appropriate for those applications
  554.    than other possible choices. This section is for informational
  555.    purposes only.
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562. Shenker & Wroclawski         Informational                     [Page 10]
  563.  
  564. RFC 2216            Network Element Service Template      September 1997
  565.  
  566.  
  567.  o Network Element Data Handling Requirements
  568.  
  569.    This section contains a description of the QoS properties seen by
  570.    data packets processed by a network element using this service. The
  571.    description must clearly explain what variables are controlled, the
  572.    degree of control exercised, and what aspects of the service's
  573.    handling model are fixed or assumed. Examples of degree of control
  574.    information include "this property must be mathematically assured"
  575.    and "this property should be met under most conditions". An example
  576.    of a stated assumption is "this service is assumed to have extremely
  577.    low packet loss; delay targets must be met using admission control
  578.    rather than by discarding packets when overloaded".
  579.  
  580.    Requirements on packet handling SHOULD, when at all possible, be
  581.    expressed as performance requirements rather than by specifying a a
  582.    particular packet scheduling algorithm. The performance requirements
  583.    might, for example, be a specification of the maximal packet delays
  584.    or the minimal bandwidth share given to a flow.
  585.  
  586.    This section also specifies actions which the packet handling path is
  587.    required to take to actively provide feedback to end-nodes about
  588.    conditions at the network element. Such actions might include
  589.    explicitly generated congestion feedback, indicated either as bits
  590.    set in the header of data packets or separate control messages sent.
  591.  
  592.    When writing this section of the service specification document, the
  593.    authors' goal should be to specify the required behavior as precisely
  594.    as necessary while still leaving adequate room for the implementation
  595.    and architectural tradeoffs appropriate to different circumstances
  596.    and classes of network elements. Successfully achieving this balance
  597.    may require some care.
  598.  
  599.  o Invocation Information
  600.  
  601.    This section describes the set of parameters required by a service
  602.    module to invoke the service, and a description of how the parameter
  603.    values are used by the service module.  For example, a hypothetical
  604.    "bounded delay" service might be described as accepting a request
  605.    indicating a delay target for the network element and the set of
  606.    packets subject to that delay target, and processing packets in the
  607.    given set with a delay of the target value or less.
  608.  
  609.    Necessary invocation information for most services can be broken into
  610.    two parts, the Traffic Specification (TSpec) and the Service Request
  611.    Specification (RSpec). The TSpec gives characteristics of the data
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618. Shenker & Wroclawski         Informational                     [Page 11]
  619.  
  620. RFC 2216            Network Element Service Template      September 1997
  621.  
  622.  
  623.    traffic to be handled, while the Rspec specifies the properties
  624.    desired from the service. For example, a service offering a
  625.    mathematical bound on delay might accept a TSpec giving the traffic
  626.    flow's bandwidth and burstiness specified as a Token Bucket, and an
  627.    RSpec giving the maximum tolerable queueing delay.
  628.  
  629.    A service accepting an invocation request may be thought of as
  630.    entering into a "contract" to provide the service described by the
  631.    RSpec as long as the flow's traffic continues to be described by the
  632.    TSpec. If the flow's traffic pattern falls outside the bounds of the
  633.    TSpec, the QoS provided to the flow may change. The precise nature of
  634.    this change is also described by the service specification (see
  635.    "Policing" below).
  636.  
  637.    The RSPec and TSpec components of the invocation information should
  638.    be specified separately and independently, as they will often be
  639.    generated by different elements of the internetwork
  640.  
  641.    All quantitative information specifications in this section should
  642.    follow the guidelines given in the Data Formats section of this
  643.    document, above.
  644.  
  645.  o Exported Information and Characterization Parameters
  646.  
  647.    This section describes information which must be collected and
  648.    exported by the service module. Exported information is available to
  649.    other modules of the network element, and by extension to setup
  650.    protocols, routing protocols, network management tools, and the like.
  651.  
  652.    Information exported by service modules may be used in several ways.
  653.    For example, quantities such as the amount of link bandwidth
  654.    dedicated to the service and the set of data flows currently
  655.    receiving the service are appropriate pieces of information to make
  656.    available as network management variables.
  657.  
  658.    A service definition may identify a particular subset of the
  659.    information exported by a service module as characterization
  660.    parameters. These characterization parameters may be used to compute
  661.    or estimate the end-to-end behavior of a data flow traversing a
  662.    concatenation of network service elements. They may also be used to
  663.    characterize portions of the path for use by network elements (e.g.,
  664.    in computing the buffer necessary, an element may need to know
  665.    something about the service characteristics of the upstream portion
  666.    of the path). A service which defines characterization parameters
  667.    also specifies the characterizations they are used to generate and
  668.    the composition functions used to generate the characterizations.
  669.  
  670.  
  671.  
  672.  
  673.  
  674. Shenker & Wroclawski         Informational                     [Page 12]
  675.  
  676. RFC 2216            Network Element Service Template      September 1997
  677.  
  678.  
  679.       NOTE: Characterization parameters are identified as such by virtue
  680.       of being the inputs to a service's defined composition functions.
  681.       Because characterization parameters are part of a service's
  682.       overall exported data set, they are also available to other
  683.       functions, such as network management. The discussion below
  684.       relates solely to their use as characterization parameters, and is
  685.       not intended to limit other uses.
  686.  
  687.    Characterization parameters may be relatively static quantities, such
  688.    as the bandwidth available on a specific link, or relatively dynamic
  689.    quantities, such as a running estimation of current packet delay.
  690.  
  691.    Support for a service's defined characterization parameters is
  692.    mandatory. Any network element offering this service must be able to
  693.    measure, compute, or, if allowed by the specification, estimate the
  694.    service's characterization parameters. Service designers are
  695.    encouraged to understand the implications of specifying
  696.    characterization parameters for a service, particularly with respect
  697.    to not unduly restricting the choice of hardware and software
  698.    architectures used to implement the network element.
  699.  
  700.    Characterization parameters are used by composing the values exported
  701.    by each network element along a data flow's path according to a
  702.    composition rule. For each parameter or set of parameters used to
  703.    develop a characterization, the service specification must specify
  704.    the composition rule to be used. These composition rules should
  705.    result in characterizations that are independent of the order in
  706.    which the element are composed; commutativity and associativity are
  707.    sufficient but not necessary conditions for this.
  708.  
  709.    Characterization parameters are available through a general
  710.    interface, and are provided in response to a request from some other
  711.    module, such as a setup protocol or the routing protocol. The
  712.    question of exactly how, or if, a specific protocol (e.g., RSVP) uses
  713.    characterization parameters to generate characterizations is
  714.    described in the specification of that specific protocol.
  715.  
  716.    The correct use of characterization parameters supplied by service
  717.    modules is a function of the setup, routing, or management protocol
  718.    controlling the module. There is no absolute guarantee that
  719.    characterizations will be available to end-nodes desiring to use a
  720.  
  721.    QoS control service. Service designers targeting services for the
  722.    global Internet may wish to ensure that a service is useful even in
  723.    the absence of characterizations, and to exhibit such uses in the
  724.    "Examples" sections of the service description document.
  725.  
  726.  
  727.  
  728.  
  729.  
  730. Shenker & Wroclawski         Informational                     [Page 13]
  731.  
  732. RFC 2216            Network Element Service Template      September 1997
  733.  
  734.  
  735.    Conversely, the availability of characterizations may be mandatory in
  736.    certain circumstances, particularly for private IP networks providing
  737.    tightly controlled qualities of service for specific applications.
  738.    Service designers targeting this environment should particularly
  739.    ensure that the service provides adequate characterization parameters
  740.    and composition functions to meet the needs of target audiences. It
  741.    may be appropriate to specify the same basic service with additional
  742.    characterizations for meeting specific requirements beyond those of
  743.    the global Internet.
  744.  
  745.    Some useful "general" characterization parameters and corresponding
  746.    composition rules are not associated with any specific service.
  747.    These include the speed-of-light latency of communication links and
  748.    available link bandwidth. These general characterization parameters
  749.    are defined in [RFC 2215].
  750.  
  751.    Although every conformant implementation of a service is required to
  752.    provide that service's characterization parameters, it is still
  753.    possible that the desired characterization parameters will not be
  754.    available for composition at all network elements in a path. This
  755.    situation may arise when different network element services are used
  756.    at different points in the end-to-end path, as may be required in a
  757.    heterogeneous internetworking environment. For this reason,
  758.    characterization parameters and composition function results
  759.    conceptually include a "validity flag". A network element which is
  760.    unable to provide the characterization parameter must set this flag,
  761.    and otherwise leave parameter or composed value unchanged. Once set,
  762.    the flag is preserved by the composition function, and serves as an
  763.    indicator of the validity of the data when the final composed result
  764.    is delivered to its destination.
  765.  
  766.    Protocols which transport characterization parameters and composition
  767.    data must define and support a concrete representation for this
  768.    validity flag, as well as for the characterization parameters
  769.    themselves.
  770.  
  771.    NOTE: This service specification template does not allow a service
  772.    definition to *require* that a setup or invocation mechanism used
  773.    with the service perform any function other than transport of
  774.    invocation parameters to the network elements and signalling of
  775.    errors generated by the network elements to the end nodes. A notable
  776.    example of this is that service specification documents may not
  777.    require or assume that characterizations defined in the specification
  778.    are actually computed or presented to the end nodes.
  779.  
  780.    That point notwithstanding, the practical usefulness of a specific
  781.    service may be highly dependent on the presence of some additional
  782.    behavior in the networked system, such as the computation and
  783.  
  784.  
  785.  
  786. Shenker & Wroclawski         Informational                     [Page 14]
  787.  
  788. RFC 2216            Network Element Service Template      September 1997
  789.  
  790.  
  791.    presentation of characterizations to end-nodes or the reliable
  792.    assurance that every network element in the path from sender to
  793.    receivers supports the given service. Service specification authors
  794.    are strongly encouraged to clearly explain the situation of their
  795.    service in this regard. Statements such as:
  796.  
  797.       The characterizations defined by this service serve as useful
  798.       hints to the application. However, the service is specifically
  799.       intended to be useful even if characterizations are not available.
  800.  
  801.    or
  802.  
  803.       The usefulness of this service depends strongly on the delivery of
  804.       both characterizations and the knowledge that all network elements
  805.       on the path support the service. Requests for this service when
  806.       characterizations are not available are likely to lead to
  807.       incorrect or misleading results.
  808.  
  809.    are appropriate. It may also be useful to consider this point in the
  810.    "Examples of Use" section described below.
  811.  
  812.    NOTE: The possibility of modifying the overall architecture to
  813.    provide information about the invoking protocol in a service request,
  814.    and to allow a service to require that the invocation protocol
  815.    support specific additional functionality, is an area of active
  816.    study.
  817.  
  818.  o Policing
  819.  
  820.    This portion of the service description describes the nature of
  821.    policing used to enforce adherence to a flow's Traffic Specification.
  822.    The specification document must specify the following points
  823.  
  824.      - Expected policing action. This is the action taken when packets
  825.      not conforming to the TSpec are detected.  Example actions include
  826.      relegating nonconforming packets to best effort, immediately
  827.      dropping nonconforming packets, delaying these packets until they
  828.      once again "fit" into the TSpec, or "marking" nonconforming packets
  829.      in some way.
  830.  
  831.      - Legality of alternative policing actions. The section must
  832.      specify whether actions not specifically mentioned in
  833.      specification's description of policing behavior are legal. For
  834.      example, a service description which specifies that nonconforming
  835.      packets are to be dropped should state whether an alternate action,
  836.      such as delaying these packets, is acceptable.
  837.  
  838.  
  839.  
  840.  
  841.  
  842. Shenker & Wroclawski         Informational                     [Page 15]
  843.  
  844. RFC 2216            Network Element Service Template      September 1997
  845.  
  846.  
  847.      - Location of policing actions in the internetwork. The description
  848.      of policing must specify where that policing is done. Possibilities
  849.      include "at the edges of the network only", "at every hop",
  850.      "heterogeneous branch points" (points where the branches of a
  851.      multicast tree converge and have different TSpecs reserved
  852.      downstream), and "source merge points" (points where multiple data
  853.      streams covered by a single resource reservation converge). The
  854.      specification should clearly state requirements about topology
  855.      information (for example "this is an edge node" or "this is a
  856.      source merge point") which must be available from the setup
  857.      protocol or another source.
  858.  
  859.      In this section the specification should also specify the legality
  860.      of policing at additional points in the network, beyond those
  861.      listed above.  This is important due to technical effects such as
  862.      are described in the next paragraph.
  863.  
  864.      Applicable additional technical considerations. If policing of data
  865.      flows is required or legal at points other than the flow's first
  866.      entry into the network, the service definition should describe any
  867.      additional technical considerations which affect the design of such
  868.      policing. For example, many potential services will allow a data
  869.      flow to become more bursty as it progresses through the network. If
  870.      such a service allows policing at points other than the network
  871.      edge, the traffic specification describing the flow will have to be
  872.      modified from that given by the application to the network to
  873.      account for this growing burstiness. Otherwise, it is likely that
  874.      the flow will be overpoliced, with packets being penalized
  875.      unnecessarily.
  876.  
  877.  o Ordering and Merging
  878.  
  879.    Ordering and merging come into play when a network element receives
  880.    several invocation requests covering the same data flow. As examples,
  881.    this could occur if several receivers of a multicast data flow
  882.    requested QoS services for that flow using the RSVP setup protocol,
  883.    or if a flow was subject to both a statically installed permanent
  884.    invocation request and a dynamic request from a resource setup
  885.    protocol.
  886.  
  887.    In this situation the service module must be able to answer questions
  888.    about the ordering between different invocation requests, and must be
  889.    able to generate a single new invocation request which meets the
  890.    semantics of the setup protocol and the requirements of all the
  891.    original requesters. Operationally, this is achieved by having the
  892.    invoking protocol ask the service module, given a set of invocation
  893.    requests I1...In, to compute a new request which results in the
  894.    desired behavior.
  895.  
  896.  
  897.  
  898. Shenker & Wroclawski         Informational                     [Page 16]
  899.  
  900. RFC 2216            Network Element Service Template      September 1997
  901.  
  902.  
  903.    Five operations must be defined in this section. These are:
  904.  
  905.      - Ordering. The section must define an ordering relationship
  906.      between the service's TSpecs and RSpecs. This may be a partial
  907.      ordering, in that some TSpecs or RSpecs may be unordered with
  908.      respect to each other.
  909.  
  910.      - Summation. This function computes an invocation request which
  911.      represents the sum of N input invocation requests. Typically this
  912.      function is used to compute the size of a service request adequate
  913.      for a shared reservation for N different flows. It is desirable but
  914.      not required that this function compute the "least possible sum".
  915.  
  916.      - Minimum. This function computes the minimum of two TSpecs.
  917.      Typically this function is used to compute the TSpec for an actual
  918.      service invocation given a target TSpec for the service request and
  919.      a TSpec for the flow's actual traffic pattern. The minimum function
  920.      must compute the smallest TSpec adequate to describe the minimum of
  921.      the requested TSpec and the flow's actual traffic.
  922.  
  923.      - RSVP-Merge function. This function computes the invocation
  924.      request used to request service at an RSVP [RFC 2205] merge point.
  925.      The function must a) compute an appropriate invocation request for
  926.      a set of downstream reservations being merged, and b) generate
  927.      appropriate reservation parameters to be passed upstream by RSVP.
  928.      This function is described further below and in [RFC 2210].
  929.  
  930.      - Least Common Request function. This function computes an
  931.      invocation request sufficient to provide service at least
  932.      equivalent to any one of the original requests passed to the
  933.      function. This function differs from the RSVP-merge function in
  934.      that it simply computes an upper bound. It does not need to compute
  935.      new invocation parameters to be passed upstream by RSVP and cannot
  936.      utilize the second option discussed in "Notes on RSVP Merging"
  937.      below.
  938.  
  939.  oo Notes on Ordering
  940.  
  941.    Typically the ordering relation will be described separately for the
  942.    service's TSpec and RSpec.  An invocation request is ordered with
  943.    respect to another if and only if both its TSpec and its RSpec are
  944.    similarly ordered with respect to each other.
  945.  
  946.    For TSpecs, the basic ordering relation is well defined.  TSpec A is
  947.    substitutable for TSpec B if and only any flow that is compliant with
  948.    TSpec B is also compliant with TSpec A. The service specification
  949.    must explain how to compare two TSpecs to determine whether this is
  950.    true.
  951.  
  952.  
  953.  
  954. Shenker & Wroclawski         Informational                     [Page 17]
  955.  
  956. RFC 2216            Network Element Service Template      September 1997
  957.  
  958.  
  959.    For RSpecs, the ordering relation is dependent on the service. RSpec
  960.    A is substitutable for RSpec B if the quality of service invoked by
  961.    RSpec A is at least as good as the quality of service invoked by
  962.    RSpec B.  Since there is no precise mathematical description of
  963.    "goodness" of quality of service, these ordering relations must be
  964.    spelled out explicitly in the service description.
  965.  
  966.  oo Notes on RSVP Merging
  967.  
  968.    The purpose of the RSVP merging function is to compute an invocation
  969.    request which will provide service to the merged flow at least
  970.    equivalent to that which any of the original requests would obtain
  971.    for its corresponding unmerged flow. This equivalence may be obtained
  972.    in two ways
  973.  
  974.      1) The merged request may be computed as an upper bound on the set
  975.      of original (unmerged) invocation requests. In this case, the
  976.      service offered by the merged request to any particular traffic
  977.      flow is identical to that offered by the largest unmerged request,
  978.      by definition.
  979.  
  980.      2) The merged request may be computed as a value smaller than the
  981.      upper bound on the set of original requests, but the results passed
  982.      upstream may restrict the traffic sources to behavior which makes
  983.      the merged and unmerged requests behave identically.
  984.  
  985.    Note that the merging rules for a particular service may apply either
  986.    option 1 or option 2 to the different components of a TSpec, as
  987.    appropriate.  The decision is typically made as follows:
  988.  
  989.      When a downstream service module instance can tolerate a flow which
  990.      exceeds the parameter, the upper bound should be used. For example,
  991.      if the service supports policing to protect itself against excess
  992.      traffic, the traffic rate supported by a merged reservation might
  993.      be an upper bound across the traffic rates supported by each
  994.      unmerged reservation. The effect of this will be to install the
  995.      merged reservation at the local node and to inform each traffic
  996.      source of the largest traffic rate protected by reservation along
  997.      any *one* distribution path from the source to a receiver.
  998.  
  999.      When a downstream service module instance will not function
  1000.      properly if the parameter is exceeded, the merged function should
  1001.      select the least agressive value of the parameter to install and
  1002.      pass upstream. In this case, the traffic sources will be informed
  1003.      of a parameter value which is appropriate for *all* distribution
  1004.      paths traversed by the traffic flow. For example, services which
  1005.      can handle packets of only limited size can incorporate packet size
  1006.      in the TSpec, and treat the parmeter as described in option 2. The
  1007.  
  1008.  
  1009.  
  1010. Shenker & Wroclawski         Informational                     [Page 18]
  1011.  
  1012. RFC 2216            Network Element Service Template      September 1997
  1013.  
  1014.  
  1015.      effect of this will be to limit packet sizes in the flow to those
  1016.      which can be handled by every instance of the service along the
  1017.      flow's path.
  1018.  
  1019.    This merging calculation must be performed by the service module
  1020.    because it is specific to a particular service.
  1021.  
  1022.  oo Notes on Calculating Upper Bounds
  1023.  
  1024.    Both the RSVP-Merge function and the Least Common Request function
  1025.    may make use of calculated upper bounds on TSpec and RSpec
  1026.    parameters.
  1027.  
  1028.    The calculated upper bound need not be a least upper bound, nor do
  1029.    the various network elements along the path need to all use the same
  1030.    choice of upper bound.  Any selection of invocation parameters Iu is
  1031.    compliant as long as it substitutable for each of the parameters
  1032.    I1...In from which it is calculated.  Intuitively, one set of
  1033.    parameters is substitutable for another if the resulting quality of
  1034.    service is at least as desirable to all applications. A precise
  1035.    definition of this "substitutable for" function; the ordering
  1036.    relation, must be specified in the service definition. (It may be
  1037.    specified as the empty set, in which case merging of dissimilar
  1038.    requests will not be allowed). If the ordering function specified in
  1039.    this section gives a partial order (if it is possible for two RSpecs
  1040.    or TSpecs to be unordered), then a separate upper bound computation
  1041.    for the parmeter must be given as well.
  1042.  
  1043.  oo Notes on Service Substitution
  1044.  
  1045.    This portion of the service description may also note any
  1046.    relationships with other services which are strictly ordered with
  1047.    respect to the service being defined. Two services A and B are
  1048.    strictly ordered if it is always possible to substitute service B for
  1049.    the service A given a set of invocation parameters for service A.
  1050.    This ordering information may be used to allow network elements which
  1051.    provide service B to respond to requests for service A, even if the
  1052.    element does not provide service A directly. If the service
  1053.    specification describes such an inter-service ordering, it MUST also
  1054.    include a description of the invocation parameter mapping function
  1055.    for that ordering.
  1056.  
  1057.    Substitution of of one service for another in cases where they are
  1058.    not strictly ordered is currently not supported. A future version of
  1059.    this document may augment the service specification format to support
  1060.    this capability.
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066. Shenker & Wroclawski         Informational                     [Page 19]
  1067.  
  1068. RFC 2216            Network Element Service Template      September 1997
  1069.  
  1070.  
  1071.  o Guidelines for Implementors
  1072.  
  1073.    Many services may be defined in a manner which allows the range of
  1074.    behavior of a compliant network element to be rather broad.  This
  1075.    section should provide some guidance as to what range of behaviors
  1076.    the author of the service specification expects the community to
  1077.    desire in their implementations.  Because these guidelines depend on
  1078.    such imprecise and undefinable notions at "typical loads", these
  1079.    guidelines cannot be incorporated as part of a strict compliance
  1080.    test. Instead, they are for informational purposes only.
  1081.  
  1082.  o Evaluation Criteria
  1083.  
  1084.    Specific functional behaviors required of an implementation for
  1085.    conformance to a service specification is detailed in the previous
  1086.    sections.  However, the service specifications are intended to allow
  1087.    a wide range of implementations, and these implementations will
  1088.    differ in performance. This section describes tests that can be used
  1089.    to evaluate a network element's implementation of a given service.
  1090.  
  1091.    Implementors of service modules face a number of tradeoffs, and it is
  1092.    unlikely that a single implementation would be considered "best"
  1093.    under all circumstances. For instance, given the same service
  1094.    specification, an implementation appropriate for a low-speed link
  1095.    might target extremely high link utilization, while a different
  1096.    implementation might attempt to reduce non-loaded packet forwarding
  1097.    delay to the minimum at the expense of somewhat lower utilization of
  1098.    the link. The intention of the tests specified in this section should
  1099.    be to probe the tradeoffs made by the implementation designer, and to
  1100.    provide metrics useful to guide the customer's choice of an
  1101.    appropriate implementation for her needs.
  1102.  
  1103.    The tests specified in this section should be designed to operate on
  1104.    a single network element in isolation. This enables their use in a
  1105.    comparative rating system for QoS-aware network elements. In
  1106.    production networks, users will be more concerned with the end-to-end
  1107.    behavior obtained, which will depend not just on the particular
  1108.    network elements selected, but also on other factors such as the
  1109.    setup protocol and the bandwidth of the links. Some user-relevant
  1110.    performance factors are the rate of admission control rejections, the
  1111.    range of services offered, and the packet delay and drop rates in the
  1112.    various service classes.  The form of any standardized end-to-end
  1113.    metrics and measurement tools for integrated service internetworks is
  1114.    not specified by this document or by service specification document
  1115.    which follow the format given here.
  1116.  
  1117.    This section is for informational purposes only.
  1118.  
  1119.  
  1120.  
  1121.  
  1122. Shenker & Wroclawski         Informational                     [Page 20]
  1123.  
  1124. RFC 2216            Network Element Service Template      September 1997
  1125.  
  1126.  
  1127.  o Examples of Implementation
  1128.  
  1129.    This section describes example instantiations of the service.  Often
  1130.    these will just be references to the literature, or brief sketches of
  1131.    how the service could be implemented.  The purposes of the section
  1132.    are to to provide a more concrete sense of the service being
  1133.    specified and to provide pointers and hints to aid the implementor.
  1134.    However, the descriptions in this section are specifically not
  1135.    intended to exclude other implementation strategies.
  1136.  
  1137.    This section is for informational purposes only.
  1138.  
  1139.  o Examples of Use
  1140.  
  1141.    In order to provide more a more concrete sense of how this service
  1142.    might be used, this section describes some example uses of the
  1143.    service, for informational purposes only.  The examples here are not
  1144.    meant to be exhaustive, and do not exclude in any way other uses of
  1145.    the service.
  1146.  
  1147.    This section is for informational purposes only.
  1148.  
  1149. Security Considerations
  1150.  
  1151.    Security considerations are not discussed in this memo.
  1152.  
  1153. References
  1154.  
  1155.    [PARTRIDGE] C. Partridge, Gigabit Networking, Addison Wesley
  1156.    Publishers (1994).
  1157.  
  1158.    [RFC 2215] Shenker, S., and J. Wroclawski, "General Characterization
  1159.    Parameters for Integrated Service Network Elements", RFC 2215,
  1160.    September 1997.
  1161.  
  1162.    [RFC 2205] Braden, R., Ed., et. al., "Resource Reservation Protocol
  1163.    (RSVP) - Version 1 Functional Specification", RFC 2205, September
  1164.    1997.
  1165.  
  1166.    [RFC 2212] Shenker, S., Partridge, C., and R. Guerin, "Specification
  1167.    of Guaranteed Quality of Service", RFC 2212, September 1997.
  1168.  
  1169.    [RFC 2211] Wroclawski, J., "Specification of the Controlled Load
  1170.    Quality of Service", RFC 2211, September 1997.
  1171.  
  1172.    [RFC 1819] Delgrossi, L.,  and L. Berger, Editors, "Internet Stream
  1173.    Protocol Version 2 (ST2) Protocol Specification - Version ST2+", RFC
  1174.    1819, August 1995.
  1175.  
  1176.  
  1177.  
  1178. Shenker & Wroclawski         Informational                     [Page 21]
  1179.  
  1180. RFC 2216            Network Element Service Template      September 1997
  1181.  
  1182.  
  1183.    [RFC 2210] Wroclawski, J., "The Use of RSVP with IETF Integrated
  1184.    Services", RFC 2210, September 1997.
  1185.  
  1186. Authors' Address:
  1187.  
  1188.    Scott Shenker
  1189.    Xerox PARC
  1190.    3333 Coyote Hill Road
  1191.    Palo Alto, CA  94304-1314
  1192.  
  1193.    Phone: 415-812-4840
  1194.    Fax:   415-812-4471
  1195.    EMail: shenker@parc.xerox.com
  1196.  
  1197.  
  1198.    John Wroclawski
  1199.    MIT Laboratory for Computer Science
  1200.    545 Technology Sq.
  1201.    Cambridge, MA  02139
  1202.  
  1203.    Phone: 617-253-7885
  1204.    Fax:   617-253-2673
  1205.    EMail: jtw@lcs.mit.edu
  1206.  
  1207.  
  1208.  
  1209.  
  1210.  
  1211.  
  1212.  
  1213.  
  1214.  
  1215.  
  1216.  
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234. Shenker & Wroclawski         Informational                     [Page 22]
  1235.  
  1236.