rfc9571v2.txt   rfc9571.txt 
skipping to change at line 73 skipping to change at line 73
4. RFC 6374-Based Single Packet Delay Measurement Using SFL 4. RFC 6374-Based Single Packet Delay Measurement Using SFL
5. Data Service Packet Delay Measurement 5. Data Service Packet Delay Measurement
6. Some Simplifying Rules 6. Some Simplifying Rules
7. Multiple Packet Delay Characteristics 7. Multiple Packet Delay Characteristics
7.1. Method 1: Time Buckets 7.1. Method 1: Time Buckets
7.2. Method 2: Classic Standard Deviation 7.2. Method 2: Classic Standard Deviation
7.2.1. Multi-packet Delay Measurement Message Format 7.2.1. Multi-packet Delay Measurement Message Format
7.3. Per-Packet Delay Measurement 7.3. Per-Packet Delay Measurement
7.4. Average Delay 7.4. Average Delay
8. Sampled Measurement 8. Sampled Measurement
9. Carrying RFC 6374 Packets over an LSP Using an SFL 9. Carrying Packets over an LSP Using an SFL
9.1. Extending RFC 6374 with SFL TLV 9.1. Extending RFC 6374 with SFL TLV
10. RFC 6374-Based Combined Loss/Delay Measurement Using SFL 10. RFC 6374-Based Combined Loss/Delay Measurement Using SFL
11. Privacy Considerations 11. Privacy Considerations
12. Security Considerations 12. Security Considerations
13. IANA Considerations 13. IANA Considerations
13.1. Allocation of MPLS Generalized Associated Channel (G-ACh) 13.1. Allocation of MPLS Generalized Associated Channel (G-ACh)
Types Types
13.2. Allocation of MPLS Loss/Delay TLV Object 13.2. Allocation of MPLS Loss/Delay TLV Object
14. References 14. References
14.1. Normative References 14.1. Normative References
skipping to change at line 148 skipping to change at line 148
some source-specific information into the packet to identify packet some source-specific information into the packet to identify packet
batches from a specific source. batches from a specific source.
[RFC8957] describes a method of encoding per-flow instructions in an [RFC8957] describes a method of encoding per-flow instructions in an
MPLS label stack using a technique called Synonymous Flow Labels MPLS label stack using a technique called Synonymous Flow Labels
(SFLs), in which labels that mimic the behavior of other labels (SFLs), in which labels that mimic the behavior of other labels
provide the packet batch identifiers and enable the per-batch packet provide the packet batch identifiers and enable the per-batch packet
accounting. This memo specifies how SFLs are used to perform packet accounting. This memo specifies how SFLs are used to perform packet
loss and delay measurements as described in [RFC6374]. loss and delay measurements as described in [RFC6374].
When the terms "Query," "packet," or "message" are used in this When the terms "performance measurement method," "Query," "packet,"
document, they refer to a Query, packet, or message as specified in or "message" are used in this document, they refer to a performance
measurement method, Query, packet, or message as specified in
[RFC6374]. [RFC6374].
2. Requirements Language 2. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in "OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
3. RFC 6374-Based Packet Loss Measurement Using SFL 3. RFC 6374-Based Packet Loss Measurement Using SFL
The data service packets of the flow being instrumented are grouped The data service packets of the flow being instrumented are grouped
into batches, and all the packets within a batch are marked with the into batches, and all the packets within a batch are marked with the
SFL [RFC8372] corresponding to that batch. The sender counts the SFL [RFC8372] corresponding to that batch. The sender counts the
number of packets in the batch. When the batch has completed and the number of packets in the batch. When the batch has completed and the
sender is confident that all of the packets in that batch will have sender is confident that all of the packets in that batch will have
been received, the sender issues an [RFC6374] Query message to been received, the sender issues a Query message to determine the
determine the number actually received and hence the number of number actually received and hence the number of packets lost. The
packets lost. The [RFC6374] Query message is sent using the same SFL Query message is sent using the same SFL as the corresponding batch
as the corresponding batch of data service packets. The format of of data service packets. The format of the Query and Response
the Query and Response packets is described in Section 9. packets is described in Section 9.
4. RFC 6374-Based Single Packet Delay Measurement Using SFL 4. RFC 6374-Based Single Packet Delay Measurement Using SFL
[RFC6374] describes how to measure the packet delay by measuring the [RFC6374] describes how to measure the packet delay by measuring the
transit time of an [RFC6374] packet over an LSP. Such a packet may transit time of a packet over an LSP. Such a packet may not need to
not need to be carried over an SFL since the delay over a particular be carried over an SFL since the delay over a particular LSP should
LSP should be a function of the Traffic Class (TC) bits. be a function of the Traffic Class (TC) bits.
However, where SFLs are being used to monitor packet loss or where However, where SFLs are being used to monitor packet loss or where
label-inferred scheduling is used [RFC3270], then the SFL would be label-inferred scheduling is used [RFC3270], then the SFL would be
REQUIRED to ensure that the [RFC6374] packet that was being used as a REQUIRED to ensure that the packet that was being used as a proxy for
proxy for a data service packet experienced a representative delay. a data service packet experienced a representative delay. The format
The format of an [RFC6374] packet carried over the LSP using an SFL of a packet carried over the LSP using an SFL is shown in Section 9.
is shown in Section 9.
5. Data Service Packet Delay Measurement 5. Data Service Packet Delay Measurement
Where it is desired to more thoroughly instrument a packet flow and Where it is desired to more thoroughly instrument a packet flow and
to determine the delay of a number of packets, it is undesirable to to determine the delay of a number of packets, it is undesirable to
send a large number of [RFC6374] packets acting as proxy data service send a large number of packets acting as proxy data service packets
packets (see Section 4). A method of directly measuring the delay (see Section 4). A method of directly measuring the delay
characteristics of a batch of packets is therefore needed. characteristics of a batch of packets is therefore needed.
Given the long intervals over which it is necessary to measure packet Given the long intervals over which it is necessary to measure packet
loss, it is not necessarily the case that the batch times for the two loss, it is not necessarily the case that the batch times for the two
measurement types would be identical. Thus, we use a technique that measurement types would be identical. Thus, we use a technique that
permits the two measurements to be made concurrently and yet permits the two measurements to be made concurrently and yet
relatively independently from each other. The notion that they are relatively independently from each other. The notion that they are
relatively independent arises from the potential for the two batches relatively independent arises from the potential for the two batches
to overlap in time, in which case either the delay batch time will to overlap in time, in which case either the delay batch time will
need to be cut short or the loss time will need to be extended to need to be cut short or the loss time will need to be extended to
skipping to change at line 229 skipping to change at line 229
(Case 4) AACDCDCDAABBBBBBBBBBAAAAAAAAAABBBBBBBBBB (Case 4) AACDCDCDAABBBBBBBBBBAAAAAAAAAABBBBBBBBBB
A case of multiple delay measurements within a packet loss A case of multiple delay measurements within a packet loss
measurement measurement
where where
A and B are packets where loss is being measured. A and B are packets where loss is being measured.
C and D are packets where loss and delay are being measured. C and D are packets where loss and delay are being measured.
Figure 1: RFC 6734 Query Packet with SFL Figure 1: Query Packet with SFL
In Case 1, we show where loss measurement alone is being carried out In Case 1, we show where loss measurement alone is being carried out
on the flow under analysis. For illustrative purposes, consider that on the flow under analysis. For illustrative purposes, consider that
10 packets are used in each flow in the time interval being analyzed. 10 packets are used in each flow in the time interval being analyzed.
Now consider Case 2, where a small batch of packets need to be Now consider Case 2, where a small batch of packets need to be
analyzed for delay. These are marked with a different SFL type, analyzed for delay. These are marked with a different SFL type,
indicating that they are to be monitored for both loss and delay. indicating that they are to be monitored for both loss and delay.
The SFL=A indicates loss batch A, and SFL=D indicates a batch of The SFL=A indicates loss batch A, and SFL=D indicates a batch of
packets that are to be instrumented for delay, but SFL D is packets that are to be instrumented for delay, but SFL D is
synonymous with SFL A, which in turn is synonymous with the synonymous with SFL A, which in turn is synonymous with the
underlying Forwarding Equivalence Class (FEC). Thus, a packet marked underlying Forwarding Equivalence Class (FEC). Thus, a packet marked
"D" will be accumulated into the A loss batch, into the delay "D" will be accumulated into the A loss batch, into the delay
statistics, and will be forwarded as normal. Whether the packet is statistics, and will be forwarded as normal. Whether the packet is
actually counted twice (for loss and delay) or whether the two actually counted twice (for loss and delay) or whether the two
counters are reconciled during reporting is a local matter. counters are reconciled during reporting is a local matter.
Now consider Case 3, where a small batch of packets is marked for Now consider Case 3, where a small batch of packets is marked for
delay across a loss batch boundary. These packets need to be delay across a loss batch boundary. These packets need to be
considered as a part of batch A or a part of batch B, and any considered as a part of batch A or a part of batch B, and any Query
[RFC6374] Query needs to take place after all packets A or D needs to take place after all packets A or D (whichever option is
(whichever option is chosen) have arrived at the receiving Label chosen) have arrived at the receiving Label Switching Router (LSR).
Switching Router (LSR).
Now consider Case 4. Here, we have a case where it is required to Now consider Case 4. Here, we have a case where it is required to
take a number of delay measurements within a batch of packets that we take a number of delay measurements within a batch of packets that we
are measuring for loss. To do this, we need two SFLs for delay (C are measuring for loss. To do this, we need two SFLs for delay (C
and D) and alternate between them (on a delay-batch-by-delay-batch and D) and alternate between them (on a delay-batch-by-delay-batch
basis) for the purposes of measuring the delay characteristics of the basis) for the purposes of measuring the delay characteristics of the
different batches of packets. different batches of packets.
6. Some Simplifying Rules 6. Some Simplifying Rules
skipping to change at line 349 skipping to change at line 348
| QTF | RTF | RPTF | Reserved | | QTF | RTF | RPTF | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Session Identifier | DS | | Session Identifier | DS |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number of | Reserved 1 | | Number of | Reserved 1 |
| Buckets | | | Buckets | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Interval (in 10 ns units) | | Interval (in 10 ns units) |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number of Pkts in Bucket | | Number of Pkts in Bucket 1 |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ ~ ~ ~
~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number of Pkts in Bucket N |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ ~ ~ ~
~ TLV Block ~ ~ TLV Block ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: Time Bucket Jitter Measurement Message Format Figure 2: Time Bucket Jitter Measurement Message Format
The Version, Flags, Control Code, Message Length, Querier Timestamp The Version, Flags, Control Code, Message Length, Querier Timestamp
Format (QTF), Responder Timestamp Format (RTF), Responder's Preferred Format (QTF), Responder Timestamp Format (RTF), Responder's Preferred
Timestamp Format (RPTF), Session Identifier, Reserved, and Timestamp Format (RPTF), Session Identifier, Reserved, and
skipping to change at line 375 skipping to change at line 376
[RFC6374]. The remaining fields, which are unsigned integers, are as [RFC6374]. The remaining fields, which are unsigned integers, are as
follows: follows:
* Number of Buckets in the measurement. * Number of Buckets in the measurement.
* Reserved 1 must be sent as zero and ignored on receipt. * Reserved 1 must be sent as zero and ignored on receipt.
* Interval (in 10 ns units) is the inter-packet interval for this * Interval (in 10 ns units) is the inter-packet interval for this
bucket. bucket.
* Number of Pkts in Bucket is the number of packets found in this * Number of Pkts in Bucket 1 is the number of packets found in the
bucket. first bucket.
* Number of Pkts in Bucket N is the number of packets found in the
Nth bucket, where N is the value in the Number of Buckets field.
There will be a number of Interval/Number pairs depending on the There will be a number of Interval/Number pairs depending on the
number of buckets being specified by the Querier. If an [RFC6374] number of buckets being specified by the Querier. If a message is
message is being used to configure the buckets (i.e., the responder being used to configure the buckets (i.e., the responder is creating
is creating or modifying the buckets according to the intervals in or modifying the buckets according to the intervals in the Query
the Query message), then the responder MUST respond with 0 packets in message), then the responder MUST respond with 0 packets in each
each bucket until it has been configured for a full measurement bucket until it has been configured for a full measurement period.
period. This indicates that it was configured at the time of the This indicates that it was configured at the time of the last
last response message, and thus, the response is valid for the whole response message, and thus, the response is valid for the whole
interval. As per the convention in [RFC6374], the Number of Pkts in interval. As per the convention in [RFC6374], the Number of Pkts in
Bucket fields are included in the Query message and set to zero. Bucket fields are included in the Query message and set to zero.
Out-of-band configuration is permitted by this mode of operation. Out-of-band configuration is permitted by this mode of operation.
Note this is a departure from the normal fixed format used in Note this is a departure from the normal fixed format used in
[RFC6374]. [RFC6374].
The Time Bucket Jitter Measurement message is carried over an LSP in The Time Bucket Jitter Measurement message is carried over an LSP in
the way described in [RFC6374] and over an LSP with an SFL as the way described in [RFC6374] and over an LSP with an SFL as
skipping to change at line 571 skipping to change at line 575
8. Sampled Measurement 8. Sampled Measurement
In the discussion so far, it has been assumed that we would measure In the discussion so far, it has been assumed that we would measure
the delay characteristics of every packet in a delay measurement the delay characteristics of every packet in a delay measurement
interval defined by an SFL of constant color. In [RFC9341], the interval defined by an SFL of constant color. In [RFC9341], the
concept of a sampled measurement is considered. That is, the concept of a sampled measurement is considered. That is, the
responder only measures a packet at the start of a group of packets responder only measures a packet at the start of a group of packets
being marked for delay measurement by a particular color, rather than being marked for delay measurement by a particular color, rather than
every packet in the marked batch. A measurement interval is not every packet in the marked batch. A measurement interval is not
defined by the duration of a marked batch of packets but the interval defined by the duration of a marked batch of packets but the interval
between a pair of [RFC6374] packets taking a readout of the delay between a pair of packets taking a readout of the delay
characteristic. This approach has the advantage that the measurement characteristic. This approach has the advantage that the measurement
is not impacted by ECMP effects. is not impacted by ECMP effects.
This sampled approach may be used if supported by the responder and This sampled approach may be used if supported by the responder and
configured by the operator. configured by the operator.
9. Carrying RFC 6374 Packets over an LSP Using an SFL 9. Carrying Packets over an LSP Using an SFL
We illustrate the packet format of an [RFC6374] Query message using We illustrate the packet format of a Query message using SFLs for the
SFLs for the case of an MPLS Direct Loss Measurement in Figure 5. case of an MPLS Direct Loss Measurement in Figure 5.
+-------------------------------+ +-------------------------------+
| | | |
| LSP | | LSP |
| Label | | Label |
+-------------------------------+ +-------------------------------+
| | | |
| Synonymous Flow | | Synonymous Flow |
| Label | | Label |
+-------------------------------+ +-------------------------------+
| | | |
| GAL | | GAL |
| | | |
+-------------------------------+ +-------------------------------+
| | | |
| ACH Type = 0xA | | ACH Type = 0xA |
| | | |
+-------------------------------+ +-------------------------------+
| | | |
| RFC 6374 Measurement Message | | Measurement Message |
| | | |
| +-------------------------+ | | +-------------------------+ |
| | | | | | | |
| | Fixed-format | | | | Fixed-format | |
| | portion of msg | | | | portion of msg | |
| | | | | | | |
| +-------------------------+ | | +-------------------------+ |
| | | | | | | |
| | Optional SFL TLV | | | | Optional SFL TLV | |
| | | | | | | |
| +-------------------------+ | | +-------------------------+ |
| | | | | | | |
| | Optional Return | | | | Optional Return | |
| | Information | | | | Information | |
| | | | | | | |
| +-------------------------+ | | +-------------------------+ |
| | | |
+-------------------------------+ +-------------------------------+
Figure 5: RFC 6734 Query Packet with SFL Figure 5: Query Packet with SFL
The MPLS label stack is exactly the same as that used for the user The MPLS label stack is exactly the same as that used for the user
data service packets being instrumented except for the inclusion of data service packets being instrumented except for the inclusion of
the Generic Associated Channel Label (GAL) [RFC5586] to allow the the Generic Associated Channel Label (GAL) [RFC5586] to allow the
receiver to distinguish between normal data packets and OAM packets. receiver to distinguish between normal data packets and OAM packets.
Since the packet loss measurements are being made on the data service Since the packet loss measurements are being made on the data service
packets, an [RFC6374] Direct Loss Measurement is being made, which is packets, an MPLS Direct Loss Measurement is being made, which is
indicated by the type field in the Associated Channel Header (ACH) indicated by the type field in the Associated Channel Header (ACH)
(Type = 0x000A). (Type = 0x000A).
The measurement message as specified in [RFC6374] consists of three The measurement message as specified in [RFC6374] consists of up to
components. The first is the [RFC6374] fixed-format portion of the three components as follows.
message, which is carried over the ACH channel. The ACH channel type
specifies the type of measurement being made (currently: loss, delay,
or loss and delay) as specified in [RFC6374].
Two optional TLVs MAY also be carried if needed. The first is the * The fixed-format portion of the message is carried over the ACH
SFL TLV specified in Section 9.1. This is used to provide the channel. The ACH channel type specifies the type of measurement
implementation with a reminder of the SFL that was used to carry the being made (currently: loss, delay, or loss and delay) as
[RFC6374] message. This is needed because a number of MPLS specified in [RFC6374].
implementations do not provide the MPLS label stack to the MPLS OAM
handler. This TLV is required if [RFC6374] messages are sent over
UDP [RFC7876]. This TLV MUST be included unless, by some method
outside the scope of this document, it is known that this information
is not needed by the [RFC6374] responder.
The second set of information that may be needed is the return * (Optional) The SFL TLV specified in Section 9.1 MAY be carried if
information that allows the responder send the [RFC6374] response to needed. It is used to provide the implementation with a reminder
the Querier. This is not needed if the response is requested in band of the SFL that was used to carry the message. This is needed
and the MPLS construct being measured is a point-to-point LSP, but it because a number of MPLS implementations do not provide the MPLS
otherwise MUST be carried. The Return Address TLV is defined in label stack to the MPLS OAM handler. This TLV is required if
[RFC6374], and the optional UDP Return Object is defined in messages are sent over UDP [RFC7876]. This TLV MUST be included
[RFC7876]. unless, by some method outside the scope of this document, it is
known that this information is not needed by the responder as
specified in [RFC6374].
* (Optional) The return information MAY be carried if needed. It
allows the responder send the response (as specified in [RFC6374])
to the Querier. This is not needed if the response is requested
in band and the MPLS construct being measured is a point-to-point
LSP, but it otherwise MUST be carried. The Return Address TLV is
defined in [RFC6374], and the optional UDP Return Object is
defined in [RFC7876].
Where a measurement other than an MPLS Direct Loss Measurement is to Where a measurement other than an MPLS Direct Loss Measurement is to
be made, the appropriate [RFC6374] measurement message is used (for be made, the appropriate measurement message is used (for example,
example, one of the new types defined in this document), and this is one of the new types defined in this document), and this is indicated
indicated to the receiver by the use of the corresponding ACH type. to the receiver by the use of the corresponding ACH type.
9.1. Extending RFC 6374 with SFL TLV 9.1. Extending RFC 6374 with SFL TLV
The [RFC6374] SFL TLV is shown in Figure 6. This contains the SFL The [RFC6374] SFL TLV is shown in Figure 6. This contains the SFL
that was carried in the label stack, the FEC that was used to that was carried in the label stack, the FEC that was used to
allocate the SFL, and the index (into the batch of SFLs that were allocate the SFL, and the index (into the batch of SFLs that were
allocated for the FEC) that corresponds to this SFL. allocated for the FEC) that corresponds to this SFL.
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 End of changes. 22 change blocks. 
64 lines changed or deleted 70 lines changed or added

This html diff was produced by rfcdiff 1.48.