| < draft-ietf-6man-ipv6-alt-mark-03.txt | draft-ietf-6man-ipv6-alt-mark-04.txt > | |||
|---|---|---|---|---|
| 6MAN Working Group G. Fioccola | 6MAN Working Group G. Fioccola | |||
| Internet-Draft T. Zhou | Internet-Draft T. Zhou | |||
| Intended status: Standards Track Huawei | Intended status: Standards Track Huawei | |||
| Expires: August 1, 2021 M. Cociglio | Expires: September 9, 2021 M. Cociglio | |||
| Telecom Italia | Telecom Italia | |||
| F. Qin | F. Qin | |||
| China Mobile | China Mobile | |||
| R. Pang | R. Pang | |||
| China Unicom | China Unicom | |||
| January 28, 2021 | March 8, 2021 | |||
| IPv6 Application of the Alternate Marking Method | IPv6 Application of the Alternate Marking Method | |||
| draft-ietf-6man-ipv6-alt-mark-03 | draft-ietf-6man-ipv6-alt-mark-04 | |||
| Abstract | Abstract | |||
| This document describes how the Alternate Marking Method can be used | This document describes how the Alternate Marking Method can be used | |||
| as the passive performance measurement tool in an IPv6 domain and | as a passive performance measurement tool in an IPv6 domain. It | |||
| reports implementation considerations. It proposes how to define a | defines a new Extension Header Option to encode alternate marking | |||
| new Extension Header Option to encode alternate marking technique and | information in both the Hop-by-Hop Options Header and Destination | |||
| both Hop-by-Hop Options Header and Destination Options Header are | Options Header. | |||
| considered. | ||||
| Requirements Language | 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", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in BCP 14 [RFC2119] | document are to be interpreted as described in BCP 14 [RFC2119] | |||
| [RFC8174] when, and only when, they appear in all capitals, as shown | [RFC8174] when, and only when, they appear in all capitals, as shown | |||
| here. | here. | |||
| Status of This Memo | Status of This Memo | |||
| skipping to change at page 1, line 49 ¶ | skipping to change at page 1, line 48 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on August 1, 2021. | This Internet-Draft will expire on September 9, 2021. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 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 | |||
| skipping to change at page 2, line 48 ¶ | skipping to change at page 2, line 48 ¶ | |||
| 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 9.1. Normative References . . . . . . . . . . . . . . . . . . 14 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 14 | |||
| 9.2. Informative References . . . . . . . . . . . . . . . . . 14 | 9.2. Informative References . . . . . . . . . . . . . . . . . 14 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 1. Introduction | 1. Introduction | |||
| [RFC8321] and [RFC8889] describe a passive performance measurement | [RFC8321] and [RFC8889] describe a passive performance measurement | |||
| method, which can be used to measure packet loss, latency and jitter | method, which can be used to measure packet loss, latency and jitter | |||
| on live traffic. Since this method is based on marking consecutive | on live traffic. Since this method is based on marking consecutive | |||
| batches of packets, the method is often referred as Alternate Marking | batches of packets, the method is often referred as the Alternate | |||
| Method. | Marking Method. | |||
| The Alternate Marking Method has became mature to be implemented and | This document defines how the Alternate Marking Method can be used to | |||
| encoded in the IPv6 protocol and this document defines how it can be | measure packet loss and delay metrics in IPv6. | |||
| used to measure packet loss and delay metrics in IPv6. | ||||
| The format of the IPv6 addresses is defined in [RFC4291] while | The format of IPv6 addresses is defined in [RFC4291] while [RFC8200] | |||
| [RFC8200] defines the IPv6 Header, including a 20-bit Flow Label and | defines the IPv6 Header, including a 20-bit Flow Label and the IPv6 | |||
| the IPv6 Extension Headers. The Segment Routing Header (SRH) is | Extension Headers. | |||
| defined in [RFC8754] to apply Segment Routing over IPv6 dataplane | ||||
| (SRv6). | ||||
| [I-D.fioccola-v6ops-ipv6-alt-mark] summarizes the possible | [I-D.fioccola-v6ops-ipv6-alt-mark] summarizes the possible | |||
| implementation options for the application of the Alternate Marking | implementation options for the application of the Alternate Marking | |||
| Method in an IPv6 domain. This document, starting from the outcome | Method in an IPv6 domain. This document, starting from the outcome | |||
| of [I-D.fioccola-v6ops-ipv6-alt-mark], introduces a new TLV that can | of [I-D.fioccola-v6ops-ipv6-alt-mark], introduces a new TLV that can | |||
| be encoded in the Options Headers (both Hop-by-Hop or Destination) | be encoded in the Options Headers (Hop-by-Hop or Destination) for the | |||
| for the purpose of the Alternate Marking Method application in an | purpose of the Alternate Marking Method application in an IPv6 | |||
| IPv6 domain. The case of SRH ([RFC8754]) is also discussed, anyway | domain. While the case of Segment Routing Header (SRH), defined in | |||
| this is valid for all the types of Routing Header (RH). | [RFC8754], is also discussed, it is valid for all the types of | |||
| Routing Header (RH). | ||||
| 2. Alternate Marking application to IPv6 | 2. Alternate Marking application to IPv6 | |||
| The Alternate Marking Method requires a marking field. As mentioned, | The Alternate Marking Method requires a marking field. As mentioned, | |||
| several alternatives have been analysed in | several alternatives have been analysed in | |||
| [I-D.fioccola-v6ops-ipv6-alt-mark] such as IPv6 Extension Headers, | [I-D.fioccola-v6ops-ipv6-alt-mark] such as IPv6 Extension Headers, | |||
| IPv6 Address and Flow Label. | IPv6 Address and Flow Label. | |||
| Consequently, it is possible to state that the only robust choice is | Consequently, a robust choice is to standardize a new Hop-by-Hop or | |||
| to standardize a new Hop-by-Hop or Destination Option. | Destination Option. | |||
| This approach is compliant with [RFC8200] indeed the Alternate | This approach is compliant with [RFC8200]. The Alternate Marking | |||
| Marking application to IPv6 involves the following operations: | application to IPv6 involves the following operations: | |||
| o The source node is the only one that writes the Option Header to | o The source node is the only one that writes the Option Header to | |||
| mark alternately the flow (for both Hop-by-Hop and Destination | mark alternately the flow (for both Hop-by-Hop and Destination | |||
| Option). | Option). | |||
| o In case of Hop-by-Hop Option Header carrying Alternate Marking | o In case of Hop-by-Hop Option Header carrying Alternate Marking | |||
| bits, it is not inserted or deleted, but can be read by any node | bits, it is not inserted or deleted, but can be read by any node | |||
| along the path. The intermediate nodes may be configured to | along the path. The intermediate nodes may be configured to | |||
| support this Option or not. Anyway this does not impact the | support this Option or not and the measurement can be done only | |||
| traffic throughput since the measurement can be done only for the | for the nodes configured to read the Option. Anyway this should | |||
| nodes configured to read the Option. | not affect the traffic throughput on nodes that do not recognize | |||
| the Option, as further discussed in Section 4. | ||||
| o In case of Destination Option Header carrying Alternate Marking | o In case of Destination Option Header carrying Alternate Marking | |||
| bits, it is not processed, inserted, or deleted by any node along | bits, it is not processed, inserted, or deleted by any node along | |||
| the path until the packet reaches the destination node. Note | the path until the packet reaches the destination node. Note | |||
| that, if there is also a Routing Header (RH), any visited | that, if there is also a Routing Header (RH), any visited | |||
| destination in the route list can process the Option Header. | destination in the route list can process the Option Header. | |||
| Hop-by-Hop Option Header is also useful to signal to routers on the | Hop-by-Hop Option Header is also useful to signal to routers on the | |||
| path to process the Alternate Marking, anyway it is to be expected | path to process the Alternate Marking, anyway it is to be expected | |||
| that some routers cannot process it unless explicitly configured. | that some routers cannot process it unless explicitly configured. | |||
| skipping to change at page 5, line 46 ¶ | skipping to change at page 5, line 44 ¶ | |||
| Type; for AltMark these two bits MUST be set to 00 (skip over this | Type; for AltMark these two bits MUST be set to 00 (skip over this | |||
| Option and continue processing the header). The third-highest- | Option and continue processing the header). The third-highest- | |||
| order bit specifies whether or not the Option Data can change en | order bit specifies whether or not the Option Data can change en | |||
| route to the packet's final destination; for AltMark the value of | route to the packet's final destination; for AltMark the value of | |||
| this bit MUST be set to 0 (Option Data does not change en route). | this bit MUST be set to 0 (Option Data does not change en route). | |||
| o Opt Data Len: The length of the Option Data Fields of this Option | o Opt Data Len: The length of the Option Data Fields of this Option | |||
| in bytes. | in bytes. | |||
| o FlowMonID: 20 bits unsigned integer. The FlowMon identifier is | o FlowMonID: 20 bits unsigned integer. The FlowMon identifier is | |||
| described hereinafter. | described in Section 5.3. | |||
| o L: Loss flag for Packet Loss Measurement as described hereinafter; | o L: Loss flag for Packet Loss Measurement as described in | |||
| Section 5.1; | ||||
| o D: Delay flag for Single Packet Delay Measurement as described | o D: Delay flag for Single Packet Delay Measurement as described in | |||
| hereinafter; | Section 5.2; | |||
| o Reserved: is reserved for future use. These bits MUST be set to | o Reserved: is reserved for future use. These bits MUST be set to | |||
| zero on transmission and ignored on receipt. | zero on transmission and ignored on receipt. | |||
| 4. Use of the AltMark Option | 4. Use of the AltMark Option | |||
| The AltMark Option is the best way to implement the Alternate Marking | The AltMark Option is the best way to implement the Alternate Marking | |||
| method and can be carried by the Hop-by-Hop Options header and the | method and can be carried by the Hop-by-Hop Options header and the | |||
| Destination Options header. In case of Destination Option, it is | Destination Options header. In case of Destination Option, it is | |||
| processed only by the source and destination nodes: the source node | processed only by the source and destination nodes: the source node | |||
| inserts and the destination node removes it. While, in case of Hop- | inserts and the destination node removes it. While, in case of Hop- | |||
| by-Hop Option, it may be examined by any node along the path, if | by-Hop Option, it may be examined by any node along the path, if | |||
| explicitly configured to do so. In this way an unrecognized Hop-by- | explicitly configured to do so. | |||
| Hop Option may be just ignored without any impact. | ||||
| So it is important to highlight that the Option Layout can be used | It is important to highlight that the Option Layout can be used both | |||
| both as Destination Option and as Hop-by-Hop Option depending on the | as Destination Option and as Hop-by-Hop Option depending on the Use | |||
| Use Cases and it is based on the chosen type of performance | Cases and it is based on the chosen type of performance measurement. | |||
| measurement. In general, it is needed to perform both end to end and | In general, it is needed to perform both end to end and hop by hop | |||
| hop by hop measurements, and the alternate marking methodology | measurements, and the alternate marking methodology allows, by | |||
| allows, by definition, both performance measurements. Anyway, in | definition, both performance measurements. Anyway, in many cases the | |||
| many cases the end-to-end measurement is not enough and it is | end-to-end measurement is not enough and it is required also the hop- | |||
| required also the hop-by-hop measurement, so the most complete choice | by-hop measurement, so the most complete choice is the Hop-by-Hop | |||
| is the Hop-by-Hop Options Header. | Options Header. | |||
| IPv6, as specified in [RFC8200], allows nodes to optionally process | IPv6, as specified in [RFC8200], allows nodes to optionally process | |||
| Hop-by-Hop headers. Specifically the Hop-by-Hop Options header is | Hop-by-Hop headers. Specifically the Hop-by-Hop Options header is | |||
| not inserted or deleted, but may be examined or processed by any node | not inserted or deleted, but may be examined or processed by any node | |||
| along a packet's delivery path, until the packet reaches the node (or | along a packet's delivery path, until the packet reaches the node (or | |||
| each of the set of nodes, in the case of multicast) identified in the | each of the set of nodes, in the case of multicast) identified in the | |||
| Destination Address field of the IPv6 header. Also, it is expected | Destination Address field of the IPv6 header. Also, it is expected | |||
| that nodes along a packet's delivery path only examine and process | that nodes along a packet's delivery path only examine and process | |||
| the Hop-by-Hop Options header if explicitly configured to do so. | the Hop-by-Hop Options header if explicitly configured to do so. | |||
| The Hop-by-Hop Option defined in this document is designed to take | The Hop-by-Hop Option defined in this document is designed to take | |||
| advantage of the property of how Hop-by-Hop options are processed. | advantage of the property of how Hop-by-Hop options are processed. | |||
| Nodes that do not support this Option SHOULD ignore them. This can | Nodes that do not support this Option SHOULD ignore them. This can | |||
| mean that, in this case, the performance measurement does not account | mean that, in this case, the performance measurement does not account | |||
| for all links and nodes along a path. | for all links and nodes along a path. | |||
| Another application that can be mentioned is the presence of a | Another application that can be mentioned is the presence of a | |||
| Routing Header, in particular it is possible to consider SRv6. SRv6 | Routing Header, in particular it is possible to consider SRv6. A new | |||
| leverages the Segment Routing header which consists of a new type of | type of Routing Header, referred as SRH, has been defined for SRv6. | |||
| routing header. Like any other use case of IPv6, Hop-by-Hop and | Like any other use case of IPv6, Hop-by-Hop and Destination Options | |||
| Destination Options are useable when SRv6 header is present. Because | are useable when SRv6 header is present. Because SRv6 is implemented | |||
| SRv6 is implemented through a Segment Routing Header (SRH), | through a Segment Routing Header (SRH), Destination Options before | |||
| Destination Options before the Routing Header are processed by each | the Routing Header are processed by each destination in the route | |||
| destination in the route list, that means, in case of SRH, by every | list, that means, in case of SRH, by every node that is an identity | |||
| node that is an identity in the SR path. | in the SR path. | |||
| In summary, it is possible to list the alternative possibilities: | In summary, it is possible to list the alternative possibilities: | |||
| o Destination Option not preceding a Routing Header => measurement | o Destination Option not preceding a Routing Header => measurement | |||
| only by node in Destination Address. | only by node in Destination Address. | |||
| o Hop-by-Hop Option => every router on the path with feature | o Hop-by-Hop Option => every router on the path with feature | |||
| enabled. | enabled. | |||
| o Destination Option preceding a Routing Header => every destination | o Destination Option preceding a Routing Header => every destination | |||
| skipping to change at page 7, line 47 ¶ | skipping to change at page 7, line 47 ¶ | |||
| "skip if do not recognize and data do not change en route". | "skip if do not recognize and data do not change en route". | |||
| [RFC8200] also mentions that the nodes only examine and process the | [RFC8200] also mentions that the nodes only examine and process the | |||
| Hop-by-Hop Options header if explicitly configured to do so. For | Hop-by-Hop Options header if explicitly configured to do so. For | |||
| these reasons, this HbH Option should not affect the throughput. | these reasons, this HbH Option should not affect the throughput. | |||
| Anyway, in practice, it is important to be aware for the | Anyway, in practice, it is important to be aware for the | |||
| implementation that the things may be different and it can happen | implementation that the things may be different and it can happen | |||
| that packets with Hop-by-Hop are forced onto the slow path, but this | that packets with Hop-by-Hop are forced onto the slow path, but this | |||
| is a general issue, as also explained in | is a general issue, as also explained in | |||
| [I-D.hinden-6man-hbh-processing]. | [I-D.hinden-6man-hbh-processing]. | |||
| In addition to the previous alternatives, for legacy network it is | In addition to the previous alternatives, it could be possible to | |||
| possible to mention a non-conventional application of the Destination | consider a non-conventional application of the Destination Options | |||
| Option for the hop by hop usage. [RFC8200] defines that the nodes | for hop by hop action, but this would cause worse performance than | |||
| along a path examine and process the Hop-by-Hop Options header only | Hop-by-Hop. The only motivation for the hop by hop usage of | |||
| if Hop-by-Hop processing is explicitly configured. On the other | Destination Options can be for compatibility reasons but in general | |||
| hand, using the Destination Option for hop by hop action would cause | it is not recommended. | |||
| worse performance than Hop-by-Hop. The only motivation for the hop | ||||
| by hop usage of Destination Options can be for compatibility reasons | ||||
| but in general it is not recommended. | ||||
| 5. Alternate Marking Method Operation | 5. Alternate Marking Method Operation | |||
| This section describes how the method operates. [RFC8321] introduces | This section describes how the method operates. [RFC8321] introduces | |||
| several alternatives but in this section the most applicable methods | several alternatives but in this section the most applicable methods | |||
| are reported and a new field is introduced to facilitate the | are reported and a new field is introduced to facilitate the | |||
| deployment and improve the scalability. | deployment and improve the scalability. | |||
| 5.1. Packet Loss Measurement | 5.1. Packet Loss Measurement | |||
| End of changes. 19 change blocks. | ||||
| 62 lines changed or deleted | 57 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||