This Performance Metrics Registry is applicable to Performance Metrics used for Active Measurement, Passive Measurement, and any other form of Performance Measurement. Each category of measurement has unique properties, so some of the columns defined below are not applicable for a given metric category. In this case, the column(s)
SHOULD be populated with the "N/A" value (Not Applicable). However, the "N/A" value
MUST NOT be used by any metric in the following columns: Identifier, Name, URI, Status, Requester, Revision, Revision Date, Description. In the future, a new category of metrics could require additional columns, and adding new columns is a recognized form of Registry extension. The specification defining the new column(s)
MUST give general guidelines for populating the new column(s) for existing entries.
The columns of the Performance Metrics Registry are defined below. The columns are grouped into "Categories" to facilitate the use of the Registry. Categories are described at the "Section 7.x" heading level, and columns are described at the "Section 7.x.y" heading level. The figure below illustrates this organization. An entry (row) therefore gives a complete description of a Registered Performance Metric.
Each column serves as a checklist item and helps to avoid omissions during registration and Expert Review [
RFC 8126].
Registry Categories and Columns are shown below in this format:
Category
------------------...
Column | Column |...
Summary
----------------------------------------------------------------
Identifier | Name | URI | Desc. | Reference | Change | Ver |
| | | | | Controller |
Metric Definition
-----------------------------------------
Reference Definition | Fixed Parameters |
Method of Measurement
---------------------------------------------------------------------
Reference | Packet | Traffic | Sampling | Runtime | Role |
Method | Stream | Filter | Distribution | Parameters | |
| Generation |
Output
-----------------------------------------
Type | Reference | Units | Calibration |
| Definition | | |
Administrative Information
-------------------------------------
Status |Requester | Rev | Rev. Date |
Comments and Remarks
--------------------
There is a blank template of the Registry template provided in
Section 11 of this memo.
This column provides a numeric Identifier for the Registered Performance Metric. The Identifier of each Registered Performance Metric
MUST be unique. Note that revising a Metric according to the process in
Section 8.2 creates a new entry in the Performance Metrics Registry with the same identifier.
The Registered Performance Metric unique Identifier is an unbounded integer (range 0 to infinity).
The Identifier 0 should be Reserved. The Identifier values from 64512 to 65535 are reserved for private or experimental use, and the user may encounter overlapping uses.
When adding new Registered Performance Metrics to the Performance Metrics Registry, IANA
SHOULD assign the lowest available Identifier to the new Registered Performance Metric.
If a Performance Metrics Expert providing review determines that there is a reason to assign a specific numeric Identifier, possibly leaving a temporary gap in the numbering, then the Performance Metrics Expert
SHALL inform IANA of this decision.
As the Name of a Registered Performance Metric is the first thing a potential human implementer will use when determining whether it is suitable for their measurement study, it is important to be as precise and descriptive as possible. In the future, users will review the Names to determine if the metric they want to measure has already been registered, or if a similar entry is available, as a basis for creating a new entry.
Names are composed of the following elements, separated by an underscore character "_":
-
MetricType_Method_SubTypeMethod_... Spec_Units_Output
-
MetricType:
-
A combination of the directional properties and the metric measured, such as and not limited to:
RTDelay |
Round-Trip Delay |
RTDNS |
Response Time Domain Name Service |
RLDNS |
Response Loss Domain Name Service |
OWDelay |
One-Way Delay |
RTLoss |
Round-Trip Loss |
OWLoss |
One-Way Loss |
OWPDV |
One-Way Packet Delay Variation |
OWIPDV |
One-Way Inter-Packet Delay Variation |
OWReorder |
One-Way Packet Reordering |
OWDuplic |
One-Way Packet Duplication |
OWBTC |
One-Way Bulk Transport Capacity |
OWMBM |
One-Way Model-Based Metric |
SPMonitor |
Single-Point Monitor |
MPMonitor |
Multi-Point Monitor |
Table 1
-
Method:
-
One of the methods defined in [RFC 7799], such as and not limited to:
Active |
depends on a dedicated measurement packet stream and observations of the stream as described in [RFC 7799]
|
Passive |
depends *solely* on observation of one or more existing packet streams as described in [RFC 7799] |
HybridType1 |
Hybrid Type I observations on one stream that combine both Active Methods and Passive Methods as described in [RFC 7799]
|
HybridType2 |
Hybrid Type II observations on two or more streams that combine both Active Methods and Passive Methods as described in [RFC 7799]
|
Spatial |
spatial metric as described in [RFC 5644] |
Table 2
-
SubTypeMethod:
-
One or more subtypes to further describe the features of the entry, such as and not limited to:
ICMP |
Internet Control Message Protocol |
IP |
Internet Protocol |
DSCPxx |
where xx is replaced by a Diffserv code point |
UDP |
User Datagram Protocol |
TCP |
Transport Control Protocol |
QUIC |
QUIC transport protocol |
HS |
Hand-Shake, such as TCP's 3-way HS |
Poisson |
packet generation using Poisson distribution |
Periodic |
periodic packet generation |
SendOnRcv |
sender keeps one packet in transit by sending when previous packet arrives |
PayloadxxxxB |
where xxxx is replaced by an integer, the number of octets or 8-bit Bytes in the Payload
|
SustainedBurst |
capacity test, worst case |
StandingQueue |
test of bottleneck queue behavior |
Table 3
SubTypeMethod values are separated by a hyphen "-" character, which indicates that they belong to this element and that their order is unimportant when considering Name uniqueness.
-
Spec:
-
An immutable document Identifier combined with a document section Identifier. For RFCs, this consists of the RFC number and major section number that specifies this Registry Entry in the form "RFCXXXXsecY", e.g., RFC7799sec3. Note: The RFC number is not the primary reference specification for the metric definition (e.g., [RFC 7679] as the primary reference specification for one-way delay metrics); it will contain the placeholder "RFCXXXXsecY" until the RFC number is assigned to the specifying document and would remain blank in Private Registry Entries without a corresponding RFC. Anticipating the "RFC10K" problem, the number of the RFC continues to replace "RFCXXXX", regardless of the number of digits in the RFC number. Anticipating Registry Entries from other standards bodies, the form of this Name Element MUST be proposed and reviewed for consistency and uniqueness by the Expert Reviewer.
-
Units:
-
The units of measurement for the output, such as and not limited to:
Seconds |
|
Ratio |
unitless |
Percent |
value multiplied by 100% |
Logical |
1 or 0 |
Packets |
|
BPS |
bits per second |
PPS |
packets per second |
EventTotal |
for unitless counts |
Multiple |
more than one type of unit |
Enumerated |
a list of outcomes |
Unitless |
|
Table 4
-
Output:
-
The type of output resulting from measurement, such as and not limited to:
Singleton |
|
Raw |
multiple singletons |
Count |
|
Minimum |
|
Maximum |
|
Median |
|
Mean |
|
95Percentile |
95th percentile |
99Percentile |
99th percentile |
StdDev |
standard deviation |
Variance |
|
PFI |
pass, fail, inconclusive |
FlowRecords |
descriptions of flows observed |
LossRatio |
lost packets to total packets, <=1 |
Table 5
An example, as described in
Section 4 of
RFC 8912, is
-
RTDelay_Active_IP-UDP-Periodic_RFC8912sec4_Seconds_95Percentile
Note that private registries following the format described here
SHOULD use the prefix "Priv_" on any Name to avoid unintended conflicts (further considerations are described in
Section 10). Private Registry Entries usually have no specifying RFC; thus, the Spec: element has no clear interpretation.
The URI column
MUST contain a URL [
RFC 3986] that uniquely identifies and locates the Metric Entry so it is accessible through the Internet. The URL points to a file containing all of the human-readable information for one Registry Entry. The URL
SHALL reference a target file that is preferably HTML-formatted and contains URLs to referenced sections of HTMLized RFCs, or other reference specifications. These target files for different entries can be more easily edited and reused when preparing new entries. The exact form of the URL for each target file, and the target file itself, will be determined by IANA and reside on <
https://www.iana.org/>.
Section 4 of
RFC 8912, as well as subsequent major sections of that document, provide an example of a target file in HTML form.
A Registered Performance Metric description is a written representation of a particular Performance Metrics Registry Entry. It supplements the Registered Performance Metric Name to help Performance Metrics Registry users select relevant Registered Performance Metrics.
This entry gives the specification containing the candidate Registry Entry that was reviewed and agreed upon, if such an RFC or other specification exists.
This entry names the entity responsible for approving revisions to the Registry Entry and
SHALL provide contact information (for an individual, where appropriate).
This column gives the version number for the Registry format used, at the time the Performance Metric is registered. The format complying with this memo
MUST use 1.0. A new RFC that changes the Registry format will designate a new version number corresponding to that format. The version number of Registry Entries
SHALL NOT change unless the Registry Entry is updated to reflect the Registry format (following the procedures in
Section 8).
This category includes columns to prompt all necessary details related to the metric definition, including the immutable document reference and values of input factors, called "Fixed Parameters", which are left open in the immutable document but have a particular value defined by the Performance Metric.
This entry provides a reference (or references) to the relevant sections of the document or documents that define the metric, as well as any supplemental information needed to ensure an unambiguous definition for implementations. A given reference needs to be an immutable document, such as an RFC; for other standards bodies, it is likely to be necessary to reference a specific, dated version of a specification.
Fixed Parameters are Parameters whose values must be specified in the Performance Metrics Registry. The measurement system uses these values.
Where referenced metrics supply a list of Parameters as part of their descriptive template, a subset of the Parameters will be designated as Fixed Parameters. As an example for Active Metrics, Fixed Parameters determine most or all of the IPPM framework convention "packets of Type-P" as described in [
RFC 2330], such as transport protocol, payload length, TTL, etc. An example for Passive Metrics is for an RTP packet loss calculation that relies on the validation of a packet as RTP, which is a multi-packet validation controlled by the MIN_SEQUENTIAL variable as defined by [
RFC 3550]. Varying MIN_SEQUENTIAL values can alter the loss report, and this variable could be set as a Fixed Parameter.
Parameters
MUST have well-defined names. For human readers, the hanging-indent style is preferred, and any Parameter names and definitions that do not appear in the Reference Method Specification
MUST appear in this column (or the Runtime Parameters column).
Parameters
MUST have a well-specified data format.
A Parameter that is a Fixed Parameter for one Performance Metrics Registry Entry may be designated as a Runtime Parameter for another Performance Metrics Registry Entry.
This category includes columns for references to relevant sections of the immutable document(s) and any supplemental information needed to ensure an unambiguous method for implementations.
This entry provides references to relevant sections of immutable documents, such as RFC(s) (for other standards bodies, it is likely to be necessary to reference a specific, dated version of a specification) describing the Method of Measurement, as well as any supplemental information needed to ensure unambiguous interpretation for implementations referring to the immutable document text.
Specifically, this section should include pointers to pseudocode or actual code that could be used for an unambiguous implementation.
This column applies to Performance Metrics that generate traffic as part of their Measurement Method, including, but not necessarily limited to, Active Metrics. The generated traffic is referred to as a "stream", and this column describes its characteristics.
Each entry for this column contains the following information:
-
Value:
-
The name of the packet stream scheduling discipline
-
Reference:
-
The specification where the Parameters of the stream are defined
The packet generation stream may require Parameters such as the average packet rate and distribution truncation value for streams with Poisson-distributed inter-packet sending times. If such Parameters are needed, they should be included in either the Fixed Parameters column or the Runtime Parameters column, depending on whether they will be fixed or will be an input for the metric.
The simplest example of stream specification is singleton scheduling (see [
RFC 2330]), where a single atomic measurement is conducted. Each atomic measurement could consist of sending a single packet (such as a DNS request) or sending several packets (for example, to request a web page). Other streams support a series of atomic measurements using pairs of packets, where the packet stream follows a schedule defining the timing between transmitted packets, and an atomic measurement assesses the reception time between successive packets (e.g., a measurement of Inter-Packet Delay Variation). More complex streams and measurement relationships are possible. Principally, two different streams are used in IPPM Metrics: (1) Poisson, distributed as described in [
RFC 2330] and (2) periodic, as described in [
RFC 3432]. Both Poisson and periodic have their own unique Parameters, and the relevant set of Parameter names and values should be included in either the Fixed Parameters column or the Runtime Parameters column.
This column applies to Performance Metrics that observe packets flowing through (the device with) the Measurement Agent, i.e., packets that are not necessarily addressed to the Measurement Agent. This includes, but is not limited to, Passive Metrics. The filter specifies the traffic that is measured. This includes protocol field values/ranges, such as address ranges, and flow or session Identifiers.
The Traffic Filter itself depends on the needs of the metric itself and a balance of an operator's measurement needs and a user's need for privacy. Mechanics for conveying the filter criteria might be the BPF (Berkeley Packet Filter) or PSAMP (Packet Sampling) [
RFC 5475] Property Match Filtering, which reuses IPFIX [
RFC 7012]. An example BPF string for matching TCP/80 traffic to remote Destination net 192.0.2.0/24 would be "dst net 192.0.2.0/24 and tcp dst port 80". More complex filter engines may allow for matching using Deep Packet Inspection (DPI) technology.
The Traffic Filter includes the following information:
-
Type:
-
The type of Traffic Filter used, e.g., BPF, PSAMP, OpenFlow rule, etc., as defined by a normative reference
-
Value:
-
The actual set of rules expressed
The sampling distribution defines, out of all of the packets that match the Traffic Filter, which one or more of those packets are actually used for the measurement. One possibility is "all", which implies that all packets matching the Traffic Filter are considered, but there may be other sampling strategies. It includes the following information:
-
Value:
-
The name of the sampling distribution
-
Reference definition:
-
Pointer to the specification where the sampling distribution is properly defined
The sampling distribution may require Parameters. If such Parameters are needed, they should be included in either the Fixed Parameters column or the Runtime Parameters column, depending on whether they will be fixed or will be an input for the metric.
PSAMP is documented in "Sampling and Filtering Techniques for IP Packet Selection" [
RFC 5475], while "A Framework for Packet Selection and Reporting" [
RFC 5474] provides more background information. The sampling distribution Parameters might be expressed in terms of the model described in "Information Model for Packet Sampling Exports" [
RFC 5477] and the process provided in "Flow Selection Techniques" [
RFC 7014].
In contrast to the Fixed Parameters, Runtime Parameters are Parameters that do not change the fundamental nature of the measurement and their values are not specified in the Performance Metrics Registry. They are left as variables in the Registry, as an aid to the measurement system implementer or user. Their values are supplied on execution, configured into the measurement system, and reported with the Measurement Results (so that the context is complete).
Where metrics supply a list of Parameters as part of their descriptive template, a subset of the Parameters will be designated as Runtime Parameters.
Parameters
MUST have well-defined names. For human readers, the hanging-indent style is preferred, and the names and definitions that do not appear in the Reference Method Specification
MUST appear in this column.
A data format for each Runtime Parameter
MUST be specified in this column, to simplify the control and implementation of measurement devices. For example, Parameters that include an IPv4 address can be encoded as a 32-bit integer (i.e., a binary base64-encoded value) or "ip-address" as defined in [
RFC 6991]. The actual encoding(s) used must be explicitly defined for each Runtime Parameter. IPv6 addresses and options
MUST be accommodated, allowing Registered Performance Metrics to be used in that address family. Other address families are permissible.
Examples of Runtime Parameters include IP addresses, measurement point designations, start times and end times for measurement, and other information essential to the Method of Measurement.
In some Methods of Measurement, there may be several Roles defined, e.g., for a one-way packet delay Active Measurement, there is one Measurement Agent that generates the packets and another Agent that receives the packets. This column contains the name of the Role(s) for this particular entry. In the one-way delay example above, there should be two entries in the Registry's Role column, one for each Role (Source and Destination). When a Measurement Agent is instructed to perform the "Source" Role for the one-way delay metric, the Agent knows that it is required to generate packets. The values for this field are defined in the Reference Method of Measurement (and this frequently results in abbreviated Role names such as "Src").
When the Role column of a Registry Entry defines more than one Role, the Role
SHALL be treated as a Runtime Parameter and supplied for execution. It should be noted that the LMAP framework [
RFC 7594] distinguishes the Role from other Runtime Parameters.
For entries that involve a stream and many singleton measurements, a statistic may be specified in this column to summarize the results to a single value. If the complete set of measured singletons is output, this will be specified here.
Some metrics embed one specific statistic in the reference metric definition, while others allow several output types or statistics.
This column contains the name of the output type. The output type defines a single type of result that the metric produces. It can be the raw results (packet send times and singleton metrics), or it can be a summary statistic. The specification of the output type
MUST define the format of the output. In some systems, format specifications will simplify both measurement implementation and collection/storage tasks. Note that if two different statistics are required from a single measurement (for example, both "Xth percentile mean" and "Raw"), then a new output type must be defined ("Xth percentile mean AND Raw"). See
Section 7.1.2 above for a list of output types.
This column contains a pointer to the specification(s) where the output type and format are defined.
The measured results must be expressed using some standard dimension or units of measure. This column provides the units.
When a sample of singletons (see
Section 11 of
RFC 2330 for definitions of these terms) is collected, this entry will specify the units for each measured value.
Some specifications for Methods of Measurement include the ability to perform an error calibration.
Section 3.7.3 of
RFC 7679 is one example. In the Registry Entry, this field will identify a method of calibration for the metric, and, when available, the measurement system
SHOULD perform the calibration when requested and produce the output with an indication that it is the result of a calibration method. In-situ calibration could be enabled with an internal loopback that includes as much of the measurement system as possible, performs address manipulation as needed, and provides some form of isolation (e.g., deterministic delay) to avoid send-receive interface contention. Some portion of the random and systematic error can be characterized in this way.
For one-way delay measurements, the error calibration must include an assessment of the internal clock synchronization with its external reference (this internal clock is supplying timestamps for measurement). In practice, the time offsets of clocks at both the Source and Destination are needed to estimate the systematic error due to imperfect clock synchronization (the time offsets are smoothed; thus, the random variation is not usually represented in the results).
Both internal loopback calibration and clock synchronization can be used to estimate the *available accuracy* of the Output Metric Units. For example, repeated loopback delay measurements will reveal the portion of the output result resolution that is the result of system noise and is thus inaccurate.
This entry indicates the status of the specification of this Registered Performance Metric. Allowed values are 'Current', 'Deprecated', and 'Obsolete'. All newly defined Registered Performance Metrics have 'Current' Status.
This entry indicates the requester for the Registered Performance Metric. The requester
MAY be a document (such as an RFC) or a person.
This entry indicates the revision number of a Registered Performance Metric, starting at 0 for Registered Performance Metrics at the time of definition and incremented by one for each revision. However, in the case of a non-backward-compatible revision, see
Section 8.3.
This entry indicates the date of acceptance of the most recent revision for the Registered Performance Metric. The date
SHALL be determined by IANA and the reviewing Performance Metrics Expert.
Besides providing additional details that do not appear in other categories, this open category (single column) allows unforeseen issues to be addressed by simply updating this informational entry.