home *** CD-ROM | disk | FTP | other *** search
/ The Hacker's Encyclopedia 1998 / hackers_encyclopedia.iso / rfc / 3 / rfc2215.txt < prev    next >
Encoding:
Text File  |  2003-06-11  |  38.6 KB  |  901 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.   formation
  293.    the service-specific local value of the parameter, and
  294.      pass the result as a service-specific value to the next-hop node.
  295.  
  296.      4. If the arriving value is a service-specific value for a general
  297.      parameter (the parameter_number is 127 or less, and the
  298.      service_number is other than 1), and the local implementation of
  299.      that service does *not* export a service-specific value, compose
  300.      the service-specific arriving value with the global value for that
  301.      parameter exported by the local node, and pass the result as a
  302.      service-specific value to the next-hop node.
  303.  
  304.      5. If the arriving value is a global value for a general parameter
  305.      (parameter_number is 127 or less, and the service_number is 1), and
  306.      the local implementation of *any* service exports a service-
  307.      specific value for that general parameter, compose the arriving
  308.      (global) value with the service-specific value for that parameter
  309.      exported by the local service, and pass the result as a service-
  310.      specific value to the next-hop node. This will require adding a new
  311.      data field to the message passed to the next hop, to hold the newly
  312.      generated service-specific value. Repeat this process for each
  313.      service that exports a service-specific value for the parameter.
  314.  
  315.      6. If the arriving value is a global value for a general parameter
  316.      (the service_number is 1, and the parameter_number is 127 or less),
  317.      compose the arriving (global) value with the global parameter value
  318.      exported by the local node, and pass the result as a global
  319.      (service 1) value to the next-hop node. This step is performed
  320.      whether or not any service-specific values were generated and
  321.      exported in step 5.
  322.  
  323. 3. General Parameter Definitions
  324.  
  325.  3.1 NON-IS_HOP flag parameter
  326.  
  327.    This parameter provides information about the presence of network
  328.    elements which do not implement QoS control services along the data
  329.    path.
  330.  
  331.    The local value of the parameter is 1 if the network element does not
  332.    implement the relevant QoS control service, or knows that there is a
  333.    break in the chain of elements which implement the service.  The
  334.    local parameter is 0 otherwise.  The local parameter is assigned
  335.    parameter_number 1.
  336.  
  337.  
  338.  
  339. Shenker & Wroclawski        Standards Track                     [Page 6]
  340.  
  341. RFC 2215          General Characterization Parameters     September 1997
  342.  
  343.  
  344.    The composition rule for this parameter is the OR function. A
  345.    composed parameter value of 1 arriving at the endpoint of a path
  346.    indicates that at least one point along the path does not offer the
  347.    indicated QoS control service.  The parameter_number for the composed
  348.    quantity is 2.
  349.  
  350.    The global NON_IS_HOP flag parameter thus has the ID <1,2>. If this
  351.    flag is set, it indicates that one or more network elements along the
  352.    application's data path does not support the integrated services
  353.    framework at all. An example of such an element would be an IP router
  354.    offering only best-effort packet delivery and not supporting any
  355.    resource reservation requests.
  356.  
  357.    Obviously, a network element which does not support this
  358.    specification will not know to set this flag.  The actual
  359.    responsibility for determining that a network node does not support
  360.    integrated services may fall to the network element, the setup
  361.    protocol, or a manual configuration operation and is dependent on
  362.    implementation and usage.  This calculation must be conservative.
  363.    For example, a router sending packets into an IP tunnel must assume
  364.    that the tunneled packets will not receive QoS control services
  365.    unless it or the setup protocol can prove otherwise.
  366.  
  367.    Service-specific versions of the NON_IS_HOP flag indicate that one or
  368.    more network elements along a path don't support the particular
  369.    service. For example, the flag parameter identified by ID <2,2> being
  370.    set indicates that some network element along the path does not
  371.    support the Guaranteed service, though it might support another
  372.    service such as Controlled-Load.
  373.  
  374.    If the global NON_IS_HOP flag <1,2> is set for a path, the receiver
  375.    (network element or application) should consider the values of all
  376.    other parameters defined in this specification, including service-
  377.    specific NON_IS_HOP flags, as possibly inaccurate. If a service
  378.    specific NON_IS_HOP flag is set for a path, the receiver should
  379.    consider the values of all other parameters associated with that
  380.    service as possibly inaccurate.
  381.  
  382.    The NON_IS_HOP parameter may be represented in any form which can
  383.    express boolean true and false. However, note that a network element
  384.    must set this flag precisely when it does *not* fully understand the
  385.    format or data representation of an arriving protocol message
  386.    (because it does not support the specified service). Therefore, the
  387.    data representation used for this parameter by setup and management
  388.    protocols must allow the parameter value to be read and set even if
  389.    the network element cannot otherwise parse the protocol message.
  390.  
  391.  
  392.  
  393.  
  394.  
  395. Shenker & Wroclawski        Standards Track                     [Page 7]
  396.  
  397. RFC 2215          General Characterization Parameters     September 1997
  398.  
  399.  
  400.    An appropriate XDR description of this parameter is:
  401.  
  402.                              bool NON_IS_HOP;
  403.  
  404.    However, the standard XDR data encoding for this description will not
  405.    meet the requirement described above unless other restrictions are
  406.    placed on message formats. An alternative data representation may be
  407.    more appropriate.
  408.  
  409.       NOTE: The message format described for RSVP in [RFC 2210] carries
  410.       this parameter as a single-bit flag, referred to as the "break
  411.       bit".
  412.  
  413.  3.2 NUMBER_OF_IS_HOPS
  414.  
  415.    IS stands for "integrated services aware".  An integrated services
  416.    aware network element is one that conforms to the various
  417.    requirements described in this and other referenced documents.  The
  418.    network element need not offer a specific service, but if it does it
  419.    must support and characterize the service in conformance with the
  420.    relevant specification, and if it does not it must correctly set the
  421.    NON_IS_HOP flag parameter for the service. For completeness, the
  422.    local parameter is assigned the parameter_number 3.
  423.  
  424.    The composition rule for this parameter is to increment the counter
  425.    by one at each IS-aware hop.  This quantity, when composed end-to-
  426.    end, informs the endpoint of the number of integrated-services aware
  427.    network elements traversed along the path.  The parameter_number for
  428.    this composed parameter is 4.
  429.  
  430.    Values of the composed parameter will range from 1 to 255, limited by
  431.    the bound on IP hop count.
  432.  
  433.    The XDR representation of this parameter is:
  434.  
  435.                       unsigned int NUMBER_OF_IS_HOPS;
  436.  
  437.  3.3. AVAILABLE_PATH_BANDWIDTH
  438.  
  439.    This parameter provides information about the bandwidth available
  440.    along the path followed by a data flow.  The local parameter is an
  441.    estimate of the bandwidth the network element has available for
  442.    packets following the path.  Computation of the value of this
  443.    parameter should take into account all information available to the
  444.    network element about the path, taking into consideration
  445.    administrative and policy controls on bandwidth, as well as physical
  446.    resources.
  447.  
  448.  
  449.  
  450.  
  451. Shenker & Wroclawski        Standards Track                     [Page 8]
  452.  
  453. RFC 2215          General Characterization Parameters     September 1997
  454.  
  455.  
  456.       NOTE: This parameter should reflect, as closely as possible, the
  457.       actual bandwidth available to packets following a path. However,
  458.       the bandwidth available may depend on a number of factors not
  459.       known to the network element until a specific QoS request is in
  460.       place, such as the destination(s) of the packet flow, the service
  461.       to be requested by the flow, or external policy information
  462.       associated with a reservation request.  Because the parameter must
  463.       in fact be provided before any specific QoS request is made, it is
  464.       frequently difficult to provide the parameter accurately. In
  465.       circumstances where the parameter cannot be provided accurately,
  466.       the network element should make the best attempt possible, but it
  467.       is acceptable to overestimate the available bandwidth by a
  468.       significant amount.
  469.  
  470.    The parameter_number for AVAILABLE_PATH_BANDWIDTH is 5. The global
  471.    parameter <1, 5> is an estimate of the bandwidth available to any
  472.    packet following the path, without consideration of which (if any)
  473.    QoS control service the packets may be subject to.
  474.  
  475.    In cases where a particular service is administratively or
  476.    technically restricted to a limited portion of the overall available
  477.    bandwidth, the service module may wish to export an override
  478.    parameter which specifies this smaller bandwidth value.
  479.  
  480.    The composition rule for this parameter is the MIN function. The
  481.    composed value is the minimum of the network element's value and the
  482.    previously composed value. This quantity, when composed end-to-end,
  483.    informs the endpoint of the minimal bandwidth link along the path
  484.    from sender to receiver.  The parameter_number for the composed
  485.    minimal bandwidth along the path is 6.
  486.  
  487.    Values of this parameter are measured in bytes per second.  The
  488.    representation must be able to express values ranging from 1 byte per
  489.    second to 40 terabytes per second, about what is believed to be the
  490.    maximum theoretical bandwidth of a single strand of fiber.
  491.  
  492.    Particularly for large bandwidths, only the first few digits are
  493.    significant, so the use of a floating point representation, accurate
  494.    to at least 0.1%, is encouraged.
  495.  
  496.    The XDR representation for this parameter is:
  497.  
  498.                       float AVAILABLE_PATH_BANDWIDTH;
  499.  
  500.    For values of this parameter only valid non-negative floating point
  501.    numbers are allowed. Negative numbers (including "negative zero"),
  502.    infinities, and NAN's are not allowed.
  503.  
  504.  
  505.  
  506.  
  507. Shenker & Wroclawski        Standards Track                     [Page 9]
  508.  
  509. RFC 2215          General Characterization Parameters     September 1997
  510.  
  511.  
  512.       NOTE: An implementation which utilizes general-purpose hardware or
  513.       software IEEE floating-point support may wish to verify that
  514.       arriving parameter values meet these requirements before using the
  515.       values in floating-point computations, in order to avoid
  516.       unexpected exceptions or traps.
  517.  
  518.    If the network element cannot or chooses not to provide an estimate
  519.    of path bandwidth, it may export a local value of zero for this
  520.    parameter.  A network element or application receiving a composed
  521.    value of zero for this parameter must assume that the actual
  522.    bandwidth available is unknown.
  523.  
  524.  3.4 MINIMUM_PATH_LATENCY
  525.  
  526.    The local parameter is the latency of the packet forwarding process
  527.    associated with the network element, where the latency is defined to
  528.    be the *smallest* possible packet delay added by the network element.
  529.    This delay results from speed-of-light propagation delay, from packet
  530.    processing limitations, or both. It does not include any variable
  531.    queuing delay which may be present.
  532.  
  533.    The purpose of this parameter is to provide a baseline minimum path
  534.    latency for use with services which provide estimates or bounds on
  535.    additional path delay, such as Guaranteed [RFC 2212].  Together with
  536.    the queuing delay bound offered by Guaranteed and similar services,
  537.    this parameter gives the application knowledge of both the minimum
  538.    and maximum packet delivery delay.  Knowing both the minimum and
  539.    maximum latency experienced by data packets allows the receiving
  540.    application to accurately compute its de-jitter buffer requirements.
  541.  
  542.    Note that the quantity characterized by this parameter is the
  543.    absolute smallest possible value for the packet processing and
  544.    transmission latency of the network element. This value is the
  545.    quantity required to provide the end hosts with jitter bounds. The
  546.    parameter does *not* provide an upper-bound estimate of minimum
  547.    latency, which might be of interest for best-effort traffic and QoS
  548.    control services which do not explicitly offer delay bounds. In other
  549.    words, the parameter will always underestimate, rather than
  550.    overestimate, latency, particularly in multicast and large cloud
  551.    situations.
  552.  
  553.    When packets traversing a network element may experience different
  554.    minimal latencies over different paths, this parameter should, if
  555.    possible, report an accurate latency value for each path. For
  556.    example, when an ATM point-multipoint virtual circuit is used to
  557.    implement IP multicast, the mechanism that implements this parameter
  558.    for the ATM cloud should ideally compute a separate value for each
  559.    destination. Doing this may require cooperation between the ingress
  560.  
  561.  
  562.  
  563. Shenker & Wroclawski        Standards Track                    [Page 10]
  564.  
  565. RFC 2215          General Characterization Parameters     September 1997
  566.  
  567.  
  568.    and egress elements bounding the multi-access communication cloud.
  569.    The method by which this cooperation is achieved, and the choice of
  570.    which IP-level network element actually provides and composes the
  571.    value, is technology-dependent.
  572.  
  573.    An alternative choice is to provide the same value of this parameter
  574.    for all paths through the cloud. The value reported must be the
  575.    smallest latency for any possible path. Note that in this situation,
  576.    QoS control services (e.g., Guaranteed) which provide an upper bound
  577.    on latency cannot simply add their queuing delay to the value
  578.    computed by this parameter; they must also compensate for path delays
  579.    above the minimum. In this case the range between the minimum and
  580.    maximum packet delays reported to the application may be larger than
  581.    actually occurs, because the application will be told about the
  582.    minimum delay along the shortest path and the maximum delay along the
  583.    actual path.  This is acceptable in most situations.
  584.  
  585.    A third alternative is to report the "indeterminate" value, as
  586.    specified below.  In this circumstance the client application may
  587.    either deduce a minimum path latency through measurement, or assume a
  588.    value of zero.
  589.  
  590.    The composition rule for this parameter is summation with a clamp of
  591.    (2**32 - 1) on the maximum value. This quantity, when composed end-
  592.    to-end, informs the endpoint of the minimal packet delay along the
  593.    path from sender to receiver. The parameter_number for the latency of
  594.    the network element's link is 7. The parameter_number for the
  595.    cumulative latency along the path is 8.
  596.  
  597.    The latencies are reported in units of one microsecond. An individual
  598.    element can advertise a latency value between 1 and 2**28 (somewhat
  599.    over two minutes) and the total latency added across all elements can
  600.    range as high as (2**32)-2. If the sum of the different elements
  601.    delays exceeds (2**32)-2, the end-to-end advertised delay should be
  602.    reported as indeterminate. This is described below.
  603.  
  604.    Note that while the granularity of measurement is microseconds, a
  605.    conforming element is free to actually measure delays more loosely.
  606.    The minimum requirement is that the element estimate its delay
  607.    accurately to the nearest 100 microsecond granularity. Elements that
  608.    can measure more accurately are, of course, encouraged to do so.
  609.  
  610.       NOTE: Measuring in milliseconds is not acceptable, because if the
  611.       minimum delay value is a millisecond, a path with several hops
  612.       will lead to a composed delay of at least several milliseconds,
  613.       which is likely to be misleading.
  614.  
  615.  
  616.  
  617.  
  618.  
  619. Shenker & Wroclawski        Standards Track                    [Page 11]
  620.  
  621. RFC 2215          General Characterization Parameters     September 1997
  622.  
  623.  
  624.    The XDR description of this parameter is:
  625.  
  626.                     unsigned int MINIMUM_PATH_LATENCY;
  627.  
  628.    The distinguished value (2**32)-1 is taken to mean "indeterminate
  629.    latency". A network element which cannot accurately predict the
  630.    latency of packets it is processing should set its local parameter to
  631.    this value. Because the composition function limits the composed sum
  632.    to this value, receipt of this value at a network element or
  633.    application indicates that the true path latency is not known. This
  634.    may happen because one or more network elements could not supply a
  635.    value, or because the range of the composition calculation was
  636.    exceeded.
  637.  
  638.  3.5. PATH_MTU
  639.  
  640.    This parameter computes the maximum transmission unit (MTU) for
  641.    packets following a data path.  This value is required to invoke QoS
  642.    control services which require that IP packet size be strictly
  643.    limited to a specific MTU. Existing MTU discovery mechanisms cannot
  644.    be used because they provide information only to the sender and they
  645.    do not directly allow for QoS control services to specify MTU's
  646.    smaller than the physical MTU.
  647.  
  648.    The local characterization parameter is the IP MTU, where the MTU of
  649.    a network element is defined to be the maximum transmission unit the
  650.    network element can accommodate without fragmentation, including IP
  651.    and upper-layer protocol headers but not including link level
  652.    headers.  The composition rule is to take the minimum of the network
  653.    element's MTU and the previously composed value.  This quantity, when
  654.    composed end-to-end, informs the endpoint of the maximum transmission
  655.    unit that can traverse the path from sender to receiver without
  656.    fragmentation.  The parameter_number for the MTU of the network
  657.    element's link is 9.  The parameter_number for the composed MTU along
  658.    the path is 10.
  659.  
  660.    A correct and valid value of this parameter must be provided by all
  661.    IS-aware network elements.
  662.  
  663.    A specific service module may specify an MTU smaller than that of the
  664.    overall network element by overriding this parameter with one giving
  665.    the service's MTU value. A service module may not specify an MTU
  666.    value larger than that given by the global parameter.
  667.  
  668.    Values of this parameter are measured in bytes.  The representation
  669.    must be able to express values ranging from 1 byte to 2**32-1 bytes.
  670.  
  671.  
  672.  
  673.  
  674.  
  675. Shenker & Wroclawski        Standards Track                    [Page 12]
  676.  
  677. RFC 2215          General Characterization Parameters     September 1997
  678.  
  679.  
  680.    The XDR description of this parameter is:
  681.  
  682.                           unsigned int PATH_MTU;
  683.  
  684.  3.6. TOKEN_BUCKET_TSPEC
  685.  
  686.    This parameter is used to describe data traffic parameters using a
  687.    simple token bucket filter. This parameter is used by data senders to
  688.    describe the traffic parameters of traffic it expects to generate,
  689.    and by QoS control services to describe the parameters of traffic for
  690.    which the reservation should apply. It is defined as a general rather
  691.    than service-specific parameter because the same traffic description
  692.    may be used by several QoS control services in some situations.
  693.  
  694.       NOTE: All previous definitions in this note have described
  695.       "characterization parameters", with local values set by network
  696.       elements to characterize their behavior and composition rules to
  697.       give the resulting end-to-end behavior. The TOKEN_BUCKET_TSPEC is
  698.       not a characterization parameter, because intermediate nodes
  699.       within the network do not export local values for
  700.       TOKEN_BUCKET_TSPECs. The TOKEN_BUCKET_TSPEC is simply a data
  701.       structure definition given here because it is common to more than
  702.       one QoS control service.
  703.  
  704.    The TOKEN_BUCKET_TSPEC parameter is assigned parameter_number 127.
  705.  
  706.    The TOKEN_BUCKET_TSPEC takes the form of a token bucket specification
  707.    plus a peak rate [p], minimum policed unit [m], and a maximum packet
  708.    size [M].
  709.  
  710.    The token bucket specification includes an average or token rate [r]
  711.    and a bucket depth [b].  Both [r] and [b] must be positive.
  712.  
  713.    The token rate [r] is measured in bytes of IP datagrams per second.
  714.    Values of this parameter may range from 1 byte per second to 40
  715.    terabytes per second. In practice, only the first few digits of the
  716.    [r] and [p] parameters are significant, so the use of floating point
  717.    representations, accurate to at least 0.1% is encouraged.
  718.  
  719.    The bucket depth, [b], is measured in bytes. Values of this parameter
  720.    may range from 1 byte to 250 gigabytes. In practice, only the first
  721.    few digits of the [b] parameter are significant, so the use of
  722.    floating point representations, accurate to at least 0.1% is
  723.    encouraged.
  724.  
  725.    The peak traffic rate [p] is measured in bytes of IP datagrams per
  726.    second. Values of this parameter may range from 1 byte per second to
  727.    40 terabytes per second. In practice, only the first few digits of
  728.  
  729.  
  730.  
  731. Shenker & Wroclawski        Standards Track                    [Page 13]
  732.  
  733. RFC 2215          General Characterization Parameters     September 1997
  734.  
  735.  
  736.    the [r] and [p] parameters are significant, so the use of floating
  737.    point representations, accurate to at least 0.1% is encouraged. The
  738.    peak rate value may be set to positive infinity, indicating that it
  739.    is unknown or unspecified.
  740.  
  741.    The range of values allowed for these parameters is intentionally
  742.    large to allow for future network technologies. A particular network
  743.    element is not expected to support the full range of values.
  744.  
  745.    The minimum policed unit, [m], is an integer measured in bytes.  This
  746.    size includes the application data and all protocol headers at or
  747.    above the IP level (IP, TCP, UDP, RTP, etc.). It does not include the
  748.    link-level header size, because these headers will change in size as
  749.    the packet crosses different portions of the internetwork.
  750.  
  751.    All IP datagrams less than size [m] are treated as being of size m
  752.    for purposes of resource allocation and policing. The purpose of this
  753.    parameter is to allow reasonable estimation of the per-packet
  754.    resources needed to process a flow's packets (maximum packet rate can
  755.    be computed from the [b] and [m] terms) and to reasonably bound the
  756.    bandwidth overhead consumed by the flow's link-level packet headers.
  757.    The maximum bandwidth overhead consumed by link-level headers when
  758.    carrying a flow's packets is bounded by the ratio of the link-level
  759.    header size to [m]. Without the [m] term, it would be necessary to
  760.    compute this bandwidth overhead assuming that every flow was always
  761.    sending minimum-sized packets, which is unacceptable.
  762.  
  763.    The maximum packet size, [M], is the biggest packet that will conform
  764.    to the traffic specification; it is also measured in bytes.  Any
  765.    packets of larger size sent into the network may not receive QoS-
  766.    controlled service, since they are considered to not meet the traffic
  767.    specification.
  768.  
  769.    Both [m] and [M] must be positive, and [m] must be less then or equal
  770.    to [M].
  771.  
  772.    The XDR description of this parameter is:
  773.  
  774.          struct {
  775.            float r;
  776.            float b;
  777.            float p;
  778.            unsigned m;
  779.            unsigned M;
  780.          } TOKEN_BUCKET_TSPEC;
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787. Shenker & Wroclawski        Standards Track                    [Page 14]
  788.  
  789. RFC 2215          General Characterization Parameters     September 1997
  790.  
  791.  
  792.    For the fields [r] and [b] only valid non-negative floating point
  793.    numbers are allowed. Negative numbers (including "negative zero),
  794.    infinities, and NAN's are not allowed.
  795.  
  796.    For the field [p], only valid non-negative floating point numbers or
  797.    positive infinity are allowed. Negative numbers (including "negative
  798.    zero), negative infinities, and NAN's are not allowed.
  799.  
  800.       NOTE: An implementation which utilizes general-purpose hardware or
  801.       software IEEE floating-point support may wish to verify that
  802.       arriving parameter values meet these requirements before using the
  803.       values in floating-point computations, in order to avoid
  804.       unexpected exceptions or traps.
  805.  
  806. 4. Security Considerations
  807.  
  808.    Implementation of the characterization parameters described in this
  809.    memo creates no known new avenues for malicious attack on the network
  810.    infrastructure.  Implementation of these characterization parameters
  811.    does, of necessity, reveal some additional information about a
  812.    network's performance, which in extremely rare circumstances could be
  813.    viewed as a security matter by the network provider.
  814.  
  815. 5. References
  816.  
  817.    [RFC 2005] Braden, R., Ed., et. al., "Resource Reservation Protocol
  818.    (RSVP) - Version 1 Functional Specification", RFC 2205, September
  819.    1997.
  820.  
  821.    [RFC 2210] Wroclawski, J., "The Use of RSVP with IETF Integrated
  822.    Services", RFC 2210, September 1997.
  823.  
  824.    [RFC 2216] Shenker, S., and J. Wroclawski, "Network Element QoS
  825.    Control Service Specification Template", RFC 2216, September 1997.
  826.  
  827.    [RFC 2212] Shenker, S., Partridge, C., and R. Guerin "Specification
  828.    of the Guaranteed Quality of Service", RFC 2212, September 1997.
  829.  
  830.    [RFC 2211] Wroclawski, J., "Specification of the Controlled Load
  831.    Quality of Service", RFC 2211, September 1997.
  832.  
  833.    [RFC 1832] Srinivansan, R., "XDR: External Data Representation
  834.    Standard", RFC 1832, August 1995.
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843. Shenker & Wroclawski        Standards Track                    [Page 15]
  844.  
  845. RFC 2215          General Characterization Parameters     September 1997
  846.  
  847.  
  848. Authors' Addresses
  849.  
  850.    Scott Shenker
  851.    Xerox PARC
  852.    3333 Coyote Hill Road
  853.    Palo Alto, CA 94304-1314
  854.  
  855.    Phone: 415-812-4840
  856.    Fax:   415-812-4471
  857.    EMail: shenker@parc.xerox.com
  858.  
  859.  
  860.    John Wroclawski
  861.    MIT Laboratory for Computer Science
  862.    545 Technology Sq.
  863.    Cambridge, MA  02139
  864.  
  865.    Phone: 617-253-7885
  866.    Ffax:  617-253-2673 (FAX)
  867.    EMail: jtw@lcs.mit.edu
  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.  
  899. Shenker & Wroclawski        Standards Track                    [Page 16]
  900.  
  901.