rfc9571.original | rfc9571.txt | |||
---|---|---|---|---|
MPLS Working Group S. Bryant (Ed) | Internet Engineering Task Force (IETF) S. Bryant, Ed. | |||
Internet-Draft Futurewei Technologies Inc. | Request for Comments: 9571 University of Surrey | |||
Intended status: Standards Track G. Swallow | Category: Standards Track G. Swallow | |||
Expires: September 6, 2021 Southend Technical Center | ISSN: 2070-1721 Independent | |||
M. Chen | M. Chen | |||
Huawei | Huawei | |||
G. Fioccola | G. Fioccola | |||
Huawei Technologies | Huawei Technologies | |||
G. Mirsky | G. Mirsky | |||
ZTE Corp. | ZTE Corp. | |||
March 05, 2021 | May 2024 | |||
RFC6374 Synonymous Flow Labels | Extension of RFC 6374-Based Performance Measurement Using Synonymous | |||
draft-ietf-mpls-rfc6374-sfl-10 | Flow Labels | |||
Abstract | Abstract | |||
RFC 6374 describes methods of making loss and delay measurements on | RFC 6374 describes methods of making loss and delay measurements on | |||
Label Switched Paths (LSPs) primarily as used in MPLS Transport | Label Switched Paths (LSPs) primarily as they are used in MPLS | |||
Profile (MPLS-TP) networks. This document describes a method of | Transport Profile (MPLS-TP) networks. This document describes a | |||
extending RFC 6374 performance measurements from flows carried over | method of extending the performance measurements (specified in RFC | |||
MPLS-TP to flows carried over generic MPLS LSPs. In particular, it | 6374) from flows carried over MPLS-TP to flows carried over generic | |||
extends the technique to allow loss and delay measurements to be made | MPLS LSPs. In particular, it extends the technique to allow loss and | |||
on multi-point to point LSPs and introduces some additional | delay measurements to be made on multipoint-to-point LSPs and | |||
techniques to allow more sophisticated measurements to be made in | introduces some additional techniques to allow more sophisticated | |||
both MPLS-TP and generic MPLS networks. | measurements to be made in both MPLS-TP and generic MPLS networks. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on September 6, 2021. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9571. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2024 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Revised BSD License text as described in Section 4.e of the | |||
the Trust Legal Provisions and are provided without warranty as | Trust Legal Provisions and are provided without warranty as described | |||
described in the Simplified BSD License. | in the Revised BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
2. Requirements Language . . . . . . . . . . . . . . . . . . . . 4 | 2. Requirements Language | |||
3. RFC6374 Packet Loss Measurement with SFL . . . . . . . . . . 4 | 3. Packet Loss Measurement Using SFL | |||
4. RFC6374 Single Packet Delay Measurement . . . . . . . . . . . 4 | 4. Single Packet Delay Measurement Using SFL | |||
5. Data Service Packet Delay Measurement . . . . . . . . . . . . 5 | 5. Data Service Packet Delay Measurement | |||
6. Some Simplifying Rules . . . . . . . . . . . . . . . . . . . 6 | 6. Some Simplifying Rules | |||
7. Multiple Packet Delay Characteristics . . . . . . . . . . . . 7 | 7. Multiple Packet Delay Characteristics | |||
7.1. Method 1: Time Buckets . . . . . . . . . . . . . . . . . 7 | 7.1. Method 1: Time Buckets | |||
7.2. Method 2 Classic Standard Deviation . . . . . . . . . . . 9 | 7.2. Method 2: Classic Standard Deviation | |||
7.2.1. Multi-Packet Delay Measurement Message Format . . . . 10 | 7.2.1. Multi-packet Delay Measurement Message Format | |||
7.3. Per Packet Delay Measurement . . . . . . . . . . . . . . 11 | 7.3. Per-Packet Delay Measurement | |||
7.4. Average Delay . . . . . . . . . . . . . . . . . . . . . . 11 | 7.4. Average Delay | |||
8. Sampled Measurement . . . . . . . . . . . . . . . . . . . . . 13 | 8. Sampled Measurement | |||
9. Carrying RFC6374 Packets over an LSP using an SFL . . . . . . 13 | 9. Carrying Packets over an LSP Using an SFL | |||
9.1. RFC6374 SFL TLV . . . . . . . . . . . . . . . . . . . . . 15 | 9.1. Extending RFC 6374 with SFL TLV | |||
10. RFC6374 Combined Loss-Delay Measurement . . . . . . . . . . . 16 | 10. Combined Loss/Delay Measurement Using SFL | |||
11. Privacy Considerations . . . . . . . . . . . . . . . . . . . 17 | 11. Privacy Considerations | |||
12. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | 12. Security Considerations | |||
13. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 | 13. IANA Considerations | |||
13.1. Allocation of MPLS Generalized Associated Channel | 13.1. Allocation of MPLS Generalized Associated Channel (G-ACh) | |||
(G-ACh) Types . . . . . . . . . . . . . . . . . . . . . 17 | Types | |||
13.2. Allocation of MPLS Loss/Delay TLV Object . . . . . . . . 18 | 13.2. Allocation of MPLS Loss/Delay TLV Object | |||
14. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 18 | 14. References | |||
15. Contributing Authors . . . . . . . . . . . . . . . . . . . . 18 | 14.1. Normative References | |||
16. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 | 14.2. Informative References | |||
16.1. Normative References . . . . . . . . . . . . . . . . . . 18 | Acknowledgments | |||
16.2. Informative References . . . . . . . . . . . . . . . . . 20 | Contributors | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 | Authors' Addresses | |||
1. Introduction | 1. Introduction | |||
[RFC6374] was originally designed for use as an Operations, | [RFC6374] was originally designed for use as an Operations, | |||
Administration, and Maintenance (OAM) protocol for use with MPLS | Administration, and Maintenance (OAM) protocol for use with MPLS | |||
Transport Profile (MPLS-TP) [RFC5921] LSPs. MPLS-TP only supports | Transport Profile (MPLS-TP) [RFC5921] LSPs. MPLS-TP only supports | |||
point-to-point and point-to-multi-point LSPs. This document | point-to-point and point-to-multipoint LSPs. This document describes | |||
describes how to use RFC6374 in the generic MPLS case, and also | how to use [RFC6374] in the generic MPLS case and also introduces a | |||
introduces a number of more sophisticated measurements of | number of more sophisticated measurements of applicability to both | |||
applicability to both cases. | cases. | |||
[RFC8372] describes the requirement for introducing flow identities | [RFC8372] describes the requirement for introducing flow identities | |||
when using RFC6374 [RFC6374] packet Loss Measurements (LM). In | when using packet loss measurements described in [RFC6374]. In | |||
summary RFC6374 uses the loss-measurement (LM) packet as the packet | summary, [RFC6374] describes use of the loss measurement (LM) message | |||
accounting demarcation point. Unfortunately this gives rise to a | as the packet accounting demarcation point. Unfortunately, this | |||
number of problems that may lead to significant packet accounting | gives rise to a number of problems that may lead to significant | |||
errors in certain situations. For example: | packet accounting errors in certain situations. For example: | |||
1. Where a flow is subjected to Equal Cost Multi-Path (ECMP) | 1. Where a flow is subjected to Equal-Cost Multipath (ECMP) | |||
treatment packets can arrive out of order with respect to the LM | treatment, packets can arrive out of order with respect to the LM | |||
packet. | packet. | |||
2. Where a flow is subjected to ECMP treatment, packets can arrive | 2. Where a flow is subjected to ECMP treatment, packets can arrive | |||
at different hardware interfaces, thus requiring reception of an | at different hardware interfaces, thus requiring reception of an | |||
LM packet on one interface to trigger a packet accounting action | LM packet on one interface to trigger a packet accounting action | |||
on a different interface which may not be co-located with it. | on a different interface that may not be co-located with it. | |||
This is a difficult technical problem to address with the | This is a difficult technical problem to address with the | |||
required degree of accuracy. | required degree of accuracy. | |||
3. Even where there is no ECMP (for example on RSVP-TE, MPLS-TP LSPs | 3. Even where there is no ECMP (for example, on RSVP-TE, MPLS-TP | |||
and pseudowires(PWs)) local processing may be distributed over a | LSPs, and pseudowires (PWs)), local processing may be distributed | |||
number of processor cores, leading to synchronization problems. | over a number of processor cores, leading to synchronization | |||
problems. | ||||
4. Link aggregation techniques [RFC7190] may also lead to | 4. Link aggregation techniques [RFC7190] may also lead to | |||
synchronization issues. | synchronization issues. | |||
5. Some forwarder implementations have a long pipeline between | 5. Some forwarder implementations have a long pipeline between | |||
processing a packet and incrementing the associated counter, | processing a packet and incrementing the associated counter, | |||
again leading to synchronization difficulties. | again leading to synchronization difficulties. | |||
An approach to mitigating these synchronization issue is described in | An approach to mitigating these synchronization issues is described | |||
[RFC8321] in which packets are batched by the sender and each batch | in [RFC9341] -- the packets are batched by the sender, and each batch | |||
is marked in some way such that adjacent batches can be easily | is marked in some way such that adjacent batches can be easily | |||
recognized by the receiver. | recognized by the receiver. | |||
An additional problem arises where the LSP is a multi-point to point | An additional problem arises where the LSP is a multipoint-to-point | |||
LSP, since MPLS does not include a source address in the packet. | LSP since MPLS does not include a source address in the packet. | |||
Network management operations require the measurement of packet loss | Network management operations require the measurement of packet loss | |||
between a source and destination. It is thus necessary to introduce | between a source and destination. It is thus necessary to introduce | |||
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 | |||
(SFL) in which labels which 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 RFC6374 | accounting. This memo specifies how SFLs are used to perform packet | |||
packet loss and RFC6374 delay measurements. | loss and delay measurements as described in [RFC6374]. | |||
When the terms "performance measurement method," "Query," "packet," | ||||
or "message" are used in this document, they refer to a performance | ||||
measurement method, Query, packet, or message as specified in | ||||
[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 BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
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. RFC6374 Packet Loss Measurement with SFL | 3. 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. RFC6374 Single Packet Delay Measurement | 4. 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 not | transit time of a packet over an LSP. Such a packet may not need to | |||
need to be carried over an SFL since the delay over a particular LSP | be carried over an SFL since the delay over a particular LSP should | |||
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 which 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 is | of a packet carried over the LSP using an SFL is shown in Section 9. | |||
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 a 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 are made concurrently and yet relatively | permits the two measurements to be made concurrently and yet | |||
independent from each other. The notion that they are relatively | relatively independently from each other. The notion that they are | |||
independent arises from the potential for the two batches to overlap | relatively independent arises from the potential for the two batches | |||
in time, in which case either the delay batch time will need to be | to overlap in time, in which case either the delay batch time will | |||
cut short or the loss time will need to be extended to allow correct | need to be cut short or the loss time will need to be extended to | |||
reconciliation of the various counters. | allow correct reconciliation of the various counters. | |||
The problem is illustrated in Figure 1 below: | The problem is illustrated in Figure 1. | |||
(1) AAAAAAAAAABBBBBBBBBBAAAAAAAAAABBBBBBBBBB | (Case 1) AAAAAAAAAABBBBBBBBBBAAAAAAAAAABBBBBBBBBB | |||
SFL Marking of a packet batch for loss measurement | SFL marking of a packet batch for loss measurement | |||
(2) AADDDDAAAABBBBBBBBBBAAAAAAAAAABBBBBBBBBB | (Case 2) AADDDDAAAABBBBBBBBBBAAAAAAAAAABBBBBBBBBB | |||
SFL Marking of a subset of the packets for delay | SFL marking of a subset of the packets for delay | |||
(3) AAAAAAAADDDDBBBBBBBBAAAAAAAAAABBBBBBBBBB | (Case 3) AAAAAAAADDDDBBBBBBBBAAAAAAAAAABBBBBBBBBB | |||
SFL Marking of a subset of the packets across a | SFL marking of a subset of the packets across a packet loss | |||
packet loss measurement boundary | measurement boundary | |||
(4) AACDCDCDAABBBBBBBBBBAAAAAAAAAABBBBBBBBBB | (Case 4) AACDCDCDAABBBBBBBBBBAAAAAAAAAABBBBBBBBBB | |||
The case of multiple delay measurements within | A case of multiple delay measurements within a packet loss | |||
a packet loss measurement | measurement | |||
A & B are packets where loss is being measured | where | |||
C & D are pacekts where loss and delay 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. | ||||
Figure 1: RFC6734 Query Packet with SFL | Figure 1: Query Packet with SFL | |||
In case 1 of Figure 1 we show the case where loss measurement alone | In Case 1, we show where loss measurement alone is being carried out | |||
is being carried out on the flow under analysis. For illustrative | on the flow under analysis. For illustrative purposes, consider that | |||
purposes consider that 10 packets are used in each flow in the time | 10 packets are used in each flow in the time interval being analyzed. | |||
interval being analyzed. | ||||
Now consider case 2 of Figure 1 where a small batch of packets need | Now consider Case 2, where a small batch of packets need to be | |||
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, SFL=D indicates a batch of packets | The SFL=A indicates loss batch A, and SFL=D indicates a batch of | |||
that are to be instrumented for delay, but SFL D is synonymous with | packets that are to be instrumented for delay, but SFL D is | |||
SFL A, which in turn is synonymous with the underlying Forwarding | synonymous with SFL A, which in turn is synonymous with the | |||
Equivalence Class (FEC). Thus, a packet marked D will be accumulated | underlying Forwarding Equivalence Class (FEC). Thus, a packet marked | |||
into the A loss batch, into the delay statistics and will be | "D" will be accumulated into the A loss batch, into the delay | |||
forwarded as normal. Whether the packet is actually counted twice | statistics, and will be forwarded as normal. Whether the packet is | |||
(for loss and delay) or whether the two counters are reconciled | actually counted twice (for loss and delay) or whether the two | |||
during reporting is a local matter. | counters are reconciled during reporting is a local matter. | |||
Now consider case 3 of Figure 1 where a small batch of packets are | Now consider Case 3, where a small batch of packets is marked for | |||
marked for delay across a loss batch boundary. These packets need to | delay across a loss batch boundary. These packets need to be | |||
be considered as 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 the 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 LSR. | chosen) have arrived at the receiving Label Switching Router (LSR). | |||
Now consider case 4 of Figure 1. Here we have a case where it is | Now consider Case 4. Here, we have a case where it is required to | |||
required to take a number of delay measurements within a batch of | take a number of delay measurements within a batch of packets that we | |||
packets that we are measuring for loss. To do this we need two SFLs | are measuring for loss. To do this, we need two SFLs for delay (C | |||
for delay (C and D) and alternate between them (on a delay batch by | and D) and alternate between them (on a delay-batch-by-delay-batch | |||
delay batch basis) for the purposes of measuring the delay | basis) for the purposes of measuring the delay characteristics of the | |||
characteristics of the different batches of packets. | different batches of packets. | |||
6. Some Simplifying Rules | 6. Some Simplifying Rules | |||
It is possible to construct a large set of overlapping measurement | It is possible to construct a large set of overlapping measurement | |||
types, in terms of loss, delay, loss and delay and batch overlap. If | types in terms of loss, delay, loss and delay, and batch overlap. If | |||
we allow all combinations of cases, this leads to configuration, | we allow all combinations of cases, this leads to configuration, | |||
testing and implementation complexity and hence increased costs. The | testing, and implementation complexity and, hence, increased costs. | |||
following simplifying rules represent the default case: | The following simplifying rules represent the default case: | |||
1. Any system that needs to measure delay MUST be able to measure | 1. Any system that needs to measure delay MUST be able to measure | |||
loss. | loss. | |||
2. Any system that is to measure delay MUST be configured to measure | 2. Any system that is to measure delay MUST be configured to measure | |||
loss. Whether the loss statistics are collected or not is a | loss. Whether the loss statistics are collected or not is a | |||
local matter. | local matter. | |||
3. A delay measurement MAY start at any point during a loss | 3. A delay measurement MAY start at any point during a loss | |||
measurement batch, subject to rule 4. | measurement batch, subject to rule 4. | |||
4. A delay measurement interval MUST be short enough that it will | 4. A delay measurement interval MUST be short enough that it will | |||
complete before the enclosing loss batch completes. | complete before the enclosing loss batch completes. | |||
5. The duration of a second delay (D in Figure 1 batch must be such | 5. The duration of a second delay batch (D in Figure 1) must be such | |||
that all packets from the packets belonging to a first delay | that all packets from the packets belonging to a first delay | |||
batch (C in Figure 1)will have been received before the second | batch (C in Figure 1) will have been received before the second | |||
delay batch completes. This condition is satisfied when the time | delay batch completes. This condition is satisfied when the time | |||
to send a batch is long compared to the network propagation time, | to send a batch is long compared to the network propagation time | |||
and is a parameter that can be established by the network | and is a parameter that can be established by the network | |||
operator. | operator. | |||
Given that the sender controls both the start and duration of a loss | Given that the sender controls both the start and duration of a loss | |||
and a delay packet batch, these rules are readily implemented in the | and a delay packet batch, these rules are readily implemented in the | |||
control plane. | control plane. | |||
7. Multiple Packet Delay Characteristics | 7. Multiple Packet Delay Characteristics | |||
A number of methods are described which add to the set of | A number of methods are described that add to the set of measurements | |||
measurements originally specified in [RFC6374]. Each of these | originally specified in [RFC6374]. Each of these methods has | |||
methods has different characteristics and different processing | different characteristics and different processing demands on the | |||
demands on the packet forwarder. The choice of method will depend on | packet forwarder. The choice of method will depend on the type of | |||
the type of diagnostic that the operator seeks. | diagnostic that the operator seeks. | |||
Three Methods are discussed: | Three methods are discussed: | |||
1. Time Buckets | 1. Time Buckets | |||
2. Classic Standard Deviation | 2. Classic Standard Deviation | |||
3. Average Delay | 3. Average Delay | |||
7.1. Method 1: Time Buckets | 7.1. Method 1: Time Buckets | |||
In this method the receiving LSR measures the inter-packet gap, | In this method, the receiving LSR measures the inter-packet gap, | |||
classifies the delay into a number of delay buckets and records the | classifies the delay into a number of delay buckets, and records the | |||
number of packets in each bucket. As an example, if the operator | number of packets in each bucket. As an example, if the operator | |||
were concerned about packets with a delay of up to 1us, 2us, 4us, | were concerned about packets with a delay of up to 1 μs, 2 μs, 4 μs, | |||
8us, and over 8us then there would be five buckets and packets that | 8 μs, and over 8 μs, then there would be five buckets, and packets | |||
arrived up to 1us would cause the 1us bucket counter to increase, | that arrived up to 1 μs would cause the "up to 1 μs" bucket counter | |||
between 1us and 2us the 2us bucket counter would increase etc. In | to increase. Likewise, for those that arrived between 1 μs and 2 μs, | |||
practice it might be better in terms of processing and potential | the "2 μs" bucket counter would increase, etc. In practice, it might | |||
parallelism if, when a packet had a delay relative to its predecessor | be better in terms of processing and potential parallelism if both | |||
of 2us, then both the up to 1us and the 2us counter were incremented, | the "up to 1 μs" and "2 μs" counters were incremented when a packet | |||
and any more detailed information was calculated in the analytics | had a delay relative to its predecessor of 2 μs, and any more | |||
system. | detailed information was calculated in the analytics system. | |||
This method allows the operator to see more structure in the jitter | This method allows the operator to see more structure in the jitter | |||
characteristics than simply measuring the average jitter, and avoids | characteristics than simply measuring the average jitter and avoids | |||
the complication of needing to perform a per packet multiply, but | the complication of needing to perform a per-packet multiply but will | |||
will probably need the time intervals between buckets to be | probably need the time intervals between buckets to be programmable | |||
programmable by the operator. | by the operator. | |||
The packet format of a Time Bucket Jitter Measurement Message is | The packet format of a Time Bucket Jitter Measurement message is | |||
shown below: | shown below: | |||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|Version| Flags | Control Code | Message Length | | |Version| Flags | Control Code | Message Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| 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 10ns units | | | Interval (in 10 ns units) | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Number 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, QTF, RTF, RPTF, | The Version, Flags, Control Code, Message Length, Querier Timestamp | |||
Session Identifier, Reserved and DS Fields are as defined in section | Format (QTF), Responder Timestamp Format (RTF), Responder's Preferred | |||
3.2 of RFC6374. The remaining fields, which are unsigned integers, | Timestamp Format (RPTF), Session Identifier, Reserved, and | |||
are as follows: | Differentiated Services (DS) fields are as defined in Section 3.2 of | |||
[RFC6374]. The remaining fields, which are unsigned integers, are as | ||||
follows: | ||||
o Number of Buckets in the measurement | * Number of Buckets in the measurement. | |||
o Reserved 1 must be sent as zero and ignored on receipt | * Reserved 1 must be sent as zero and ignored on receipt. | |||
o Interval in 10ns units is the inter-packet interval for | * Interval (in 10 ns units) is the inter-packet interval for this | |||
this bucket | bucket. | |||
o Number Pkts in Bucket is the number of packets found in | * Number of Pkts in Bucket 1 is the number of packets found in the | |||
this 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 [RFC6374] convention 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 | |||
described in Section 9. | described in Section 9. | |||
7.2. Method 2 Classic Standard Deviation | 7.2. Method 2: Classic Standard Deviation | |||
In this method, provision is made for reporting the following delay | In this method, provision is made for reporting the following delay | |||
characteristics: | characteristics: | |||
1. Number of packets in the batch (n). | 1. Number of packets in the batch (n) | |||
2. Sum of delays in a batch (S) | 2. Sum of delays in a batch (S) | |||
3. Maximum Delay. | 3. Maximum delay | |||
4. Minimum Delay. | 4. Minimum delay | |||
5. Sum of squares of Inter-packet delay (SS). | 5. Sum of squares of inter-packet delay (SumS) | |||
Characteristics 1 and 2 give the mean delay. Measuring the delay of | Characteristics 1 and 2 give the mean delay. Measuring the delay of | |||
each pair in the batch is discussed in Section 7.3. | each pair in the batch is discussed in Section 7.3. | |||
Characteristics 3 and 4 give the outliers. | Characteristics 3 and 4 give the outliers. | |||
Characteristics 1, 2 and 5 can be used to calculate the variance of | Characteristics 1, 2, and 5 can be used to calculate the variance of | |||
the inter-packet gap and hence the standard deviation giving a view | the inter-packet gap, hence the standard deviation giving a view of | |||
of the distribution of packet delays and hence the jitter. The | the distribution of packet delays and hence the jitter. The equation | |||
equation for the variance (var) is given by: | for the variance (var) is given by: | |||
var = (SS - S*S/n)/(n-1) | var = (SumS - S*S/n)/(n-1) | |||
There is some concern over the use of this algorithm for measuring | There is some concern over the use of this algorithm for measuring | |||
variance, because SS and S*S/n can be similar numbers, particularly | variance because SumS and S*S/n can be similar numbers, particularly | |||
where variance is low. However the method commends it self by not | where variance is low. However, the method is acceptable because it | |||
requiring a division in the hardware. | does not require a division in the hardware. | |||
7.2.1. Multi-Packet Delay Measurement Message Format | 7.2.1. Multi-packet Delay Measurement Message Format | |||
The packet format of a Multi-Packet Delay Measurement Message is | The packet format of a Multi-packet Delay Measurement message is | |||
shown below: | shown below: | |||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|Version| Flags | Control Code | Message Length | | |Version| Flags | Control Code | Message Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| QTF | RTF | RPTF | Reserved | | | QTF | RTF | RPTF | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Session Identifier | DS | | | Session Identifier | DS | | |||
skipping to change at page 10, line 41 ¶ | skipping to change at line 470 ¶ | |||
| Sum of squares of Inter-packet delay | | | Sum of squares of Inter-packet delay | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ ~ | ~ ~ | |||
~ TLV Block ~ | ~ TLV Block ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 3: Multi-packet Delay Measurement Message Format | Figure 3: Multi-packet Delay Measurement Message Format | |||
The Version, Flags, Control Code, Message Length, QTF, RTF, RPTF, | The Version, Flags, Control Code, Message Length, QTF, RTF, RPTF, | |||
Session Identifier, Reserved and DS Fields are as defined in section | Session Identifier, Reserved, and DS fields are as defined in | |||
3.2 of RFC6374. The remaining fields are as follows: | Section 3.2 of [RFC6374]. The remaining fields are as follows: | |||
o Number of Packets is the number of packets in this batch | * Number of Packets is the number of packets in this batch. | |||
o Sum of Delays for Batch is the duration of the batch in the | * Sum of Delays for Batch is the duration of the batch in the time | |||
time measurement format specified in the RTF field. | measurement format specified in the RTF field. | |||
o Minimum Delay is the minimum inter-packet gap observed during | * Minimum Delay is the minimum inter-packet gap observed during the | |||
the batch in the time format specified in the RTF field. | batch in the time format specified in the RTF field. | |||
o Maximum Delay is the maximum inter-packet gap observed during | * Maximum Delay is the maximum inter-packet gap observed during the | |||
the batch in the time format specified in the RTF field. | batch in the time format specified in the RTF field. | |||
The multi-packet delay measurement message is carried over an LSP in | The Multi-packet Delay 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 | |||
described in Section 9. | described in Section 9. | |||
7.3. Per Packet Delay Measurement | 7.3. Per-Packet Delay Measurement | |||
If detailed packet delay measurement is required then it might be | If detailed packet delay measurement is required, then it might be | |||
possible to record the inter-packet gap for each packet pair. In | possible to record the inter-packet gap for each packet pair. In | |||
other than exception cases of slow flows or small batch sizes, this | cases other than the exceptions of slow flows or small batch sizes, | |||
would create a large (per packet) demand on storage in the | this would create a large (per-packet) demand on storage in the | |||
instrumentation system, a large bandwidth to such a storage system | instrumentation system, a large bandwidth for such a storage system | |||
and large bandwidth to the analytics system. Such a measurement | and large bandwidth for the analytics system. Such a measurement | |||
technique is outside the scope of this document. | technique is outside the scope of this document. | |||
7.4. Average Delay | 7.4. Average Delay | |||
Introduced in [RFC8321] is the concept of a one way delay measurement | Introduced in [RFC9341] is the concept of a one-way delay measurement | |||
in which the average time of arrival of a set of packets is measured. | in which the average time of arrival of a set of packets is measured. | |||
In this approach the packet is time-stamped at arrival and the | In this approach, the packet is timestamped at arrival, and the | |||
Responder returns the sum of the time-stamps and the number of times- | responder returns the sum of the timestamps and the number of | |||
tamps. From this the analytics engine can determine the mean delay. | timestamps. From this, the analytics engine can determine the mean | |||
An alternative model is that the Responder returns the time stamp of | delay. An alternative model is that the responder returns the | |||
the first and last packet and the number of packets. This later | timestamp of the first and last packet and the number of packets. | |||
method has the advantage of allowing the average delay to be | This latter method has the advantage of allowing the average delay to | |||
determined at a number of points along the packet path and allowing | be determined at a number of points along the packet path and | |||
the components of the delay to be characterized. Unless specifically | allowing the components of the delay to be characterized. Unless | |||
configured otherwise, the responder may return either or both types | specifically configured otherwise, the responder may return either or | |||
of response and the analytics engine should process the response | both types of response, and the analytics engine should process the | |||
appropriately. | response appropriately. | |||
The packet format of an Average Delay Measurement Message is shown | The packet format of an Average Delay Measurement message is shown | |||
below: | below: | |||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|Version| Flags | Control Code | Message Length | | |Version| Flags | Control Code | Message Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| QTF | RTF | RPTF | Reserved | | | QTF | RTF | RPTF | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Session Identifier | DS | | | Session Identifier | DS | | |||
skipping to change at page 12, line 31 ¶ | skipping to change at line 543 ¶ | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Sum of Timestamps of Batch | | | Sum of Timestamps of Batch | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ ~ | ~ ~ | |||
~ TLV Block ~ | ~ TLV Block ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 4: Average Delay Measurement Message Format | Figure 4: Average Delay Measurement Message Format | |||
The Version, Flags, Control Code, Message Length, QTF, RTF, RPTF, | The Version, Flags, Control Code, Message Length, QTF, RTF, RPTF, | |||
Session Identifier, and DS Fields are as defined in section 3.2 of | Session Identifier, and DS fields are as defined in Section 3.2 of | |||
RFC6374. The remaining fields are as follows: | [RFC6374]. The remaining fields are as follows: | |||
o Number of Packets is the number of packets in this batch. | * Number of Packets is the number of packets in this batch. | |||
o Time of First Packet is the time of arrival of the first | * Time of First Packet is the time of arrival of the first packet in | |||
packet in the batch. | the batch. | |||
o Time of Last Packet is the time of arrival of the last | * Time of Last Packet is the time of arrival of the last packet in | |||
packet in the batch. | the batch. | |||
o Sum of Timestamps of Batch. | * Sum of Timestamps of Batch. | |||
The average delay measurement message is carried over an LSP in the | The Average Delay Measurement message is carried over an LSP in the | |||
way described in [RFC6374] and over an LSP with an SFL as described | way described in [RFC6374] and over an LSP with an SFL as described | |||
in Section 9. As is the convention with RFC6374, the Query message | in Section 9. As is the convention with [RFC6374], the Query message | |||
contains placeholders for the Response message. The placeholders are | contains placeholders for the Response message. The placeholders are | |||
sent as zero. | sent as zero. | |||
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 [RFC8321] 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 opertor. | configured by the operator. | |||
9. Carrying RFC6374 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 | | |||
| | | | | | |||
+-------------------------------+ | +-------------------------------+ | |||
| | | | | | |||
| RFC6374 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: RFC6734 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, and which | packets, an MPLS Direct Loss Measurement is being made, which is | |||
is indicated by the type field in the ACH (Type = 0x000A). | indicated by the type field in the Associated Channel Header (ACH) | |||
(Type = 0x000A). | ||||
The RFC6374 measurement message consists of the three components, the | The measurement message consists of up to three components as | |||
RFC6374 fixed-format portion of the message as specified in [RFC6374] | follows. | |||
carried over the ACH channel type specified 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). | |||
RFC6374 message. This is needed because a number of MPLS | ||||
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 | 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 [RFC7876]. | 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 responder. | ||||
Where a measurement other than an MPLS direct loss measurement is to | * (Optional) The Return Information MAY be carried if needed. It | |||
be made, the appropriate RFC6374 measurement message is used (for | allows the responder send the response to the Querier. This is | |||
example, one of the new types defined in this document) and this is | not needed if the response is requested in band and the MPLS | |||
indicated to the receiver by the use of the corresponding ACH type. | 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]. | ||||
9.1. RFC6374 SFL TLV | Where a measurement other than an MPLS Direct Loss Measurement is to | |||
be made, the appropriate measurement message is used (for example, | ||||
one of the new types defined in this document), and this is indicated | ||||
to the receiver by the use of the corresponding ACH type. | ||||
The RFC6374 SFL TLV is shown in Figure 6. This contains the SFL that | 9.1. Extending RFC 6374 with SFL TLV | |||
was carried in the label stack, the FEC that was used to allocate the | ||||
SFL and the index into the batch of SLs that were allocated for the | The [RFC6374] SFL TLV is shown in Figure 6. This contains the SFL | |||
FEC that corresponds to this SFL. | 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 | ||||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Length |MBZ| SFL Batch | SFL Index | | | Type | Length |MBZ| SFL Batch | SFL Index | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SFL | Reserved | | | SFL | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| FEC | | | FEC | | |||
. . | . . | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 6: SFL TLV | Figure 6: SFL TLV | |||
Where: | Where: | |||
Type Type is set to Synonymous Flow Label (SFL-TLV). | Type Set to Synonymous Flow Label (SFL-TLV). | |||
Length The length of the TLV as specified in RFC6374. | Length The length of the TLV is as specified in [RFC6374]. | |||
MBZ MUST be sent as zero and ignored on receive. | MBZ MUST be sent as zero and ignored on receive. | |||
SFL Batch The SFL batch that this SFL was allocated as part | SFL Batch An identifier for a collection of SFLs grouped | |||
of see [I-D.bryant-mpls-sfl-control] | together for management and control purposes. | |||
SPL Index The index into the list of SFLs that were assigned | SFL Index The index of this SFL within the list of SFLs that | |||
against the FEC that corresponds to the SFL. | were assigned for the FEC. | |||
Multiple SFLs can be assigned to a FEC each | Multiple SFLs can be assigned to a FEC, each with | |||
with different actions. This index is an optional | different actions. This index is an optional | |||
convenience for use in mapping between the TLV | convenience for use in mapping between the TLV and the | |||
and the associated data structures in the LSRs. | associated data structures in the LSRs. The use of | |||
The use of this feature is agreed between the | this feature is agreed upon between the two parties | |||
two parties during configuration. It is not required, | during configuration. It is not required but is a | |||
but is a convenience for the receiver if both parties | convenience for the receiver if both parties support | |||
support the facility, | the facility. | |||
SFL The SFL used to deliver this packet. This is an MPLS | SFL The SFL used to deliver this packet. This is an MPLS | |||
label which is a component of a label stack entry as | label that is a component of a label stack entry as | |||
defined in Section 2.1 of [RFC3032]. | defined in Section 2.1 of [RFC3032]. | |||
Reserved MUST be sent as zero and ignored on receive. | Reserved MUST be sent as zero and ignored on receive. | |||
FEC The Forwarding Equivalence Class that was used to | FEC The Forwarding Equivalence Class that was used to | |||
request this SFL. This is encoded as per | request this SFL. This is encoded as per | |||
Section 3.4.1 of [RFC5036] | Section 3.4.1 of [RFC5036]. | |||
This information is needed to allow for operation with hardware that | This information is needed to allow for operation with hardware that | |||
discards the MPLS label stack before passing the remainder of the | discards the MPLS label stack before passing the remainder of the | |||
stack to the OAM handler. By providing both the SFL and the FEC plus | stack to the OAM handler. By providing both the SFL and the FEC plus | |||
index into the array of allocated SFLs a number of implementation | index into the array of allocated SFLs, a number of implementation | |||
types are supported. | types are supported. | |||
10. RFC6374 Combined Loss-Delay Measurement | 10. Combined Loss/Delay Measurement Using SFL | |||
This mode of operation is not currently supported by this | This mode of operation is not currently supported by this | |||
specification. | specification. | |||
11. Privacy Considerations | 11. Privacy Considerations | |||
The inclusion of originating and/or flow information in a packet | The inclusion of originating and/or flow information in a packet | |||
provides more identity information and hence potentially degrades the | provides more identity information and hence potentially degrades the | |||
privacy of the communication. Whilst the inclusion of the additional | privacy of the communication. While the inclusion of the additional | |||
granularity does allow greater insight into the flow characteristics | granularity does allow greater insight into the flow characteristics, | |||
it does not specifically identify which node originated the packet | it does not specifically identify which node originated the packet | |||
other than by inspection of the network at the point of ingress, or | other than by inspection of the network at the point of ingress or | |||
inspection of the control protocol packets. This privacy threat may | inspection of the control protocol packets. This privacy threat may | |||
be mitigated by encrypting the control protocol packets, regularly | be mitigated by encrypting the control protocol packets, regularly | |||
changing the synonymous labels and by concurrently using a number of | changing the synonymous labels, and by concurrently using a number of | |||
such labels. | such labels. | |||
12. Security Considerations | 12. Security Considerations | |||
The security considerations documented in [RFC6374] and [RFC8372] | The security considerations documented in [RFC6374] and [RFC8372] | |||
(which in turn calls up [RFC7258] and [RFC5920]) are applicable to | (which in turn calls up [RFC5920] and [RFC7258]) are applicable to | |||
this protocol. | this protocol. | |||
The issue noted in Section 11 is a security consideration. There are | The issue noted in Section 11 is a security consideration. There are | |||
no other new security issues associated with the MPLS dataplane. Any | no other new security issues associated with the MPLS data plane. | |||
control protocol used to request SFLs will need to ensure the | Any control protocol used to request SFLs will need to ensure the | |||
legitimacy of the request. | legitimacy of the request. | |||
An attacker that manages to corrupt the RFC6374 SFL TLV Section 9.1 | An attacker that manages to corrupt the [RFC6374] SFL TLV in | |||
could disrupt the measurements in a way that the RFC6374 responder is | Section 9.1 could disrupt the measurements in a way that the | |||
unable to detect. However, the network opertator is likely to notice | [RFC6374] responder is unable to detect. However, the network | |||
the anomalous network performance measurements, and in any case | operator is likely to notice the anomalous network performance | |||
normal MPLS network security proceedures make this type of attack | measurements, and in any case, normal MPLS network security | |||
extremely unlikley. | procedures make this type of attack extremely unlikely. | |||
13. IANA Considerations | 13. IANA Considerations | |||
13.1. Allocation of MPLS Generalized Associated Channel (G-ACh) Types | 13.1. Allocation of MPLS Generalized Associated Channel (G-ACh) Types | |||
As per the IANA considerations in [RFC5586] updated by [RFC7026] and | As per the IANA considerations in [RFC5586] updated by [RFC7026] and | |||
[RFC7214], IANA is requested to allocate the following codeponts in | [RFC7214], IANA has allocated the following values in the "MPLS | |||
the "MPLS Generalized Associated Channel (G-ACh) Type" registry, in | Generalized Associated Channel (G-ACh) Types" registry, in the | |||
the "Generic Associated Channel (G-ACh) Parameters" name space: | "Generic Associated Channel (G-ACh) Parameters" registry group: | |||
Value Description Reference | ||||
----- --------------------------------- ----------- | ||||
TBD RFC6374 Time Bucket Jitter Measurement This | ||||
TBD RFC6374 Multi-Packet Delay This | +========+================================+===========+ | |||
Measurement | | Value | Description | Reference | | |||
+========+================================+===========+ | ||||
| 0x0010 | Time Bucket Jitter Measurement | RFC 9571 | | ||||
+--------+--------------------------------+-----------+ | ||||
| 0x0011 | Multi-packet Delay Measurement | RFC 9571 | | ||||
+--------+--------------------------------+-----------+ | ||||
| 0x0012 | Average Delay Measurement | RFC 9571 | | ||||
+--------+--------------------------------+-----------+ | ||||
TBD RFC6374 Average Delay Measurement This | Table 1 | |||
13.2. Allocation of MPLS Loss/Delay TLV Object | 13.2. Allocation of MPLS Loss/Delay TLV Object | |||
IANA is requested to allocate a new TLV from the 0-127 range of the | IANA has allocated the following TLV from the 0-127 range of the | |||
MPLS Loss/Delay Measurement TLV Object Registry in the "Generic | "MPLS Loss/Delay Measurement TLV Object" registry in the "Generic | |||
Associated Channel (G-ACh) Parameters" namespace: | Associated Channel (G-ACh) Parameters" registry group: | |||
Type Description Reference | ||||
---- --------------------------------- --------- | ||||
TBD Synonymous Flow Label This | ||||
A value of 4 is recommended. | ||||
RFC Editor please delete this para | ||||
[RFC3032][I-D.bryant-mpls-sfl-control][RFC5036] | ||||
14. Acknowledgments | ||||
The authors thank Benjamin Kaduk and Elwyn Davies for their thorough | ||||
and thoughtful review of this document. | ||||
15. Contributing Authors | ||||
Zhenbin Li | ||||
Huawei | ||||
Email: lizhenbin@huawei.com | ||||
Siva Sivabalan | +======+=======================+===========+ | |||
Ciena Corporation | | Type | Description | Reference | | |||
Email: ssivabal@ciena.com | +======+=======================+===========+ | |||
| 4 | Synonymous Flow Label | RFC 9571 | | ||||
+------+-----------------------+-----------+ | ||||
16. References | Table 2 | |||
16.1. Normative References | 14. References | |||
[I-D.bryant-mpls-sfl-control] | 14.1. Normative References | |||
Bryant, S., Swallow, G., and S. Sivabalan, "A Simple | ||||
Control Protocol for MPLS SFLs", draft-bryant-mpls-sfl- | ||||
control-09 (work in progress), December 2020. | ||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., | [RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., | |||
Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack | Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack | |||
Encoding", RFC 3032, DOI 10.17487/RFC3032, January 2001, | Encoding", RFC 3032, DOI 10.17487/RFC3032, January 2001, | |||
<https://www.rfc-editor.org/info/rfc3032>. | <https://www.rfc-editor.org/info/rfc3032>. | |||
skipping to change at page 20, line 5 ¶ | skipping to change at line 846 ¶ | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
[RFC8957] Bryant, S., Chen, M., Swallow, G., Sivabalan, S., and G. | [RFC8957] Bryant, S., Chen, M., Swallow, G., Sivabalan, S., and G. | |||
Mirsky, "Synonymous Flow Label Framework", RFC 8957, | Mirsky, "Synonymous Flow Label Framework", RFC 8957, | |||
DOI 10.17487/RFC8957, January 2021, | DOI 10.17487/RFC8957, January 2021, | |||
<https://www.rfc-editor.org/info/rfc8957>. | <https://www.rfc-editor.org/info/rfc8957>. | |||
16.2. Informative References | 14.2. Informative References | |||
[RFC3270] Le Faucheur, F., Wu, L., Davie, B., Davari, S., Vaananen, | [RFC3270] Le Faucheur, F., Ed., Wu, L., Davie, B., Davari, S., | |||
P., Krishnan, R., Cheval, P., and J. Heinanen, "Multi- | Vaananen, P., Krishnan, R., Cheval, P., and J. Heinanen, | |||
Protocol Label Switching (MPLS) Support of Differentiated | "Multi-Protocol Label Switching (MPLS) Support of | |||
Services", RFC 3270, DOI 10.17487/RFC3270, May 2002, | Differentiated Services", RFC 3270, DOI 10.17487/RFC3270, | |||
<https://www.rfc-editor.org/info/rfc3270>. | May 2002, <https://www.rfc-editor.org/info/rfc3270>. | |||
[RFC5920] Fang, L., Ed., "Security Framework for MPLS and GMPLS | [RFC5920] Fang, L., Ed., "Security Framework for MPLS and GMPLS | |||
Networks", RFC 5920, DOI 10.17487/RFC5920, July 2010, | Networks", RFC 5920, DOI 10.17487/RFC5920, July 2010, | |||
<https://www.rfc-editor.org/info/rfc5920>. | <https://www.rfc-editor.org/info/rfc5920>. | |||
[RFC5921] Bocci, M., Ed., Bryant, S., Ed., Frost, D., Ed., Levrau, | [RFC5921] Bocci, M., Ed., Bryant, S., Ed., Frost, D., Ed., Levrau, | |||
L., and L. Berger, "A Framework for MPLS in Transport | L., and L. Berger, "A Framework for MPLS in Transport | |||
Networks", RFC 5921, DOI 10.17487/RFC5921, July 2010, | Networks", RFC 5921, DOI 10.17487/RFC5921, July 2010, | |||
<https://www.rfc-editor.org/info/rfc5921>. | <https://www.rfc-editor.org/info/rfc5921>. | |||
[RFC7190] Villamizar, C., "Use of Multipath with MPLS and MPLS | [RFC7190] Villamizar, C., "Use of Multipath with MPLS and MPLS | |||
Transport Profile (MPLS-TP)", RFC 7190, | Transport Profile (MPLS-TP)", RFC 7190, | |||
DOI 10.17487/RFC7190, March 2014, | DOI 10.17487/RFC7190, March 2014, | |||
<https://www.rfc-editor.org/info/rfc7190>. | <https://www.rfc-editor.org/info/rfc7190>. | |||
[RFC7258] Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an | [RFC7258] Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an | |||
Attack", BCP 188, RFC 7258, DOI 10.17487/RFC7258, May | Attack", BCP 188, RFC 7258, DOI 10.17487/RFC7258, May | |||
2014, <https://www.rfc-editor.org/info/rfc7258>. | 2014, <https://www.rfc-editor.org/info/rfc7258>. | |||
[RFC8321] Fioccola, G., Ed., Capello, A., Cociglio, M., Castaldelli, | ||||
L., Chen, M., Zheng, L., Mirsky, G., and T. Mizrahi, | ||||
"Alternate-Marking Method for Passive and Hybrid | ||||
Performance Monitoring", RFC 8321, DOI 10.17487/RFC8321, | ||||
January 2018, <https://www.rfc-editor.org/info/rfc8321>. | ||||
[RFC8372] Bryant, S., Pignataro, C., Chen, M., Li, Z., and G. | [RFC8372] Bryant, S., Pignataro, C., Chen, M., Li, Z., and G. | |||
Mirsky, "MPLS Flow Identification Considerations", | Mirsky, "MPLS Flow Identification Considerations", | |||
RFC 8372, DOI 10.17487/RFC8372, May 2018, | RFC 8372, DOI 10.17487/RFC8372, May 2018, | |||
<https://www.rfc-editor.org/info/rfc8372>. | <https://www.rfc-editor.org/info/rfc8372>. | |||
Authors' Addresses | [RFC9341] Fioccola, G., Ed., Cociglio, M., Mirsky, G., Mizrahi, T., | |||
and T. Zhou, "Alternate-Marking Method", RFC 9341, | ||||
DOI 10.17487/RFC9341, December 2022, | ||||
<https://www.rfc-editor.org/info/rfc9341>. | ||||
Stewart Bryant | Acknowledgments | |||
Futurewei Technologies Inc. | ||||
The authors thank Benjamin Kaduk and Elwyn Davies for their thorough | ||||
and thoughtful review of this document. | ||||
Contributors | ||||
Zhenbin Li | ||||
Huawei | ||||
Email: lizhenbin@huawei.com | ||||
Siva Sivabalan | ||||
Ciena Corporation | ||||
Email: ssivabal@ciena.com | ||||
Authors' Addresses | ||||
Stewart Bryant (editor) | ||||
University of Surrey | ||||
Email: sb@stewartbryant.com | Email: sb@stewartbryant.com | |||
George Swallow | ||||
Southend Technical Center | ||||
George Swallow | ||||
Independent | ||||
Email: swallow.ietf@gmail.com | Email: swallow.ietf@gmail.com | |||
Mach Chen | Mach(Guoyi) Chen | |||
Huawei | Huawei | |||
Email: mach.chen@huawei.com | Email: mach.chen@huawei.com | |||
Giuseppe Fioccola | Giuseppe Fioccola | |||
Huawei Technologies | Huawei Technologies | |||
Email: giuseppe.fioccola@huawei.com | Email: giuseppe.fioccola@huawei.com | |||
Gregory Mirsky | Gregory Mirsky | |||
ZTE Corp. | ZTE Corp. | |||
Email: gregimirsky@gmail.com | Email: gregimirsky@gmail.com | |||
End of changes. 149 change blocks. | ||||
400 lines changed or deleted | 402 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |