home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / rfc / rfc2215 < prev    next >
Text File  |  1997-10-01  |  40KB  |  900 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                        S. Shenker
  8. Request for Comments: 2215                                J. Wroclawski
  9. Category: Standards Track                            Xerox PARC/MIT LCS
  10.                                                          September 1997
  11.  
  12.  
  13.                 General Characterization Parameters for
  14.                   Integrated Service Network Elements
  15.  
  16.  
  17. Status of this Memo
  18.  
  19.    This document specifies an Internet standards track protocol for the
  20.    Internet community, and requests discussion and suggestions for
  21.    improvements.  Please refer to the current edition of the "Internet
  22.    Official Protocol Standards" (STD 1) for the standardization state
  23.    and status of this protocol.  Distribution of this memo is unlimited.
  24.  
  25. Abstract
  26.  
  27.    This memo defines a set of general control and characterization
  28.    parameters for network elements supporting the IETF integrated
  29.    services QoS control framework. General parameters are those with
  30.    common, shared definitions across all QoS control services.
  31.  
  32. 1. Introduction
  33.  
  34.    This memo defines the set of general control and characterization
  35.    parameters used by network elements supporting the integrated
  36.    services framework.  "General" means that the parameter has a common
  37.    definition and shared meaning across all QoS control services.
  38.  
  39.    Control parameters are used by applications to provide information to
  40.    the network related to QoS control requests. An example is the
  41.    traffic specification (TSpec) generated by application senders and
  42.    receivers.
  43.  
  44.    Characterization parameters are used to discover or characterize the
  45.    QoS management environment along the path of a packet flow requesting
  46.    active end-to-end QoS control.  These characterizations may
  47.    eventually be used by the application requesting QoS control, or by
  48.    other network elements along the path. Examples include information
  49.    about which QoS control services are available along a network path
  50.    and estimates of the available path bandwidth.
  51.  
  52.    Individual QoS control service specifications may refer to these
  53.    parameter definitions as well as defining additional parameters
  54.    specific to the needs of that service.
  55.  
  56.  
  57.  
  58. Shenker & Wroclawski        Standards Track                     [Page 1]
  59.  
  60. RFC 2215          General Characterization Parameters     September 1997
  61.  
  62.  
  63.    Parameters are assigned machine-oriented ID's using a method
  64.    described in [RFC 2216] and summarized here.  These ID's may be used
  65.    within protocol messages (e.g., as described in [RFC 2210]) or
  66.    management interfaces to describe the parameter values present. Each
  67.    parameter ID is composed from two numerical fields, one identifying
  68.    the service associated with the parameter (the <service_number>), and
  69.    the other (the <parameter_number>) identifying the parameter itself.
  70.    Because the definitions of the parameters defined in this note are
  71.    common to all QoS control services, the <parameter_number> values for
  72.    the parameters defined here are assigned from the "general
  73.    parameters" range (1 - 127).
  74.  
  75.       NOTE: <parameter_numbers> in the range 128 - 254 name parameters
  76.       with definitions specific to a particular QoS control service. In
  77.       contrast to the general parameters described here, it is necessary
  78.       to consider both the <service_number> and <parameter_number> to
  79.       determine the meaning of the parameter.
  80.  
  81.       Service number 1 is reserved for use as described in Section 2 of
  82.       this note. Service numbers 2 through 254 will be allocated to
  83.       individual QoS control services. Currently, Guaranteed service
  84.       [RFC 2212] is allocated number 2, and Controlled-load service [RFC
  85.       2211] is allocated number 5.
  86.  
  87.    In this note, the textual form
  88.  
  89.                     <service_number, parameter_number>
  90.  
  91.    is used to write a service_number, parameter_number pair.  The range
  92.    of possible of service_number and parameter_number values specified
  93.    in [RFC 2216] allow the parameter ID to directly form the tail
  94.    portion of a MIB object ID representing the parameter. This
  95.    simplifies the task of making parameter values available to network
  96.    management applications.
  97.  
  98.    The definition of each parameter used to characterize a path through
  99.    the network describes two types of values; local and composed.  A
  100.    Local value gives information about a single network element.
  101.    Composed values reflect the running composition of local values along
  102.    a path, specified by some composition rule.  Each parameter
  103.    definition specifies the composition rule for that parameter. The
  104.    composition rule tells how to combine an incoming composed value
  105.    (from the already-traversed portion of the path) and the local value,
  106.    to give a new composed value which is passed to the next network
  107.    element in the path. Note that the composition may proceed either
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Shenker & Wroclawski        Standards Track                     [Page 2]
  115.  
  116. RFC 2215          General Characterization Parameters     September 1997
  117.  
  118.  
  119.    downstream, toward the receiver(s), or upstream, toward the sender.
  120.    Each parameter may give only one definition for the local value, but
  121.    may potentially give more than one definition for composition rules
  122.    and composed values. This is because it may be useful to compose the
  123.    same local value several times following different composition rules.
  124.  
  125.    Because characterization parameters are used to compute the
  126.    properties of a specific path through the internetwork, all
  127.    characterization parameter definitions are conceptually "per-next-
  128.    hop", as opposed to "per interface" or "per network element".  In
  129.    cases where the network element is (or is controlling) a shared media
  130.    or large-cloud subnet, the element may need to provide different
  131.    values for different next-hops within the cloud.  In practice, it may
  132.    be appropriate for vendors to choose and document a tolerance range,
  133.    such that if all next-hop values are within the tolerance range only
  134.    a single value need be stored and provided.
  135.  
  136.    Local and composed characterization parameter values have distinct
  137.    ID's so that a network management entity can examine the value of
  138.    either a local or path-composed parameter at any point within the
  139.    network.
  140.  
  141.    Each parameter definition includes a description of the minimal
  142.    properties, such as range and precision, required of any wire
  143.    representation of that parameter's values. Each definition also
  144.    includes an XDR [RFC 1832] description of the parameter, describing
  145.    an appropriate external (wire) data representation for the
  146.    parameter's values. This dual definition is intended to encourage a
  147.    common wire representation format whenever possible, while still
  148.    allowing other representations when required by the specific
  149.    circumstances (e.g., ASN.1 within SNMP).
  150.  
  151.    The message formats specified in [RFC 2210] for use with the RSVP
  152.    setup protocol use the XDR data representation parameters.
  153.  
  154.    All of the parameters described in this note are mandatory, in the
  155.    sense that a network element claiming to support integrated service
  156.    must recognize arriving values in setup and management protocol
  157.    messages, process them correctly, and export a reasonable value in
  158.    response. For some parameters, the specification requires that the
  159.    network element compute and export an *accurate* local value. For
  160.    other parameters, it is acceptable for the network element to
  161.    indicate that it cannot compute and export an accurate local value.
  162.    The definition of these parameters provides a reserved value which
  163.    indicates "indeterminate" or "invalid". This value signals that an
  164.    element cannot process the parameter accurately, and consequently
  165.    that the result of the end-to-end composition is also questionable.
  166.  
  167.  
  168.  
  169.  
  170. Shenker & Wroclawski        Standards Track                     [Page 3]
  171.  
  172. RFC 2215          General Characterization Parameters     September 1997
  173.  
  174.  
  175.       NOTE (temporary): Previous versions of this and the RSVP use
  176.       document used both the reserved-value approach and a separate
  177.       INVALID flag to record this fact.  Now, the reserved-value
  178.       approach is used exclusively. This is so that any protocol which
  179.       retrieves a parameter value, including SNMP, can carry the invalid
  180.       indication without needing a separate flag. The INVALID flag
  181.       remains in the RSVP message format but is reserved for use only
  182.       with a possible future service-composition scheme.
  183.  
  184. 2. Default and Service-Specific Values for General Parameters
  185.  
  186.    General parameters have a common *definition* across all QoS control
  187.    services. Frequently, the same *value* of a general parameter will be
  188.    correct for all QoS control services offered by a network element. In
  189.    this circumstance, there is no need to export a separate copy of the
  190.    value for each QoS control service; instead the node can export one
  191.    number which applies to all supported services.
  192.  
  193.    A general parameter value which applies to all services supported at
  194.    a network node is called a default or global value. For example, if
  195.    all of the QoS control services provided at a node support the same
  196.    maximum packet size, the node may export a single default value for
  197.    the PATH_MTU parameter described in Section 3, rather than providing
  198.    a separate copy of the value for each QoS control service. In the
  199.    common case, this reduces both message size and processing overhead
  200.    for the setup protocol.
  201.  
  202.    Occasionally an individual service needs to report a value differing
  203.    from the default value for a particular general parameter. For
  204.    example, if the implementation of Guaranteed Service [RFC 2212] at a
  205.    router is restricted by scheduler or hardware considerations to a
  206.    maximum packet size smaller than supported by the router's best-
  207.    effort forwarding path, the implementation may wish to export a
  208.    "service-specific" value of the PATH_MTU parameter so that
  209.    applications using the Guaranteed service will function correctly.
  210.  
  211.    In the example above, the router might supply a value of 1500 for the
  212.    default PATH_MTU parameter, and a value of 250 for the PATH_MTU
  213.    parameter applying to guaranteed service. In this case, the setup
  214.    protocol providing path characterization carries (and delivers to the
  215.    application) both a value for Guaranteed service and a value for
  216.    other services.
  217.  
  218.    The distinction between default and service-specific parameter values
  219.    makes no sense for non-general parameters (those defined by a
  220.    specific QoS control service, rather than this note), because both
  221.    the definition and value of the parameter are always specific to the
  222.    particular service.
  223.  
  224.  
  225.  
  226. Shenker & Wroclawski        Standards Track                     [Page 4]
  227.  
  228. RFC 2215          General Characterization Parameters     September 1997
  229.  
  230.  
  231.    The distinction between default and service-specific values for
  232.    general parameters is reflected in the parameter ID name space.  This
  233.    allows network nodes, setup protocols, and network management tools
  234.    to distinguish default from service-specific values, and to determine
  235.    which service a service-specific parameter value is associated with.
  236.  
  237.    Service number 1 is used to indicate the default value. A parameter
  238.    value identified by the ID:
  239.  
  240.                            <1, parameter_number>
  241.  
  242.    is a default value, which applies to all services unless it is
  243.    overridden by a service-specific value for the same parameter.
  244.  
  245.    A parameter value identified by the ID:
  246.  
  247.                     <service_number, parameter_number>
  248.  
  249.    where service_number is not equal to 1, is a service-specific value.
  250.    It applies only to the service identified by service_number.
  251.  
  252.    These service-specific values are also called override values.  This
  253.    is because when both service-specific and default values are present
  254.    for a parameter, the service-specific value overrides the default
  255.    value (for the service to which it applies). The rules for composing
  256.    service-specific and global general parameters support this override
  257.    capability.  The basic rule is to use the service-specific value if
  258.    it exists, and otherwise the global value.
  259.  
  260.    A complete summary of the characterization parameter composition
  261.    process is given below. In this summary, the "arriving value" is the
  262.    incompletely composed parameter value arriving from a neighbor node.
  263.    The "local value" is the (global or service-specific) value made
  264.    available by the local node. The "result" is the newly composed value
  265.    to be sent to the next node on the data path.
  266.  
  267.      1. Examine the <service_number, parameter_number> pair associated
  268.      with the arriving value. This information is conveyed by the setup
  269.      protocol together with the arriving value.
  270.  
  271.      2. If the arriving value is for a parameter specific to a single
  272.      service (this is true when the parameter_number is larger than
  273.      128), compose the arriving value with the local value exported by
  274.      the specified service, and pass the result to the next hop. In this
  275.      case there is no need to consider global values, because the
  276.      parameter itself is specific to just one service.
  277.  
  278.  
  279.  
  280.  
  281.  
  282. Shenker & Wroclawski        Standards Track                     [Page 5]
  283.  
  284. RFC 2215          General Characterization Parameters     September 1997
  285.  
  286.  
  287.      3. If the arriving value is a service-specific value for a
  288.      generally defined parameter (the parameter_number is 127 or less,
  289.      and the service_number is other than 1), and the local
  290.      implementation of that service also exports a service-specific
  291.      value for the parameter, compose the service-specific arriving
  292.      value and the service-specific local value of the parameter, and
  293.      pass the result as a service-specific value to the next-hop node.
  294.  
  295.      4. If the arriving value is a service-specific value for a general
  296.      parameter (the parameter_number is 127 or less, and the
  297.      service_number is other than 1), and the local implementation of
  298.      that service does *not* export a service-specific value, compose
  299.      the service-specific arriving value with the global value for that
  300.      parameter exported by the local node, and pass the result as a
  301.      service-specific value to the next-hop node.
  302.  
  303.      5. If the arriving value is a global value for a general parameter
  304.      (parameter_number is 127 or less, and the service_number is 1), and
  305.      the local implementation of *any* service exports a service-
  306.      specific value for that general parameter, compose the arriving
  307.      (global) value with the service-specific value for that parameter
  308.      exported by the local service, and pass the result as a service-
  309.      specific value to the next-hop node. This will require adding a new
  310.      data field to the message passed to the next hop, to hold the newly
  311.      generated service-specific value. Repeat this process for each
  312.      service that exports a service-specific value for the parameter.
  313.  
  314.      6. If the arriving value is a global value for a general parameter
  315.      (the service_number is 1, and the parameter_number is 127 or less),
  316.      compose the arriving (global) value with the global parameter value
  317.      exported by the local node, and pass the result as a global
  318.      (service 1) value to the next-hop node. This step is performed
  319.      whether or not any service-specific values were generated and
  320.      exported in step 5.
  321.  
  322. 3. General Parameter Definitions
  323.  
  324.  3.1 NON-IS_HOP flag parameter
  325.  
  326.    This parameter provides information about the presence of network
  327.    elements which do not implement QoS control services along the data
  328.    path.
  329.  
  330.    The local value of the parameter is 1 if the network element does not
  331.    implement the relevant QoS control service, or knows that there is a
  332.    break in the chain of elements which implement the service.  The
  333.    local parameter is 0 otherwise.  The local parameter is assigned
  334.    parameter_number 1.
  335.  
  336.  
  337.  
  338. Shenker & Wroclawski        Standards Track                     [Page 6]
  339.  
  340. RFC 2215          General Characterization Parameters     September 1997
  341.  
  342.  
  343.    The composition rule for this parameter is the OR function. A
  344.    composed parameter value of 1 arriving at the endpoint of a path
  345.    indicates that at least one point along the path does not offer the
  346.    indicated QoS control service.  The parameter_number for the composed
  347.    quantity is 2.
  348.  
  349.    The global NON_IS_HOP flag parameter thus has the ID <1,2>. If this
  350.    flag is set, it indicates that one or more network elements along the
  351.    application's data path does not support the integrated services
  352.    framework at all. An example of such an element would be an IP router
  353.    offering only best-effort packet delivery and not supporting any
  354.    resource reservation requests.
  355.  
  356.    Obviously, a network element which does not support this
  357.    specification will not know to set this flag.  The actual
  358.    responsibility for determining that a network node does not support
  359.    integrated services may fall to the network element, the setup
  360.    protocol, or a manual configuration operation and is dependent on
  361.    implementation and usage.  This calculation must be conservative.
  362.    For example, a router sending packets into an IP tunnel must assume
  363.    that the tunneled packets will not receive QoS control services
  364.    unless it or the setup protocol can prove otherwise.
  365.  
  366.    Service-specific versions of the NON_IS_HOP flag indicate that one or
  367.    more network elements along a path don't support the particular
  368.    service. For example, the flag parameter identified by ID <2,2> being
  369.    set indicates that some network element along the path does not
  370.    support the Guaranteed service, though it might support another
  371.    service such as Controlled-Load.
  372.  
  373.    If the global NON_IS_HOP flag <1,2> is set for a path, the receiver
  374.    (network element or application) should consider the values of all
  375.    other parameters defined in this specification, including service-
  376.    specific NON_IS_HOP flags, as possibly inaccurate. If a service
  377.    specific NON_IS_HOP flag is set for a path, the receiver should
  378.    consider the values of all other parameters associated with that
  379.    service as possibly inaccurate.
  380.  
  381.    The NON_IS_HOP parameter may be represented in any form which can
  382.    express boolean true and false. However, note that a network element
  383.    must set this flag precisely when it does *not* fully understand the
  384.    format or data representation of an arriving protocol message
  385.    (because it does not support the specified service). Therefore, the
  386.    data representation used for this parameter by setup and management
  387.    protocols must allow the parameter value to be read and set even if
  388.    the network element cannot otherwise parse the protocol message.
  389.  
  390.  
  391.  
  392.  
  393.  
  394. Shenker & Wroclawski        Standards Track                     [Page 7]
  395.  
  396. RFC 2215          General Characterization Parameters     September 1997
  397.  
  398.  
  399.    An appropriate XDR description of this parameter is:
  400.  
  401.                              bool NON_IS_HOP;
  402.  
  403.    However, the standard XDR data encoding for this description will not
  404.    meet the requirement described above unless other restrictions are
  405.    placed on message formats. An alternative data representation may be
  406.    more appropriate.
  407.  
  408.       NOTE: The message format described for RSVP in [RFC 2210] carries
  409.       this parameter as a single-bit flag, referred to as the "break
  410.       bit".
  411.  
  412.  3.2 NUMBER_OF_IS_HOPS
  413.  
  414.    IS stands for "integrated services aware".  An integrated services
  415.    aware network element is one that conforms to the various
  416.    requirements described in this and other referenced documents.  The
  417.    network element need not offer a specific service, but if it does it
  418.    must support and characterize the service in conformance with the
  419.    relevant specification, and if it does not it must correctly set the
  420.    NON_IS_HOP flag parameter for the service. For completeness, the
  421.    local parameter is assigned the parameter_number 3.
  422.  
  423.    The composition rule for this parameter is to increment the counter
  424.    by one at each IS-aware hop.  This quantity, when composed end-to-
  425.    end, informs the endpoint of the number of integrated-services aware
  426.    network elements traversed along the path.  The parameter_number for
  427.    this composed parameter is 4.
  428.  
  429.    Values of the composed parameter will range from 1 to 255, limited by
  430.    the bound on IP hop count.
  431.  
  432.    The XDR representation of this parameter is:
  433.  
  434.                       unsigned int NUMBER_OF_IS_HOPS;
  435.  
  436.  3.3. AVAILABLE_PATH_BANDWIDTH
  437.  
  438.    This parameter provides information about the bandwidth available
  439.    along the path followed by a data flow.  The local parameter is an
  440.    estimate of the bandwidth the network element has available for
  441.    packets following the path.  Computation of the value of this
  442.    parameter should take into account all information available to the
  443.    network element about the path, taking into consideration
  444.    administrative and policy controls on bandwidth, as well as physical
  445.    resources.
  446.  
  447.  
  448.  
  449.  
  450. Shenker & Wroclawski        Standards Track                     [Page 8]
  451.  
  452. RFC 2215          General Characterization Parameters     September 1997
  453.  
  454.  
  455.       NOTE: This parameter should reflect, as closely as possible, the
  456.       actual bandwidth available to packets following a path. However,
  457.       the bandwidth available may depend on a number of factors not
  458.       known to the network element until a specific QoS request is in
  459.       place, such as the destination(s) of the packet flow, the service
  460.       to be requested by the flow, or external policy information
  461.       associated with a reservation request.  Because the parameter must
  462.       in fact be provided before any specific QoS request is made, it is
  463.       frequently difficult to provide the parameter accurately. In
  464.       circumstances where the parameter cannot be provided accurately,
  465.       the network element should make the best attempt possible, but it
  466.       is acceptable to overestimate the available bandwidth by a
  467.       significant amount.
  468.  
  469.    The parameter_number for AVAILABLE_PATH_BANDWIDTH is 5. The global
  470.    parameter <1, 5> is an estimate of the bandwidth available to any
  471.    packet following the path, without consideration of which (if any)
  472.    QoS control service the packets may be subject to.
  473.  
  474.    In cases where a particular service is administratively or
  475.    technically restricted to a limited portion of the overall available
  476.    bandwidth, the service module may wish to export an override
  477.    parameter which specifies this smaller bandwidth value.
  478.  
  479.    The composition rule for this parameter is the MIN function. The
  480.    composed value is the minimum of the network element's value and the
  481.    previously composed value. This quantity, when composed end-to-end,
  482.    informs the endpoint of the minimal bandwidth link along the path
  483.    from sender to receiver.  The parameter_number for the composed
  484.    minimal bandwidth along the path is 6.
  485.  
  486.    Values of this parameter are measured in bytes per second.  The
  487.    representation must be able to express values ranging from 1 byte per
  488.    second to 40 terabytes per second, about what is believed to be the
  489.    maximum theoretical bandwidth of a single strand of fiber.
  490.  
  491.    Particularly for large bandwidths, only the first few digits are
  492.    significant, so the use of a floating point representation, accurate
  493.    to at least 0.1%, is encouraged.
  494.  
  495.    The XDR representation for this parameter is:
  496.  
  497.                       float AVAILABLE_PATH_BANDWIDTH;
  498.  
  499.    For values of this parameter only valid non-negative floating point
  500.    numbers are allowed. Negative numbers (including "negative zero"),
  501.    infinities, and NAN's are not allowed.
  502.  
  503.  
  504.  
  505.  
  506. Shenker & Wroclawski        Standards Track                     [Page 9]
  507.  
  508. RFC 2215          General Characterization Parameters     September 1997
  509.  
  510.  
  511.       NOTE: An implementation which utilizes general-purpose hardware or
  512.       software IEEE floating-point support may wish to verify that
  513.       arriving parameter values meet these requirements before using the
  514.       values in floating-point computations, in order to avoid
  515.       unexpected exceptions or traps.
  516.  
  517.    If the network element cannot or chooses not to provide an estimate
  518.    of path bandwidth, it may export a local value of zero for this
  519.    parameter.  A network element or application receiving a composed
  520.    value of zero for this parameter must assume that the actual
  521.    bandwidth available is unknown.
  522.  
  523.  3.4 MINIMUM_PATH_LATENCY
  524.  
  525.    The local parameter is the latency of the packet forwarding process
  526.    associated with the network element, where the latency is defined to
  527.    be the *smallest* possible packet delay added by the network element.
  528.    This delay results from speed-of-light propagation delay, from packet
  529.    processing limitations, or both. It does not include any variable
  530.    queuing delay which may be present.
  531.  
  532.    The purpose of this parameter is to provide a baseline minimum path
  533.    latency for use with services which provide estimates or bounds on
  534.    additional path delay, such as Guaranteed [RFC 2212].  Together with
  535.    the queuing delay bound offered by Guaranteed and similar services,
  536.    this parameter gives the application knowledge of both the minimum
  537.    and maximum packet delivery delay.  Knowing both the minimum and
  538.    maximum latency experienced by data packets allows the receiving
  539.    application to accurately compute its de-jitter buffer requirements.
  540.  
  541.    Note that the quantity characterized by this parameter is the
  542.    absolute smallest possible value for the packet processing and
  543.    transmission latency of the network element. This value is the
  544.    quantity required to provide the end hosts with jitter bounds. The
  545.    parameter does *not* provide an upper-bound estimate of minimum
  546.    latency, which might be of interest for best-effort traffic and QoS
  547.    control services which do not explicitly offer delay bounds. In other
  548.    words, the parameter will always underestimate, rather than
  549.    overestimate, latency, particularly in multicast and large cloud
  550.    situations.
  551.  
  552.    When packets traversing a network element may experience different
  553.    minimal latencies over different paths, this parameter should, if
  554.    possible, report an accurate latency value for each path. For
  555.    example, when an ATM point-multipoint virtual circuit is used to
  556.    implement IP multicast, the mechanism that implements this parameter
  557.    for the ATM cloud should ideally compute a separate value for each
  558.    destination. Doing this may require cooperation between the ingress
  559.  
  560.  
  561.  
  562. Shenker & Wroclawski        Standards Track                    [Page 10]
  563.  
  564. RFC 2215          General Characterization Parameters     September 1997
  565.  
  566.  
  567.    and egress elements bounding the multi-access communication cloud.
  568.    The method by which this cooperation is achieved, and the choice of
  569.    which IP-level network element actually provides and composes the
  570.    value, is technology-dependent.
  571.  
  572.    An alternative choice is to provide the same value of this parameter
  573.    for all paths through the cloud. The value reported must be the
  574.    smallest latency for any possible path. Note that in this situation,
  575.    QoS control services (e.g., Guaranteed) which provide an upper bound
  576.    on latency cannot simply add their queuing delay to the value
  577.    computed by this parameter; they must also compensate for path delays
  578.    above the minimum. In this case the range between the minimum and
  579.    maximum packet delays reported to the application may be larger than
  580.    actually occurs, because the application will be told about the
  581.    minimum delay along the shortest path and the maximum delay along the
  582.    actual path.  This is acceptable in most situations.
  583.  
  584.    A third alternative is to report the "indeterminate" value, as
  585.    specified below.  In this circumstance the client application may
  586.    either deduce a minimum path latency through measurement, or assume a
  587.    value of zero.
  588.  
  589.    The composition rule for this parameter is summation with a clamp of
  590.    (2**32 - 1) on the maximum value. This quantity, when composed end-
  591.    to-end, informs the endpoint of the minimal packet delay along the
  592.    path from sender to receiver. The parameter_number for the latency of
  593.    the network element's link is 7. The parameter_number for the
  594.    cumulative latency along the path is 8.
  595.  
  596.    The latencies are reported in units of one microsecond. An individual
  597.    element can advertise a latency value between 1 and 2**28 (somewhat
  598.    over two minutes) and the total latency added across all elements can
  599.    range as high as (2**32)-2. If the sum of the different elements
  600.    delays exceeds (2**32)-2, the end-to-end advertised delay should be
  601.    reported as indeterminate. This is described below.
  602.  
  603.    Note that while the granularity of measurement is microseconds, a
  604.    conforming element is free to actually measure delays more loosely.
  605.    The minimum requirement is that the element estimate its delay
  606.    accurately to the nearest 100 microsecond granularity. Elements that
  607.    can measure more accurately are, of course, encouraged to do so.
  608.  
  609.       NOTE: Measuring in milliseconds is not acceptable, because if the
  610.       minimum delay value is a millisecond, a path with several hops
  611.       will lead to a composed delay of at least several milliseconds,
  612.       which is likely to be misleading.
  613.  
  614.  
  615.  
  616.  
  617.  
  618. Shenker & Wroclawski        Standards Track                    [Page 11]
  619.  
  620. RFC 2215          General Characterization Parameters     September 1997
  621.  
  622.  
  623.    The XDR description of this parameter is:
  624.  
  625.                     unsigned int MINIMUM_PATH_LATENCY;
  626.  
  627.    The distinguished value (2**32)-1 is taken to mean "indeterminate
  628.    latency". A network element which cannot accurately predict the
  629.    latency of packets it is processing should set its local parameter to
  630.    this value. Because the composition function limits the composed sum
  631.    to this value, receipt of this value at a network element or
  632.    application indicates that the true path latency is not known. This
  633.    may happen because one or more network elements could not supply a
  634.    value, or because the range of the composition calculation was
  635.    exceeded.
  636.  
  637.  3.5. PATH_MTU
  638.  
  639.    This parameter computes the maximum transmission unit (MTU) for
  640.    packets following a data path.  This value is required to invoke QoS
  641.    control services which require that IP packet size be strictly
  642.    limited to a specific MTU. Existing MTU discovery mechanisms cannot
  643.    be used because they provide information only to the sender and they
  644.    do not directly allow for QoS control services to specify MTU's
  645.    smaller than the physical MTU.
  646.  
  647.    The local characterization parameter is the IP MTU, where the MTU of
  648.    a network element is defined to be the maximum transmission unit the
  649.    network element can accommodate without fragmentation, including IP
  650.    and upper-layer protocol headers but not including link level
  651.    headers.  The composition rule is to take the minimum of the network
  652.    element's MTU and the previously composed value.  This quantity, when
  653.    composed end-to-end, informs the endpoint of the maximum transmission
  654.    unit that can traverse the path from sender to receiver without
  655.    fragmentation.  The parameter_number for the MTU of the network
  656.    element's link is 9.  The parameter_number for the composed MTU along
  657.    the path is 10.
  658.  
  659.    A correct and valid value of this parameter must be provided by all
  660.    IS-aware network elements.
  661.  
  662.    A specific service module may specify an MTU smaller than that of the
  663.    overall network element by overriding this parameter with one giving
  664.    the service's MTU value. A service module may not specify an MTU
  665.    value larger than that given by the global parameter.
  666.  
  667.    Values of this parameter are measured in bytes.  The representation
  668.    must be able to express values ranging from 1 byte to 2**32-1 bytes.
  669.  
  670.  
  671.  
  672.  
  673.  
  674. Shenker & Wroclawski        Standards Track                    [Page 12]
  675.  
  676. RFC 2215          General Characterization Parameters     September 1997
  677.  
  678.  
  679.    The XDR description of this parameter is:
  680.  
  681.                           unsigned int PATH_MTU;
  682.  
  683.  3.6. TOKEN_BUCKET_TSPEC
  684.  
  685.    This parameter is used to describe data traffic parameters using a
  686.    simple token bucket filter. This parameter is used by data senders to
  687.    describe the traffic parameters of traffic it expects to generate,
  688.    and by QoS control services to describe the parameters of traffic for
  689.    which the reservation should apply. It is defined as a general rather
  690.    than service-specific parameter because the same traffic description
  691.    may be used by several QoS control services in some situations.
  692.  
  693.       NOTE: All previous definitions in this note have described
  694.       "characterization parameters", with local values set by network
  695.       elements to characterize their behavior and composition rules to
  696.       give the resulting end-to-end behavior. The TOKEN_BUCKET_TSPEC is
  697.       not a characterization parameter, because intermediate nodes
  698.       within the network do not export local values for
  699.       TOKEN_BUCKET_TSPECs. The TOKEN_BUCKET_TSPEC is simply a data
  700.       structure definition given here because it is common to more than
  701.       one QoS control service.
  702.  
  703.    The TOKEN_BUCKET_TSPEC parameter is assigned parameter_number 127.
  704.  
  705.    The TOKEN_BUCKET_TSPEC takes the form of a token bucket specification
  706.    plus a peak rate [p], minimum policed unit [m], and a maximum packet
  707.    size [M].
  708.  
  709.    The token bucket specification includes an average or token rate [r]
  710.    and a bucket depth [b].  Both [r] and [b] must be positive.
  711.  
  712.    The token rate [r] is measured in bytes of IP datagrams per second.
  713.    Values of this parameter may range from 1 byte per second to 40
  714.    terabytes per second. In practice, only the first few digits of the
  715.    [r] and [p] parameters are significant, so the use of floating point
  716.    representations, accurate to at least 0.1% is encouraged.
  717.  
  718.    The bucket depth, [b], is measured in bytes. Values of this parameter
  719.    may range from 1 byte to 250 gigabytes. In practice, only the first
  720.    few digits of the [b] parameter are significant, so the use of
  721.    floating point representations, accurate to at least 0.1% is
  722.    encouraged.
  723.  
  724.    The peak traffic rate [p] is measured in bytes of IP datagrams per
  725.    second. Values of this parameter may range from 1 byte per second to
  726.    40 terabytes per second. In practice, only the first few digits of
  727.  
  728.  
  729.  
  730. Shenker & Wroclawski        Standards Track                    [Page 13]
  731.  
  732. RFC 2215          General Characterization Parameters     September 1997
  733.  
  734.  
  735.    the [r] and [p] parameters are significant, so the use of floating
  736.    point representations, accurate to at least 0.1% is encouraged. The
  737.    peak rate value may be set to positive infinity, indicating that it
  738.    is unknown or unspecified.
  739.  
  740.    The range of values allowed for these parameters is intentionally
  741.    large to allow for future network technologies. A particular network
  742.    element is not expected to support the full range of values.
  743.  
  744.    The minimum policed unit, [m], is an integer measured in bytes.  This
  745.    size includes the application data and all protocol headers at or
  746.    above the IP level (IP, TCP, UDP, RTP, etc.). It does not include the
  747.    link-level header size, because these headers will change in size as
  748.    the packet crosses different portions of the internetwork.
  749.  
  750.    All IP datagrams less than size [m] are treated as being of size m
  751.    for purposes of resource allocation and policing. The purpose of this
  752.    parameter is to allow reasonable estimation of the per-packet
  753.    resources needed to process a flow's packets (maximum packet rate can
  754.    be computed from the [b] and [m] terms) and to reasonably bound the
  755.    bandwidth overhead consumed by the flow's link-level packet headers.
  756.    The maximum bandwidth overhead consumed by link-level headers when
  757.    carrying a flow's packets is bounded by the ratio of the link-level
  758.    header size to [m]. Without the [m] term, it would be necessary to
  759.    compute this bandwidth overhead assuming that every flow was always
  760.    sending minimum-sized packets, which is unacceptable.
  761.  
  762.    The maximum packet size, [M], is the biggest packet that will conform
  763.    to the traffic specification; it is also measured in bytes.  Any
  764.    packets of larger size sent into the network may not receive QoS-
  765.    controlled service, since they are considered to not meet the traffic
  766.    specification.
  767.  
  768.    Both [m] and [M] must be positive, and [m] must be less then or equal
  769.    to [M].
  770.  
  771.    The XDR description of this parameter is:
  772.  
  773.          struct {
  774.            float r;
  775.            float b;
  776.            float p;
  777.            unsigned m;
  778.            unsigned M;
  779.          } TOKEN_BUCKET_TSPEC;
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786. Shenker & Wroclawski        Standards Track                    [Page 14]
  787.  
  788. RFC 2215          General Characterization Parameters     September 1997
  789.  
  790.  
  791.    For the fields [r] and [b] only valid non-negative floating point
  792.    numbers are allowed. Negative numbers (including "negative zero),
  793.    infinities, and NAN's are not allowed.
  794.  
  795.    For the field [p], only valid non-negative floating point numbers or
  796.    positive infinity are allowed. Negative numbers (including "negative
  797.    zero), negative infinities, and NAN's are not allowed.
  798.  
  799.       NOTE: An implementation which utilizes general-purpose hardware or
  800.       software IEEE floating-point support may wish to verify that
  801.       arriving parameter values meet these requirements before using the
  802.       values in floating-point computations, in order to avoid
  803.       unexpected exceptions or traps.
  804.  
  805. 4. Security Considerations
  806.  
  807.    Implementation of the characterization parameters described in this
  808.    memo creates no known new avenues for malicious attack on the network
  809.    infrastructure.  Implementation of these characterization parameters
  810.    does, of necessity, reveal some additional information about a
  811.    network's performance, which in extremely rare circumstances could be
  812.    viewed as a security matter by the network provider.
  813.  
  814. 5. References
  815.  
  816.    [RFC 2005] Braden, R., Ed., et. al., "Resource Reservation Protocol
  817.    (RSVP) - Version 1 Functional Specification", RFC 2205, September
  818.    1997.
  819.  
  820.    [RFC 2210] Wroclawski, J., "The Use of RSVP with IETF Integrated
  821.    Services", RFC 2210, September 1997.
  822.  
  823.    [RFC 2216] Shenker, S., and J. Wroclawski, "Network Element QoS
  824.    Control Service Specification Template", RFC 2216, September 1997.
  825.  
  826.    [RFC 2212] Shenker, S., Partridge, C., and R. Guerin "Specification
  827.    of the Guaranteed Quality of Service", RFC 2212, September 1997.
  828.  
  829.    [RFC 2211] Wroclawski, J., "Specification of the Controlled Load
  830.    Quality of Service", RFC 2211, September 1997.
  831.  
  832.    [RFC 1832] Srinivansan, R., "XDR: External Data Representation
  833.    Standard", RFC 1832, August 1995.
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842. Shenker & Wroclawski        Standards Track                    [Page 15]
  843.  
  844. RFC 2215          General Characterization Parameters     September 1997
  845.  
  846.  
  847. Authors' Addresses
  848.  
  849.    Scott Shenker
  850.    Xerox PARC
  851.    3333 Coyote Hill Road
  852.    Palo Alto, CA 94304-1314
  853.  
  854.    Phone: 415-812-4840
  855.    Fax:   415-812-4471
  856.    EMail: shenker@parc.xerox.com
  857.  
  858.  
  859.    John Wroclawski
  860.    MIT Laboratory for Computer Science
  861.    545 Technology Sq.
  862.    Cambridge, MA  02139
  863.  
  864.    Phone: 617-253-7885
  865.    Ffax:  617-253-2673 (FAX)
  866.    EMail: jtw@lcs.mit.edu
  867.  
  868.  
  869.  
  870.  
  871.  
  872.  
  873.  
  874.  
  875.  
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898. Shenker & Wroclawski        Standards Track                    [Page 16]
  899.  
  900.