draft-ietf-bier-ping-08.txt | draft-ietf-bier-ping-10.txt | |||
---|---|---|---|---|
Network Work group N. Kumar | Network Work group N. Kumar | |||
Internet-Draft C. Pignataro | Internet-Draft C. Pignataro | |||
Intended status: Standards Track Cisco Systems, Inc. | Intended status: Standards Track Cisco Systems, Inc. | |||
Expires: 7 September 2023 N. Akiya | Expires: 20 November 2023 N. Akiya | |||
Big Switch Networks | Big Switch Networks | |||
L. Zheng | L. Zheng | |||
Individual Contributor | Individual Contributor | |||
M. Chen | M. Chen | |||
Huawei Technologies | Huawei Technologies | |||
G. Mirsky | G. Mirsky | |||
Ericsson | Ericsson | |||
6 March 2023 | 19 May 2023 | |||
BIER Ping and Trace | BIER Ping and Trace | |||
draft-ietf-bier-ping-08 | draft-ietf-bier-ping-10 | |||
Abstract | Abstract | |||
Bit Index Explicit Replication (BIER) is an architecture that | Bit Index Explicit Replication (BIER) is an architecture that | |||
provides optimal multicast forwarding through a "BIER domain" without | provides optimal multicast forwarding through a "BIER domain" without | |||
requiring intermediate routers to maintain any multicast related per- | requiring intermediate routers to maintain any multicast-related per- | |||
flow state. BIER also does not require any explicit tree-building | flow state. BIER also does not require any explicit tree-building | |||
protocol for its operation. A multicast data packet enters a BIER | protocol for its operation. A multicast data packet enters a BIER | |||
domain at a "Bit-Forwarding Ingress Router" (BFIR), and leaves the | domain at a "Bit-Forwarding Ingress Router" (BFIR), and leaves the | |||
BIER domain at one or more "Bit-Forwarding Egress Routers" (BFERs). | BIER domain at one or more "Bit-Forwarding Egress Routers" (BFERs). | |||
The BFIR router adds a BIER header to the packet. The BIER header | The BFIR router adds a BIER header to the packet. The BIER header | |||
contains a bit-string in which each bit represents exactly one BFER | contains a bit-string in which each bit represents exactly one BFER | |||
to forward the packet to. The set of BFERs to which the multicast | to forward the packet to. The set of BFERs to which the multicast | |||
packet needs to be forwarded is expressed by setting the bits that | packet needs to be forwarded is expressed by setting the bits that | |||
correspond to those routers in the BIER header. | correspond to those routers in the BIER header. | |||
skipping to change at page 2, line 10 ¶ | skipping to change at page 2, line 10 ¶ | |||
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 7 September 2023. | This Internet-Draft will expire on 20 November 2023. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2023 IETF Trust and the persons identified as the | Copyright (c) 2023 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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
skipping to change at page 2, line 34 ¶ | skipping to change at page 2, line 34 ¶ | |||
provided without warranty as described in the Revised BSD License. | provided without warranty as described in the Revised BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Conventions used in this document . . . . . . . . . . . . . . 3 | 2. Conventions used in this document . . . . . . . . . . . . . . 3 | |||
2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | 2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2.2. Requirements Language . . . . . . . . . . . . . . . . . . 4 | 2.2. Requirements Language . . . . . . . . . . . . . . . . . . 4 | |||
3. BIER OAM . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3. BIER OAM . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3.1. BIER OAM message format . . . . . . . . . . . . . . . . . 4 | 3.1. BIER OAM message format . . . . . . . . . . . . . . . . . 4 | |||
3.2. Return Code . . . . . . . . . . . . . . . . . . . . . . . 6 | 3.2. Return Code . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
3.3. BIER OAM TLV . . . . . . . . . . . . . . . . . . . . . . 8 | 3.3. BIER OAM TLV . . . . . . . . . . . . . . . . . . . . . . 9 | |||
3.3.1. Original SI-BitString TLV . . . . . . . . . . . . . . 8 | 3.3.1. Original SI-BitString TLV . . . . . . . . . . . . . . 9 | |||
3.3.2. Target SI-BitString TLV . . . . . . . . . . . . . . . 9 | 3.3.2. Target SI-BitString TLV . . . . . . . . . . . . . . . 10 | |||
3.3.3. Incoming SI-BitString TLV . . . . . . . . . . . . . . 10 | 3.3.3. Incoming SI-BitString TLV . . . . . . . . . . . . . . 11 | |||
3.3.4. Downstream Mapping TLV . . . . . . . . . . . . . . . 10 | 3.3.4. Downstream Mapping TLV . . . . . . . . . . . . . . . 12 | |||
3.3.5. Responder BFER TLV . . . . . . . . . . . . . . . . . 13 | 3.3.5. Responder BFER TLV . . . . . . . . . . . . . . . . . 15 | |||
3.3.6. Responder BFR TLV . . . . . . . . . . . . . . . . . . 13 | 3.3.6. Responder BFR TLV . . . . . . . . . . . . . . . . . . 15 | |||
3.3.7. Upstream Interface TLV . . . . . . . . . . . . . . . 14 | 3.3.7. Upstream Interface TLV . . . . . . . . . . . . . . . 16 | |||
3.3.8. Reply-To TLV . . . . . . . . . . . . . . . . . . . . 15 | 3.4. Multipath Entropy Data Encoding . . . . . . . . . . . . . 17 | |||
3.4. Multipath Entropy Data Encoding . . . . . . . . . . . . . 16 | 4. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
4. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . 16 | 4.1. BIER OAM Processing . . . . . . . . . . . . . . . . . . . 17 | |||
4.1. BIER OAM Processing . . . . . . . . . . . . . . . . . . . 16 | ||||
4.2. Per BFER ECMP Discovery . . . . . . . . . . . . . . . . . 17 | 4.2. Per BFER ECMP Discovery . . . . . . . . . . . . . . . . . 17 | |||
4.3. Sending BIER Echo Request . . . . . . . . . . . . . . . . 17 | 4.3. Sending BIER Echo Request . . . . . . . . . . . . . . . . 18 | |||
4.4. Receiving BIER Echo Request . . . . . . . . . . . . . . . 18 | 4.4. Receiving BIER Echo Request . . . . . . . . . . . . . . . 19 | |||
4.5. Sending Echo Reply . . . . . . . . . . . . . . . . . . . 20 | 4.5. Sending Echo Reply . . . . . . . . . . . . . . . . . . . 21 | |||
4.6. Receiving Echo Reply . . . . . . . . . . . . . . . . . . 21 | 4.6. Receiving Echo Reply . . . . . . . . . . . . . . . . . . 22 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 | |||
5.1. BIER OAM Registry . . . . . . . . . . . . . . . . . . . . 22 | 5.1. UDP Port Number . . . . . . . . . . . . . . . . . . . . . 22 | |||
5.2. Message Types, Reply Modes, Return Codes . . . . . . . . 22 | 5.2. BIER OAM Parameters . . . . . . . . . . . . . . . . . . . 22 | |||
5.3. TLVs . . . . . . . . . . . . . . . . . . . . . . . . . . 22 | 5.3. BIER OAM Message Type . . . . . . . . . . . . . . . . . . 22 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 23 | 5.4. BIER Echo Request/Echo Reply Parameters . . . . . . . . . 23 | |||
7. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 23 | 5.4.1. BIER Echo Request/Echo Reply Message Types . . . . . 23 | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 23 | 5.4.2. BIER Echo Reply Modes . . . . . . . . . . . . . . . . 24 | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 23 | 5.4.3. BIER Echo Return Codes . . . . . . . . . . . . . . . 25 | |||
8.2. Informative References . . . . . . . . . . . . . . . . . 24 | 5.5. TLVs . . . . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 24 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 27 | |||
7. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 28 | ||||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 28 | ||||
8.1. Normative References . . . . . . . . . . . . . . . . . . 28 | ||||
8.2. Informative References . . . . . . . . . . . . . . . . . 29 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 29 | ||||
1. Introduction | 1. Introduction | |||
[RFC8279] introduces and explains BIER architecture that provides | [RFC8279] introduces and explains BIER architecture that provides | |||
optimal multicast forwarding through a "BIER domain" without | optimal multicast forwarding through a "BIER domain" without | |||
requiring intermediate routers to maintain any multicast related per- | requiring intermediate routers to maintain any multicast-related per- | |||
flow state. BIER also does not require any explicit tree-building | flow state. BIER also does not require any explicit tree-building | |||
protocol for its operation. A multicast data packet enters a BIER | protocol for its operation. A multicast data packet enters a BIER | |||
domain at a "Bit-Forwarding Ingress Router" (BFIR), and leaves the | domain at a "Bit-Forwarding Ingress Router" (BFIR), and leaves the | |||
BIER domain at one or more "Bit-Forwarding Egress Routers" (BFERs). | BIER domain at one or more "Bit-Forwarding Egress Routers" (BFERs). | |||
The BFIR router adds a BIER header to the packet. The BIER header | The BFIR router adds a BIER header to the packet. The BIER header | |||
contains a bit-string in which each bit represents exactly one BFER | contains a bit-string in which each bit represents exactly one BFER | |||
to forward the packet to. The set of BFERs to which the multicast | to forward the packet to. The set of BFERs to which the multicast | |||
packet needs to be forwarded is expressed by setting the bits that | packet needs to be forwarded is expressed by setting the bits that | |||
correspond to those routers in the BIER header. | correspond to those routers in the BIER header. | |||
This document describes the mechanism and basic BIER Operations, | Operations, Administration, and Maintenance (OAM) mechanisms are | |||
Administration, and Maintenance (OAM) packet format that can be used | expected to support the detection of network failures. After the | |||
to perform failure detection and isolation on the BIER data plane | detection, operators localize and characterize the network defect. A | |||
without any dependency on other layers like the IP layer. | query-based tool, e.g., ICMP [RFC0792] and LSP Ping [RFC8029], | |||
[RFC6425], is broadly used to detect and localize a network defect. | ||||
Additionally, this mechanism can be used to check the consistency | ||||
between the data and control planes. This document describes the | ||||
mechanism and basic BIER OAM packet format that can be used to | ||||
perform failure detection and isolation on the BIER data plane | ||||
without any dependency on other layers, like the IP layer. | ||||
2. Conventions used in this document | 2. Conventions used in this document | |||
2.1. Terminology | 2.1. Terminology | |||
BFER - Bit Forwarding Egress Router | BFER - Bit-Forwarding Egress Router | |||
BFIR - Bit Forwarding Ingress Router | BFIR - Bit-Forwarding Ingress Router | |||
BFR - Bit-Forwarding Router | ||||
BIER - Bit Index Explicit Replication | BIER - Bit Index Explicit Replication | |||
DDMAP - Downstream Detailed Mapping TLV | DDMAP - Downstream Detailed Mapping TLV | |||
ECMP - Equal Cost Multi-Path | ECMP - Equal Cost Multi-Path | |||
OAM - Operation, Administration, and Maintenance | OAM - Operation, Administration, and Maintenance | |||
SI - Set Identifier | SI - Set Identifier | |||
QTF - Querier Timestamp Format | ||||
RTF - Responder Timestamp Format | ||||
NTP - Network Time Protocol | ||||
MTU - Maximum Transmission Unit | ||||
DA - Downstream Address | ||||
DIA - Downstream Interface Address | ||||
DoS - Denial-of-Service | ||||
PTP - Precision Time Protocol | ||||
2.2. Requirements Language | 2.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 BCP | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
3. BIER OAM | 3. BIER OAM | |||
BIER OAM is defined to stay within the BIER layer by directly | BIER OAM is defined to stay within the BIER layer by directly | |||
following the BIER header without mandating the need for IP header. | following the BIER header without mandating the need for an IP | |||
[RFC8296] defines a 4-bit field as "Proto" to identify the payload | header. [RFC8296] defines a 4-bit field as "Proto" to identify the | |||
following the BIER header. When the payload is BIER OAM, the "Proto" | payload following the BIER header. When the payload is BIER OAM, the | |||
field will be set to 5 as defined in [RFC8296] | "Proto" field will be set to 5 as defined in [RFC8296] | |||
3.1. BIER OAM message format | 3.1. BIER OAM message format | |||
The BIER OAM packet header format that follows BIER header is as | The BIER OAM packet header format that follows the BIER header is | |||
follows: | displayed in Figure 1. | |||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Ver | Message Type | Proto | Reserved | | | Ver | Message Type | Proto | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| OAM Message Length | | | OAM Message Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ Message Type Dependent Data ~ | ~ Message Type Dependent Data ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Ver | Figure 1: BIER OAM Header | |||
Set to 1. | ||||
Message Type | Ver - a four-bit field that indicates the current version of the | |||
BIER OAM header. The current value is 1. The version number is | ||||
to be incremented whenever a change is made that affects the | ||||
ability of an implementation to parse or process the BIER OAM | ||||
header correctly. For example, if syntactic or semantic changes | ||||
are made to any of the fixed fields. | ||||
This document defines the following Message Types: | Message Type - a six-bit field that identifies OAM protocol. | |||
Values defined in this document are as follows: | ||||
Type Value Field | Value Description | |||
-------- --------------- | -------- --------------- | |||
1 BIER Echo Request | 1 Echo Request | |||
2 BIER Echo Reply | 2 Echo Reply | |||
Proto | Proto - a six-bit field. This field is used to define if there is | |||
any data packet immediately following the OAM payload, which may | ||||
be used by a hybrid OAM [RFC7799]. This field MUST be set to 0 if | ||||
there is no data packet following the OAM payload. Value is one | ||||
from the IANA registry "BIER Next Protocol Identifiers" [RFC8296]. | ||||
This field is used to define if there is any data packet | Reserved - a fourteen-bit field. The value MUST be zeroed on | |||
immediately following the OAM payload which is used for passive | transmission and ignored on receipt. | |||
OAM functionality. This field is set to 0 if there is no data | ||||
packet following OAM payload. | ||||
OAM Message Length | OAM Message Length - a two-octet field that reflects the length of | |||
This field defines the length of the OAM message including the | the OAM message, including the header and the Messsage Type | |||
header and Dependent Data field. | Dependent Data. | |||
The Echo Request/Reply header format is as follows: | Message Type Dependant Data - a variable-length field that | |||
includes the OAM message identified by the value of the Message | ||||
Type filed. | ||||
The Echo Request/Reply header format displayed in Figure 2 | ||||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Ver | Echo Req/Rep | Proto | Reserved | | | Ver | Echo Req/Rep | Proto | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| QTF | RTF | Reply mode | Return Code | Reserved | | | Echo Request/Reply Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| QTF | RTF | Reply Mode | Return Code | Reserved | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Sender's Handle | | | Sender's Handle | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Sequence Number | | | Sequence Number | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| TimeStamp Sent | | | Timestamp Sent | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |||
| TimeStamp Sent | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| TimeStamp Received | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| TimeStamp Received | | | Timestamp Received | | |||
| | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ TLVs ~ | ~ TLVs ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Proto | Figure 2: BIER Echo Request/Reply Format | |||
Set to 0 for Echo Request/Reply header. | Proto field MUST be set to 0 for Echo Request/Reply header. | |||
QTF | QTF (Querier Timestamp Format) - a four-bit field. When the field | |||
is set to 2, the Timestamp Sent field is (in seconds and | ||||
microseconds, according to the Initiator's clock) in NTP format | ||||
[RFC5905]. When the value of the QTF field is 3, the Timestamp | ||||
Sent's format is the IEEE 1588-2008 (1588v2) Precision Time | ||||
Protocol (PTP) [IEEE.1588.2008] format. Any other value MAY be | ||||
considered as a sanity check failure. | ||||
Querier Timestamp Format. When set to 2, the Timestamp Sent field | RTF (Responder Timestamp Format) - a four-bit field. When the | |||
is (in seconds and microseconds, according to the Initiator's | field is set to 2, the Timestamp Received field is (in seconds and | |||
clock) in NTP format [RFC5905]. When set to 3, the timestamp | microseconds, according to the Initiator's clock) in NTP format | |||
format is in IEEE 1588-2008 (1588v2) Precision Time Protocol | [RFC5905]. When filed's value is 3, the format of the Timestamp | |||
format. Any other value MAY be considered as sanity check failure | Received is as defined in IEEE 1588-2008 (1588v2) Precision Time | |||
Protocol [IEEE.1588.2008]. Any other value MAY be considered as a | ||||
sanity check failure. | ||||
RTF | The sender of the BIER Echo Request might receive the BIER Echo Reply | |||
Responder Timestamp Format. When set to 2, the Timestamp Received | with RTF different from the Sender's QTF, Thus, the Sender MUST be | |||
field is (in seconds and microseconds, according to the | able to interpret both timestamp formats, i.e., NTP [RFC5905] and PTP | |||
Initiator's clock) in NTP format [RFC5905]. When set to 3, the | [IEEE.1588.2008]. | |||
timestamp format is in IEEE 1588-2008 (1588v2) Precision Time | ||||
Protocol format. Any other value MAY be considered as sanity | ||||
check failure. | ||||
Reply mode | The Reply Mode - a one-octet field. The value MUST be set to one | |||
The Reply mode is set to one of the below: | of the following values: | |||
Value Meaning | Value Description | |||
-------- --------------- | -------- --------------- | |||
1 Do not Reply | 1 Do not Reply | |||
2 Reply via IPv4/IPv6 UDP packet. | 2 Reply via IPv4/IPv6 UDP packet | |||
3 Reply via BIER packet | 3 Reply via BIER packet | |||
When Reply mode is set to 1, the receiver will not send any reply. | When Reply Mode is set to 1, the receiver will not send any reply. | |||
This mode can be used for unidirectional path validation. When the | This mode can be used for unidirectional path validation. When | |||
Reply mode is set to 2, the Responder BFR encapsulates the Echo reply | the Reply Mode is set to 2, the Responder Bit-Forwarding Router | |||
payload with IP header. When the Initiator intends to validate the | (BFR) encapsulates the Echo reply payload with the IP/UDP header. | |||
return BIER path, the Reply mode will be set to 3 so that the | When the Initiator intends to validate the return BIER path, the | |||
Responder BFR will encapsulates the Echo Reply with the BIER header. | Reply Mode will be set to 3 so that the Responder BFR will | |||
encapsulate the Echo Reply with the BIER header. | ||||
Return Code | Return Code - a one-octet field. The value MUST be set to zero if | |||
Set to zero if Type is "BIER Echo Request". Set to one of the | the Type is "BIER Echo Request". The value of the Return Code | |||
value defined in section 3.2, if Type is "BIER Echo Reply". | filed MUST be set to one of the values defined in Section 3.2, if | |||
the Type is "BIER Echo Reply". | ||||
Reserved | Reserved - a one-octet field. The Reserved field MUST be zeroed | |||
Set to all zero value. | on transmit and MUST be ignored on receipt. | |||
Sender's Handle, Sequence Number, and Timestamp | Sender's Handle - a four-octet field. The Sender's Handle is | |||
The Sender's Handle is filled by the Initiator, and returned | filled by the Initiator, and returned unchanged by responder BFR. | |||
unchanged by responder BFR. This value can be used for matching | This value can be used for matching the replies to the request. | |||
the replies to the request. | ||||
The Sequence Number is assigned by the Initiator and can be used | Sequence Number - a four-octet field. The value of the field is | |||
to detect any missed replies. | assigned by the Initiator and can be used to detect any missed | |||
replies. | ||||
The Timestamp Sent is the time when the Echo Request is sent. The | Timestamp - each field (Sent and Received) is an eight-octet | |||
TimeStamp Received in Echo Reply is the time (accordingly to | field. The Timestamp Sent is the time when the Echo Request is | |||
responding BFR clock) that the corresponding Echo Request was | sent. The Timestamp Received in Echo Reply is the time | |||
received. The format depends on the QTF/RTF value. | (accordingly to responding BFR clock) that the corresponding Echo | |||
Request was received. The format depends on the QTF/RTF value. | ||||
TLVs | TLVs - Carries the TLVs as defined in Section 3.3. | |||
Carries the TLVs as defined in Section 3.3. | ||||
3.2. Return Code | 3.2. Return Code | |||
The responder uses the Return Code field to reply with a validity | The responder uses the Return Code field to reply with a validity | |||
check or other error message to Initiator. It does not carry any | check or other error message to Initiator. It does not carry any | |||
meaning in Echo Request and MUST be set to zero. | meaning in Echo Request and MUST be set to zero. The Return Code can | |||
be one of the following: | ||||
The Return Code can be one of the following: | ||||
Value Value Meaning | Value Value Meaning | |||
------ --------------- | ------ --------------- | |||
0 No return code | 0 No return code | |||
1 Malformed Echo Request received | 1 Malformed Echo Request received | |||
2 One or more of the TLVs is not supported | 2 One or more of the TLVs is not supported | |||
3 Replying BFR is the only BFER in header Bitstring | 3 Replying BFR is the only BFER in header BitString | |||
4 Replying BFR is one of the BFER in header Bitstring | 4 Replying BFR is one of the BFERs in header BitString | |||
5 Packet-Forward-Success | 5 Packet-Forward-Success | |||
6 Invalid Multipath Info Request | 6 Invalid Multipath Info Request | |||
8 No matching entry in the forwarding table | 8 No matching entry in the forwarding table | |||
9 Set-Identifier Mismatch | 9 Set-Identifier Mismatch | |||
10 DDMAP Mismatch | 10 DDMAP Mismatch | |||
"No return code" will be used by Initiator in the Echo Request. This | "No return code" will be used by Initiator in the Echo Request. This | |||
value MUST NOT be used in Echo Reply. | value MUST NOT be used in Echo Reply. | |||
"Malformed Echo Request received" will be used by any BFR if the | "Malformed Echo Request received" will be used by any BFR if the | |||
received Echo Request packet is not properly formatted. | received Echo Request packet is not properly formatted. | |||
When a receiver does not support any TLV included in the Echo | When a receiver does not support any TLV included in the Echo | |||
Request, the Return code will be set to "One or more of the TLVs is | Request, the Return code will be set to "One or more of the TLVs is | |||
not supported" carrying the respective TLVs. | not supported" carrying the respective TLVs. | |||
When the received header BitString in the Echo Request packet | When the received header BitString in the Echo Request packet | |||
contains only its Bit-ID, "Replying BFR is the only BFER in header | contains only its Bit-ID, "Replying BFR is the only BFER in header | |||
BitString" is set in the reply. This value implies that the receiver | BitString" is set in the reply. This value implies that the receiver | |||
is BFER and the packet is not forwarded to any more neighbors. | is BFER, and the packet is not forwarded to any more neighbors. | |||
When the received header BitString in the Echo Request packet | When the received header BitString in the Echo Request packet | |||
contains its Bit-ID in addition to other Bit-IDs, "Replying BFR is | contains its Bit-ID in addition to other Bit-IDs, "Replying BFR is | |||
one of the BFER in header BitString" is set in the reply. This value | one of the BFERs in header BitString" is set in the reply. This | |||
implies that the responder is a BFER and the packet is further | value implies that the responder is a BFER and the packet is further | |||
forwarded to one or more neighbors. | forwarded to one or more neighbors. | |||
Any transit BFR will send the Echo Reply with "Packet-Forward- | Any transit BFR will send the Echo Reply with "Packet-Forward- | |||
Success", if the TLV in the received Echo Request is understood and | Success", if the TLV in the received Echo Request is understood and | |||
forwarding table has forwarding entries for the BitString. This | the forwarding table has forwarding entries for the BitString. This | |||
behavior is demonstrated by a transit BFR during traceroute mode. | behavior is demonstrated by a transit BFR during traceroute mode. | |||
When the Echo Request is received with multipath info for more than | When the Echo Request is received with multipath info for more than | |||
one BFER, the Return Code is set to "Invalid Multipath Info Request". | one BFER, the Return Code is set to "Invalid Multipath Info Request". | |||
If the BitString cannot be matched in the local forwarding table, the | If the BitString cannot be matched in the local forwarding table, the | |||
BFR will use "No matching entry in the forwarding table" in the | BFR will use "No matching entry in the forwarding table" in the | |||
reply. | reply. | |||
If the BIER-MPLS label in the received Echo Request is not the one | If the BIER-MPLS label in the received Echo Request is not the one | |||
assigned for SI in Original SI-BitString TLV, "Set-Identifier | assigned for SI in Original SI-BitString TLV, "Set-Identifier | |||
Mismatch" is set in order to report the mismatch. | Mismatch" is set in order to report the mismatch. | |||
If the BitString in Header-H does not match the BitString in Egress | ||||
BitString Sub-TLV of DDMAP TLV, a responding BFR will use "DDMAP | ||||
Mismatch" to report the problem. | ||||
3.3. BIER OAM TLV | 3.3. BIER OAM TLV | |||
This section defines various TLVs that can be used in BIER OAM | This section defines various TLVs that can be used in BIER OAM | |||
packet. The TLVs (Type-Length-Value tuples) have the following | packet. The TLVs (Type-Length-Value tuples) have the following | |||
format: | format: | |||
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 | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
~ Value ~ | ~ Value ~ | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 3: Type-Length-Value Format Used in BIER Echo Request/Reply | ||||
TLV Types are defined below; Length is the length of the Value field | TLV Types are defined below; Length is the length of the Value field | |||
in octets. The Value field depends on the TLV Type. | in octets. The Value field depends on the TLV Type. | |||
3.3.1. Original SI-BitString TLV | 3.3.1. Original SI-BitString TLV | |||
The Original SI-BitString TLV carries the set of BFER and carries the | The Original SI-BitString TLV carries the set of BFERs and carries | |||
same BitString that Initiator includes in the BIER header. This TLV | the same BitString that the Initiator includes in the BIER header. | |||
has the following format: | This TLV has the following format: | |||
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 = 1 | Length = variable | | | Type = 1 | Length = variable | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Set ID | Sub-domain ID |BS Len| Reserved | | | Set ID | Sub-domain ID |BS Len | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| BitString (first 32 bits) ~ | | BitString (first 32 bits) ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ ~ | ~ ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| BitString (last 32 bits) | | | BitString (last 32 bits) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 4: The Format of the Original SI-BitString TLV | ||||
Set ID field is set to the value of the Set Identifier to which the | Set ID - a one-octet field that is set to the value of the Set | |||
BitString belongs to. This value is derived as defined in [RFC8279] | Identifier to which the BitString belongs. This value is derived as | |||
defined in [RFC8279]. | ||||
Sub-domain ID is set to the Sub-domain value to which BFER in | Sub-domain ID - a one-octet field that is set to the Sub-domain value | |||
BitString belongs to. | to which BFER in BitString belongs. | |||
BS Len is set based on the length of BitString as defined in | BS Len - a four-bit field that is set based on the length of | |||
[RFC8296] | BitString as defined in [RFC8296] reflected in four-octet words. | |||
The BitString field carries the set of BFR-IDs that Initiator will | Reserved - a twelve-bit field. Its value MUST be zeroed on | |||
include in the BIER header. This TLV MUST be included by Initiator | transmission and ignored on receipt. | |||
in Echo Request packet | ||||
BitString - a variable length field. The BitString field carries the | ||||
set of BFR-IDs that Initiator will include in the BIER header. This | ||||
TLV MUST be included by the Initiator in the Echo Request packet. | ||||
Any Initiator MUST include this TLV in the Echo Request packet. | Any Initiator MUST include this TLV in the Echo Request packet. | |||
3.3.2. Target SI-BitString TLV | 3.3.2. Target SI-BitString TLV | |||
The Target SI-BitString TLV carries the set of BFER from which the | The Target SI-BitString TLV carries the set of BFERs from which the | |||
Initiator expects the reply from.This TLV has the following format: | Initiator expects the reply. This TLV has the following format: | |||
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 = 2 | Length = variable | | | Type = 2 | Length = variable | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Set ID | Sub-domain ID |BS Len| Reserved | | | Set ID | Sub-domain ID |BS Len | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| BitString (first 32 bits) ~ | | BitString (first 32 bits) ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ ~ | ~ ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| BitString (last 32 bits) | | | BitString (last 32 bits) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 5: The Format of the Target SI-BitString TLV | ||||
Set ID field is set to the Set Identifier to which the BitString | Set ID field is set to the Set Identifier to which the BitString | |||
belongs to. This value is derived as defined in [RFC8279] | belongs.This value is derived as defined in [RFC8279]. | |||
Sub-domain ID is set to the Sub-domain value to which BFER in | Sub-domain ID is set to the Sub-domain value to which BFER in | |||
BitString belongs to. | BitString belongs. | |||
BS Len is set based on the length of BitString as defined in | BS Len is set based on the length of BitString as defined in | |||
[RFC8296] | [RFC8296] | |||
Reserved - the value MUST be zeroed on transmission and ignored on | ||||
receipt. | ||||
The BitString field carries the set of BFR-IDs of BFER(s) that | The BitString field carries the set of BFR-IDs of BFER(s) that | |||
Initiator expects the response from. The BitString in this TLV may | Initiator expects a response. The BitString in this TLV may be | |||
be different from the BitString in the BIER header and allows to | different from the BitString in the BIER header and allows control of | |||
control the BFER responding to the Echo Request. This TLV MUST be | the BFER responding to the Echo Request. This TLV MUST be included | |||
included by Initiator in BIER OAM packet if the Downstream Mapping | by Initiator in the BIER OAM packet if the Downstream Mapping TLV | |||
TLV (section 3.3.4) is included. | (Section 3.3.4) is included. | |||
3.3.3. Incoming SI-BitString TLV | 3.3.3. Incoming SI-BitString TLV | |||
The Incoming SI-BitString TLV will be included by Responder BFR in | The Incoming SI-BitString TLV will be included by Responder BFR in | |||
Reply message and copies the BitString from BIER header of incoming | Reply message and copies the BitString from the BIER header of | |||
Echo Request message. This TLV has the following format: | incoming Echo Request message. This TLV has the following format: | |||
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 = 3 | Length = variable | | | Type = 3 | Length = variable | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Set ID | Sub-domain ID |BS Len| Reserved | | | Set ID | Sub-domain ID |BS Len | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| BitString (first 32 bits) ~ | | BitString (first 32 bits) ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ ~ | ~ ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| BitString (last 32 bits) | | | BitString (last 32 bits) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 6: The Format of the Incoming SI-BitString TLV | ||||
Set ID field is set to the Set Identifier to which the BitString | Set ID field is set to the Set Identifier to which the BitString | |||
belongs to. This value is derived as defined in [RFC8279] | belongs. This value is derived as defined in [RFC8279] | |||
Sub-domain ID is set to the Sub-domain value to which BFER in | Sub-domain ID is set to the Sub-domain value to which BFER in | |||
BitString belongs to. | BitString belongs. | |||
BS Len is set based on the length of BitString as defined in | BS Len is set based on the length of BitString as defined in | |||
[RFC8296] | [RFC8296]. | |||
Reserved - the value MUST be zeroed on transmission and ignored on | ||||
receipt. | ||||
The BitString field copies the BitString from the BIER header of the | The BitString field copies the BitString from the BIER header of the | |||
incoming Echo Request. A Responder BFR SHOULD include this TLV in | incoming Echo Request. A Responder BFR SHOULD include this TLV in | |||
Echo Reply if the Echo Request is received with I flag set in | Echo Reply if the Echo Request is received with the I flag set in | |||
Downstream Mapping TLV. | Downstream Mapping TLV. | |||
An Initiator MUST NOT include this TLV in Echo Request. | An Initiator MUST NOT include this TLV in Echo Request. | |||
3.3.4. Downstream Mapping TLV | 3.3.4. Downstream Mapping TLV | |||
This TLV has the following format: | This TLV has the following format: | |||
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 = 4 | Length = variable | | | Type = 4 | Length = variable | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| MTU | Address Type | Flags | | | MTU | Address Type | Flags | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Downstream Address (4 or 16 octets) | | | Downstream Address (4 or 16 octets) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Downstream Interface Address (4 or 16 octets) | | | Downstream Interface Address (4 or 16 octets) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Sub-tlv Length | | | | Sub-TLVs Length | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |||
. . | . . | |||
. List of Sub-TLVs . | . List of Sub-TLVs . | |||
. . | . . | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
MTU | Figure 7: The Format of the Downstream Mapping TLV | |||
Set to MTU value of outgoing interface. | ||||
Address Type | MTU A two-octet field. The value is the Maximum Transmission Unit | |||
(MTU) value of the egress interface. | ||||
The Address Type indicates the address type and length of IP | Address Type A one-octet field. The Address Type indicates the | |||
address for the downstream interface. The Address type is set to | address type and length of the IP address for the downstream | |||
one of the below: | interface. The Address type is set to one of the following | |||
values: | ||||
Type Addr. Type DA Length DIA Length | Type Addr. Type DA Length DIA Length | |||
------- --------------- ---------- ---------- | ------- --------------- ---------- ---------- | |||
1 IPv4 Numbered 4 4 | 1 IPv4 Numbered 4 4 | |||
2 IPv4 Unnumbered 4 4 | 2 IPv4 Unnumbered 4 4 | |||
3 IPv6 Numbered 16 16 | 3 IPv6 Numbered 16 16 | |||
4 IPv6 Unnumbered 16 4 | 4 IPv6 Unnumbered 16 4 | |||
DA Length - Downstream Address field Length | DA Length | |||
DIA Length - Downstream Interface Address field Length | Downstream Address (DA) field Length | |||
DIA Length | ||||
Downstream Interface Address (DIA) field Length | ||||
Flags | Flags | |||
The Flags field has the following format: | The Flags field has the following format: | |||
0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| Rsvd |I| | | Reserved |I| | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
When I flag is set, the Responding BFR MUST include the Incoming SI- | Figure 8: The Flags Field Format | |||
BitString TLV in Echo Reply message. | ||||
Reserved - a seven-bit field. Its value MUST be zeroed on | ||||
transmission and ignored on receipt. | ||||
I - a one-bit field. When I flag is set, the Responding BFR MUST | ||||
include the Incoming SI- BitString TLV in Echo Reply message. | ||||
Downstream Address and Downstream Interface Address | Downstream Address and Downstream Interface Address | |||
each field is either four-octet or sixteen-octet, depending on the | ||||
value of Address Type field. | ||||
If the Address Type is 1, the Downstream Address MUST be set to | If the Address Type is 1, the Downstream Address MUST be set to | |||
IPV4 BFR-Prefix of downstream BFR and Downstream Interface Address | IPV4 BFR-Prefix of downstream BFR and Downstream Interface Address | |||
is set to the downstream interface address. | is set to the downstream interface address. | |||
If the Address Type is 2, the Downstream Address MUST be set to | If the Address Type is 2, the Downstream Address MUST be set to | |||
IPV4 BFR-Prefix of downstream BFR and Downstream Interface Address | IPV4 BFR-Prefix of downstream BFR and Downstream Interface Address | |||
is set to the index assigned by upstream BFR to the interface. | is set to the index assigned by upstream BFR to the interface. | |||
If the Address Type is 3, the Downstream Address MUST be set to | If the Address Type is 3, the Downstream Address MUST be set to | |||
IPV6 BFR-Prefix of downstream BFR and Downstream Interface Address | IPV6 BFR-Prefix of downstream BFR and Downstream Interface Address | |||
skipping to change at page 12, line 34 ¶ | skipping to change at page 14, line 7 ¶ | |||
This section defines the optional Sub-TLVs that can be included in | This section defines the optional Sub-TLVs that can be included in | |||
Downstream Mapping TLV. | Downstream Mapping TLV. | |||
Sub-TLV Type Value | Sub-TLV Type Value | |||
------------ ------------- | ------------ ------------- | |||
1 Multipath Entropy Data | 1 Multipath Entropy Data | |||
2 Egress BitString | 2 Egress BitString | |||
3.3.4.1.1. Multipath Entropy Data | 3.3.4.1.1. Multipath Entropy Data | |||
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 = 1 | Length = variable | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|M| Reserved | | | |M| Reserved | | | |||
+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+ | | |||
| | | | | | |||
| (Multipath Information) | | | (Multipath Information) | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
M Flag | Figure 9: The Format of the Multipath Data Blob | |||
This flag is set to 0 if all packets will be forwarded out through | M Flag This flag is set to 0 if all packets will be forwarded out | |||
the interface defined in the Downstream Mapping TLV. When set to | through the interface defined in the Downstream Mapping TLV. When | |||
1, Multipath Information will be defined by the Bit masked Entropy | set to 1, Multipath Information will be defined by the Bit masked | |||
data. | Entropy data. | |||
Multipath Information | Reserved The value MUST be zeroed on transmission and ignored on | |||
Entropy Data encoded as defined in section 3.4 | receipt. | |||
3.3.4.1.2. Egress BitString | Multipath Information Entropy Data is encoded as defined in | |||
Section 3.4. | ||||
3.3.4.1.2. Egress BitString Sub-TLV | ||||
Responder BFR MAY include this Sub-TLV with the rewritten BitString | Responder BFR MAY include this Sub-TLV with the rewritten BitString | |||
in the outgoing interface as defined in section 6.1 of [RFC8279] | in the outgoing interface as defined in Section 6.1 of [RFC8279]. | |||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Set ID | Sub-domain ID |BS Len| Reserved | | | Type = 2 | Length = variable | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Set ID | Sub-domain ID |BS Len | Reserved | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| BitString (first 32 bits) ~ | | BitString (first 32 bits) ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ ~ | ~ ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| BitString (last 32 bits) | | | BitString (last 32 bits) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 10: The Egress BitString Sub-TLV Format | ||||
Set ID field is set to the Set Identifier to which the BitString | ||||
belongs. This value is derived as defined in [RFC8279]. | ||||
Sub-domain ID is set to the Sub-domain value to which BFER in | ||||
BitString belongs. | ||||
BS Len is set based on the length of BitString as defined in | ||||
[RFC8296]. | ||||
Reserved - the value MUST be zeroed on transmission and ignored on | ||||
receipt. | ||||
The BitString field copies the rewritten BitString in the outgoing | ||||
interface as defined in Section 6.1 of [RFC8279]. | ||||
3.3.5. Responder BFER TLV | 3.3.5. Responder BFER TLV | |||
The BFER replying to the request MAY include the Responder BFER TLV. | The BFER replying to the request MAY include the Responder BFER TLV. | |||
This TLV identifies the originator of BIER Echo Reply. This TLV has | This TLV identifies the originator of BIER Echo Reply. This TLV has | |||
the following format: | the following format: | |||
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 = 5 | Length | | | Type = 5 | Length = 4 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Reserved | BFR-ID | | | Reserved | BFR-ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
BFR-ID | Figure 11: The Responder BFER TLV Format | |||
The BFR-ID field carries the BFR-ID of replying BFER. This TLV | Length A two-octet field. The value MUST be set to four. | |||
MAY be included by Responding BFER in BIER Echo Reply packet. | ||||
Reserved A two-octet field. The value MUST be zeroed on | ||||
transmission and ignored on receipt. | ||||
BFR-ID A two-octet field. The BFR-ID field carries the BFR-ID of | ||||
the replying BFER. This TLV MAY be included by the Responding | ||||
BFER in the BIER Echo Reply packet. | ||||
3.3.6. Responder BFR TLV | 3.3.6. Responder BFR TLV | |||
Any transit BFR replying to the request MAY include the Responder BFR | Any transit BFR replying to the request MAY include the Responder BFR | |||
TLV. This is used to identify the replying BFR without BFR-ID. This | TLV. This is used to identify the replying BFR without BFR-ID. This | |||
TLV has the following format: | TLV has the following format: | |||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| TLV Type = 6 | Length = variable | | | TLV Type = 6 | Length = 8 or 20 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Reserved | Address Type | | | Reserved | Address Type | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
~ BFR-Prefix (4 or 16 bytes) ~ | ~ BFR-Prefix (4 or 16 bytes) ~ | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Length | Figure 12: The Responder BFD TLV Format | |||
The Length field varies depending on the Address Type. | ||||
Address Type | Length The Length field, depending on the Address Type value - 8 or | |||
20. | ||||
Set to 1 for IPv4 or 2 for IPv6. | Reserved A two-octet field. The value MUST be zeroed on | |||
transmission and ignored on receipt. | ||||
BFR-Prefix | Address Type A two-octet field. Set to 1 for IPv4 or 2 for IPv6. | |||
This field carries the local BFR-Prefix of the replying BFR. This | BFR-Prefix This field carries the local BFR-Prefix of the replying | |||
TLV MAY be included by Responding BFR in BIER Echo Reply packet. | BFR. This TLV MAY be included by Responding BFR in BIER Echo | |||
Reply packet. | ||||
3.3.7. Upstream Interface TLV | 3.3.7. Upstream Interface TLV | |||
The BFR replying to the request MUST include the Upstream Interface | The BFR replying to the request MUST include the Upstream Interface | |||
TLV. This TLV identifies the incoming interface and the BIER-MPLS | TLV. This TLV identifies the incoming interface and the BIER-MPLS | |||
label in the incoming Echo Request. This TLV has the following | label in the incoming Echo Request. This TLV has the following | |||
format: | format: | |||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| TLV Type = 7 | Length = variable | | | TLV Type = 7 | Length = 8 or 20 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Reserved | Address Type | | | Reserved | Address Type | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
~ Upstream Address (4 or 16 bytes) ~ | ~ Upstream Address (4 or 16 bytes) ~ | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Length | Figure 13: The Upstream Interface TLV Format | |||
The Length field varies depending on the Address Type. | Length The Length field, depending on the Address Type value - 8 or | |||
20. | ||||
Address Type | Reserved A two-octet field. The value MUST be zeroed on | |||
transmission and ignored on receipt. | ||||
Set to 1 for IPv4 numbered, 2 for IPv4 Unnumbered 3 for IPv6 | Address Type A two-octet field. Set to 1 for IPv4 numbered, 2 for | |||
numbered or 4 for IPv6 Unnumbered. | IPv4 Unnumbered, 3 for IPv6 numbered, or 4 for IPv6 Unnumbered. | |||
Upstream Address | Upstream Address | |||
As defined in Section 3.3.4 | As defined in Section 3.3.4 | |||
3.3.8. Reply-To TLV | ||||
The Initiator BFR MAY include Reply-To TLV in the Echo Request. This | ||||
TLV is used by transit BFR or BFER when the reply mode is 2. The IP | ||||
address will be used to generate the Echo Reply. This TLV has the | ||||
following format: | ||||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| TLV Type = 8 | Length = variable | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Reserved | Address Type | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | | ||||
~ Reply-To Address (4 or 16 bytes) ~ | ||||
| | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
Length | ||||
The Length field varies depending on the Address Type. | ||||
Address Type | ||||
Set to 1 for IPv4 or 2 for IPv6. | ||||
Reply-To Address | ||||
Set to any locally configured address to which the Echo reply | ||||
should be sent. | ||||
3.4. Multipath Entropy Data Encoding | 3.4. Multipath Entropy Data Encoding | |||
The size of the Entropy field in the BIER header is 20 bits as | The size of the Entropy field in the BIER header is 20 bits, as | |||
defined in section 2 of [RFC8296]. This encoding is similar to the | defined in Section 2 of [RFC8296]. This encoding is the same as the | |||
Multipath Type 9 encoding defined in Section 3.4.1.1.1 of [RFC8029]. | Multipath Type 9 encoding, defined in Section 3.4.1.1.1 of [RFC8029]. | |||
4. Procedures | 4. Procedures | |||
This section describes aspects of Ping and traceroute operations. | This section describes aspects of Ping and traceroute operations. | |||
4.1. BIER OAM Processing | 4.1. BIER OAM Processing | |||
A BIER OAM packet MUST be sent to the BIER control plane for OAM | A BIER OAM packet MUST be sent to the BIER control plane for OAM | |||
processing if one of the following conditions is true: | processing if one of the following conditions is true: | |||
* The receiving BFR is a BFER. | * The receiving BFR is a BFER. | |||
* TTL of BIER-MPLS Label expired. | * TTL of BIER-MPLS Label (Section 2.1.1.1 [RFC8296]) expired. | |||
* Router Alert label is present in the label stack. | The use of the Router Alert label to be deprecated as proposed in | |||
[I-D.ietf-mpls-lspping-norao]. | ||||
4.2. Per BFER ECMP Discovery | 4.2. Per BFER ECMP Discovery | |||
As defined in [RFC8279], BIER follows the unicast forwarding path and | As defined in [RFC8279], BIER follows the unicast forwarding path and | |||
allows load balancing over ECMP paths between BFIR and BFER. BIER | allows load balancing over ECMP paths between BFIR and BFER. BIER | |||
OAM MUST support ECMP path discovery between a BFIR and a given BFER | OAM is expected to support ECMP path discovery between a BFIR and a | |||
and MUST support path validation and failure detection of any | given BFER and MUST support path validation and failure detection of | |||
particular ECMP path between BFIR and BFER. | any particular ECMP path between BFIR and BFER. | |||
[RFC8296] proposes the BIER header with the Entropy field that can be | [RFC8296] proposes the BIER header with the Entropy field that can be | |||
leveraged to exercise all ECMP paths. The Initiator/BFIR will use | leveraged to exercise all ECMP paths. The Initiator/BFIR will use a | |||
traceroute message to query each hop about the Entropy information | traceroute message to query each hop about the Entropy information | |||
for each of the downstream paths. To avoid complexity, it is | for each of the downstream paths. To avoid complexity, it is | |||
suggested that the ECMP query is performed per BFER by carrying | suggested that the ECMP query is performed per BFER by carrying the | |||
required information in BIER OAM message. | required information in the BIER OAM message. | |||
The Initiator MUST include Multipath Entropy Data Sub-TLV in | The Initiator MUST include Multipath Entropy Data Sub-TLV in | |||
Downstream Mapping TLV. It MUST also include the BFER in BitString | Downstream Mapping TLV. It MUST also include the BFER in BitString | |||
TLV to which the Multipath query is performed. | TLV to which the Multipath query is performed. | |||
Any transit BFR will reply with Bit-masked Entropy for each | Any transit BFR will reply with Bit-masked Entropy for each | |||
downstream path as defined in [RFC8029] | downstream path as defined in [RFC8029] | |||
4.3. Sending BIER Echo Request | 4.3. Sending BIER Echo Request | |||
The Initiator MUST set the Message Type as 1 and Return Code as 0. | The Initiator MUST set the Message Type as 1 and Return Code as 0. | |||
The Proto field in OAM packet MUST be set to 0. The choice of the | The Proto field in the OAM packet MUST be set to 0. The choice of | |||
Sender's Handle and Sequence Number is a local matter to the | the Sender's Handle and Sequence Number is a local matter to the | |||
Initiator and SHOULD increment the Sequence Number by 1 for every | Initiator and SHOULD increment the Sequence Number by 1 for every | |||
subsequent Echo Request. The QTF field is set to Initiator's local | subsequent Echo Request. The QTF field is set to Initiator's local | |||
timestamp format and TimeStamp Sent field is set to the time that the | timestamp format, and the TimeStamp Sent field is set to the time | |||
Echo Request is sent. | that the Echo Request is sent. | |||
The Initiator MUST include Original SI-BitString TLV. The Initiator | The Initiator MUST include Original SI-BitString TLV. The Initiator | |||
MUST NOT include more than one Original SI-BitString TLV. The | MUST NOT include more than one Original SI-BitString TLV. The | |||
Initiator infers the Set Identifier value and Sub-domain ID value | Initiator infers the Set Identifier value and Sub-domain ID value | |||
from the respective BitString that will be included in the BIER | from the respective BitString that will be included in the BIER | |||
header of the packet and includes the values in "SI" and Sub-Domain | header of the packet and includes the values in "SI" and Sub-Domain | |||
ID fields respectively. | ID fields, respectively. | |||
In Ping mode, the Initiator MAY include Target SI-BitString TLV to | In Ping mode, the Initiator MAY include Target SI-BitString TLV to | |||
control the responding BFER(s) by listing all the BFERs from which | control the responding BFER(s) by listing all the BFERs from which | |||
the Initiator expects a response. In the trace route mode, the | the Initiator expects a response. In the traceroute mode, the | |||
Initiator MAY include Target SI-Bitstring TLV to control the path | Initiator MAY include Target SI-BitString TLV to control the path | |||
trace towards any specific BFER or set of BFERs. The Initiator on | trace towards any specific BFER or set of BFERs. The Initiator on | |||
receiving a reply with Return code as "Replying BFR is the only BFER | receiving a reply with the Return code "Replying BFR is the only BFER | |||
in header Bitstring" or "Replying router is one of the BFER in header | in the header BitString" or "Replying router is one of the BFERs in | |||
Bitstring", SHOULD unset the respective BFR-id from Target SI- | header BitString" SHOULD unset the respective BFR-id from Target SI- | |||
BitString for any subsequent Echo Request. | BitString for any subsequent Echo Request. | |||
When the Reply mode is set to 2, the Initiator MUST include Reply-To | The Initiator MAY include Downstream Mapping TLV (Section 3.3.4) in | |||
TLV (section 3.3.8) in the Echo Request. The Initiator MUST also | ||||
listen to the UDP port defined in this TLV and process any segment | ||||
received with destination port as the value defined in the TLV and | ||||
sent to control plane for BIER OAM payload processing. | ||||
The Initiator MAY include Downstream Mapping TLV (section 3.3.4) in | ||||
the Echo Request to query additional information from transit BFRs | the Echo Request to query additional information from transit BFRs | |||
and BFERs. In case of ECMP discovery, the Initiator MUST include the | and BFERs. In case of ECMP discovery, the Initiator MUST include the | |||
Multipath Entropy Data Sub-TLV and SHOULD set the Target SI-BitString | Multipath Entropy Data Sub-TLV and SHOULD set the Target SI-BitString | |||
TLV carrying a specific BFER ID. | TLV carrying a specific BFER ID. | |||
The Initiator MUST encapsulate the OAM packet with BIER header and | The Initiator MUST encapsulate the OAM packet with the BIER header | |||
MUST set the Proto as 5 and further encapsulates with BIER-MPLS | and MUST set the Proto as 5 and further encapsulates with BIER-MPLS | |||
label. In ping mode, the BIER-MPLS Label TTL MUST be set to 255. In | label. In ping mode, the BIER-MPLS Label TTL MUST be set to 255. In | |||
traceroute mode, the BIER-MPLS Label TTL is set successively starting | traceroute mode, the BIER-MPLS Label TTL is set successively, | |||
from 1 and MUST stop sending the Echo Request if it receives a reply | starting from 1 and MUST stop sending the Echo Request if it receives | |||
with Return code as "Replying router is the only BFER in BIER header | a reply with Return code as "Replying router is the only BFER in BIER | |||
Bitstring" from all BFER listed in Target SI-BitString TLV. | header BitString" from all BFER listed in Target SI-BitString TLV. | |||
4.4. Receiving BIER Echo Request | 4.4. Receiving BIER Echo Request | |||
Sending a BIER OAM Echo Request to control plane for payload | Sending a BIER OAM Echo Request to control plane for payload | |||
processing is triggered as mentioned in section 4.1. | processing is triggered as mentioned in Section 4.1. | |||
Any BFR on receiving Echo Request MUST perform the basic sanity | Any BFR on receiving Echo Request MUST perform the basic sanity | |||
check. If the BFR cannot parse the OAM Dependent data payload | check. If the BFR cannot parse the OAM Dependent data payload | |||
completely because the value in the OAM Message Length field is | completely because the value in the OAM Message Length field is | |||
incorrect, BFR MUST send Echo Reply with Return Code set to | incorrect, BFR MUST send Echo Reply with Return Code set to | |||
"Malformed Echo Request received" if the OAM Message Length is | "Malformed Echo Request received" if the OAM Message Length is | |||
incorrect. If the packet sanity check is fine, it SHOULD initiate | incorrect. If the packet sanity check is fine, it SHOULD initiate | |||
the below set of variables: | the below set of variables: | |||
Reply-Flag | Reply-Flag | |||
This flag is initially set to 1. | This flag is initially set to 1. | |||
Interface-I | Interface-I | |||
The incoming interface on which the Echo Request was received. | The incoming interface on which the Echo Request was received. | |||
This MAY be used to validate the Downstream Detailed Mapping TLV | This MAY be used to validate the Downstream Detailed Mapping TLV | |||
(DDMAP) info and to populate the Upstream Interface TLV. | (DDMAP) info and populate the Upstream Interface TLV. | |||
BIER-Label-L | BIER-Label-L | |||
The BIER-MPLS Label received as the top label of the received Echo | The BIER-MPLS Label received as the top label of the received Echo | |||
Request. This MAY be used to validate if the packet is traversing | Request. This MAY be used to validate if the packet is traversing | |||
the desired Set Identifier and sub-domain path. | the desired Set Identifier and sub-domain path. | |||
Header-H | Header-H | |||
The BIER header of the received Echo Request. It can be used to | The BIER header of the received Echo Request. It can be used to | |||
validate the DDMAP info and to populate the Incoming SI-BitString | validate the DDMAP info and to populate the Incoming SI-BitString | |||
TLV. Also, it can be used to perform Entropy calculation | TLV. Also, it can be used to perform entropy calculation | |||
considering a different field in the header and reply via | considering a different field in the header and replying with | |||
Multipath Entropy Data Sub-TLV. | Multipath Entropy Data Sub-TLV. | |||
BFR MUST initialize the Best-return-code variable to the null value. | BFR MUST initialize the Best-return-code variable to the null value. | |||
BFR will populate the Interface-I with the identifier of the | BFR will populate the Interface-I with the identifier of the | |||
interface over which the Echo Request is received, the top label in | interface over which the Echo Request is received, the top label in | |||
the MPLS stack of the received Echo Request to BIER-Label-L, and the | the MPLS stack of the received Echo Request to BIER-Label-L, and the | |||
BIER header to BIER-Header. If the received Echo Request carries | BIER header to BIER-Header. If the received Echo Request carries | |||
Target SI-BitString TLV, a BFR SHOULD run boolean AND operation | Target SI-BitString TLV, a BFR SHOULD run the boolean AND operation | |||
between BitString in Header-H and BitString in Target SI-BitString | between BitString in Header-H and BitString in Target SI-BitString | |||
TLV. If the resulting BitString is all-zero, reset Reply-Flag=0 and | TLV. If the resulting BitString is all-zero, reset Reply-Flag=0 and | |||
go to section 4.5. Else: | go to Section 4.5. Else: | |||
* If the BIER-Label-L does not correspond to the local label | * If the BIER-Label-L does not correspond to the local label | |||
assigned for {sub-domain, BitStringLen, SI} in Original SI- | assigned for {sub-domain, BitStringLen, SI} in Original SI- | |||
BitString TLV, Set the Best-return-code to "Set-Identifier | BitString TLV, Set the Best-return-code to "Set-Identifier | |||
Mismatch" and Go to section 4.5. | Mismatch" and Go to Section 4.5. | |||
* /* This step allows the detection of a synchronization problem in | This step allows the detection of a synchronization problem in the | |||
the upstream BFR between BIER-Label and {sub-domain, BitStringLen, | upstream BFR between BIER-Label and {sub-domain, BitStringLen, SI} | |||
SI} that might cause an unintended packet leak between sub-domains. | that might cause an unintended packet leak between sub-domains. | |||
*/ | ||||
* Set the Best-return-code to "One or more of the TLVsis not | * Set the Best-return-code to "One or more of the TLVsis not | |||
supported" if any of the TLVs in the Echo Request message is not | supported" if any of the TLVs in the Echo Request message is not | |||
supported. Go to section 4.5. | supported. Go to Section 4.5. | |||
* If the BitString in Header-H does not match the BitString in | * If the BitString in Header-H does not match the BitString in | |||
Egress BitString Sub-TLV of DDMAP TLV, set the Best-return-code to | Egress BitString Sub-TLV of DDMAP TLV, set the Best-return-code to | |||
"DDMAP Mismatch" and go to section 4.5. When there are more than | "DDMAP Mismatch" and go to Section 4.5. When there are more than | |||
one DDMAP TLV in the received Request packet, the Downstream | one DDMAP TLV in the received Request packet, the Downstream | |||
Address and Downstream Interface Address should be matched with | Address and Downstream Interface Address should be matched with | |||
Interface-I to identify the right DDMAP TLV and then perform the | Interface-I to identify the right DDMAP TLV and then perform the | |||
BitString match. | BitString match. | |||
* /* This step allows the detection of a deviation between the BIER | This step allows the detection of a deviation between the BIER | |||
control plane and the BIER forwarding plane in the upstream node that | control plane and the BIER forwarding plane in the upstream node that | |||
may result in a forwarding loop or packet duplication. */ | may result in a forwarding loop or packet duplication. | |||
* Set the Best-return-code to "Invalid Multipath Info Request", when | * Set the Best-return-code to "Invalid Multipath Info Request", when | |||
the DDMAP TLV carries Multipath Entropy Data Sub-TLV, and if the | the DDMAP TLV carries Multipath Entropy Data Sub-TLV, and if the | |||
Target SI-BitString TLV in the received Echo Request carries more | Target SI-BitString TLV in the received Echo Request carries more | |||
than 1 BFER id. Go to section 4.5. Else, list the ECMP | than 1 BFER id. Go to Section 4.5. Else, list the ECMP | |||
downstream neighbors to reach BFR-id in Target SI-BitString TLV, | downstream neighbors to reach BFR-id in Target SI-BitString TLV, | |||
calculate the Entropy considering the BitString in Header-H and | calculate the Entropy considering the BitString in Header-H and | |||
Multipath Entropy Data Sub-TLV from received Echo Request. Store | Multipath Entropy Data Sub-TLV from received Echo Request. Store | |||
the Data for each Downstream interface in a temporary variable. | the Data for each Downstream interface in a temporary variable. | |||
Set the Best-return-code to 5 (Packet-Forward-Success) and goto | Set the Best-return-code to 5 (Packet-Forward-Success) and goto | |||
Section 4.5 | Section 4.5 | |||
* /* This step instructs the node to calculate the Entropy Data for | This step instructs the node to calculate the Entropy Data for each | |||
each downstream interface to reach the BFER in Target SI-BitString | downstream interface to reach the BFER in Target SI-BitString TLV by | |||
TLV by considering the incoming BitString and Entropy Data.*/ | considering the incoming BitString and Entropy Data. | |||
* Set the Best-return-code to "Replying router is the only BFER in | * Set the Best-return-code to "Replying router is the only BFER in | |||
BIER header Bitstring", and go to section 4.5 if the responder is | BIER header BitString", and go to Section 4.5 if the responder is | |||
BFER and there are no more bits in BIER header Bitstring left for | BFER and there are no more bits in the BIER header BitString left | |||
forwarding. | for forwarding. | |||
* Set the Best-return-code to "Replying router is one of the BFER in | * Set the Best-return-code to "Replying router is one of the BFERs | |||
BIER header Bitstring", and include Downstream Mapping TLV, if the | in BIER header BitString", and include Downstream Mapping TLV if | |||
responder is BFER and there are more bits in BitString left for | the responder is BFER and there are more bits in BitString left | |||
forwarding. Also, include the Multipath information as defined in | for forwarding. Also, include the Multipath information as | |||
Section 4.2 if the received Echo Request carries Multipath Entropy | defined in Section 4.2 if the received Echo Request carries | |||
Data Sub-TLV. Go to section 4.5. | Multipath Entropy Data Sub-TLV. Go to Section 4.5. | |||
* Set the Best-return-code to "No matching entry in the forwarding | * Set the Best-return-code to "No matching entry in the forwarding | |||
table", if the forwarding lookup defined in section 6.5 of | table", if the forwarding lookup, defined in Section 6.5 of | |||
[RFC8279] does not match any entry for the received BitString in | [RFC8279] does not match any entry for the received BitString in | |||
BIER header. | BIER header. | |||
* /* This step allows the detection of the missing BFR-id in the | This step allows the detection of the missing BFR-id in the node's | |||
node's BIER forwarding table. It is difficult to detect the absence | BIER forwarding table. It is difficult to detect the absence of the | |||
of the BFR-id if the Request includes more than one BFR-ids in the | BFR-id if the Request includes more than one BFR-ids in the BitString | |||
BitString and so may need to include the BFER-id that is not | and so may need to include the BFER-id that is not responding to | |||
responding to detect such failure. */ | detect such failure. | |||
* Set the Best-return-code to "Packet-Forward-Success", and include | * Set the Best-return-code to "Packet-Forward-Success", and include | |||
Downstream Mapping TLV. Go to section 4.5 | Downstream Mapping TLV. Go to Section 4.5. | |||
4.5. Sending Echo Reply | 4.5. Sending Echo Reply | |||
If Reply-Flag=0, BFR MUST release the variables and MUST not send any | If Reply-Flag=0, BFR MUST release the variables and MUST NOT send any | |||
response to the Initiator. If Reply-Flag=1, proceed as below: | response to the Initiator. If Reply-Flag=1, proceed as below: | |||
The Responder BFR SHOULD include the BitString from Header-H to | The Responder BFR SHOULD include the BitString from Header-H to | |||
Incoming SI-BitString TLV and include the Set ID, Sub-domain ID and | Incoming SI-BitString TLV and include the Set ID, Sub-domain ID and | |||
BS Len that corresponds to BIER-Label-L. Responder BFR SHOULD | BS Len that corresponds to BIER-Label-L. Responder BFR SHOULD | |||
include the Upstream Interface TLV and populate the address from | include the Upstream Interface TLV and populate the address from | |||
Interface-I. | Interface-I. | |||
When the Best-return-code is "Replying BFR is one of the BFER in | When the Best-return-code is "Replying BFR is one of the BFERs in | |||
header Bitstring", it MUST include Responder BFER TLV. | header BitString", it MUST include Responder BFER TLV. | |||
If the received Echo Request had DDMAP with Multipath Entropy Data | If the received Echo Request had DDMAP with Multipath Entropy Data | |||
Sub-TLV, Responder BFR MUST include DDMAP as defined in | Sub-TLV, Responder BFR MUST include DDMAP as defined in | |||
Section 3.3.4 for each outgoing interface over which the packet | Section 3.3.4 for each outgoing interface over which the packet | |||
will be replicated and include the respective Multipath Entropy | will be replicated and include the respective Multipath Entropy | |||
Data Sub-TLV. For each outgoing interface, respective Egress | Data Sub-TLV. For each outgoing interface, the respective Egress | |||
BitString MUST be included in DDMAP TLV. | BitString MUST be included in DDMAP TLV. | |||
If the received Echo Request had DDMAP without Multipath Entropy | If the received Echo Request had DDMAP without Multipath Entropy | |||
Data Sub-TLV, Responder BFR MUST include DDMAP as defined in | Data Sub-TLV, Responder BFR MUST include DDMAP as defined in | |||
Section 3.3.4 for each outgoing interface over which the packet | Section 3.3.4 for each outgoing interface over which the packet | |||
will be replicated. For each outgoing interface, respective | will be replicated. For each outgoing interface, respective | |||
Egress BitString MUST be included in DDMAP TLV. | Egress BitString MUST be included in DDMAP TLV. | |||
When the Best-return-code is "Replying BFR is the only BFER in header | When the Best-return-code is "Replying BFR is the only BFER in header | |||
Bitstring", it MUST include Responder BFER TLV. | BitString", it MUST include Responder BFER TLV. | |||
The Responder MUST set the Message Type as 2 and Return Code as Best- | The Responder MUST set the Message Type as 2 and Return Code as Best- | |||
return-code. The Proto field MUST be set to 0. | return-code. The Proto field MUST be set to 0. | |||
The Echo Reply can be sent either as BIER-encapsulated or IP/UDP | The Echo Reply can be sent as BIER-encapsulated, or IP/UDP | |||
encapsulated depending on the Reply mode in received Echo Request. | encapsulated, depending on the Reply Mode in the received Echo | |||
When the Reply mode in received Echo Request is set to 3, Responder | Request. When the Reply Mode in the received Echo Request is set to | |||
appends BIER header listing the BitString with BFIR ID (from Header- | 3, Responder appends the BIER header listing the BitString with BFIR | |||
H), set the Proto to 5 and set the BFIR as 0. When the Reply mode in | ID (from Header- H), sets the Proto to 5, and sets the BFIR as 0. | |||
received Echo Request is set to 2, Responder encapsulates with IP/UDP | When the Reply Mode in the received Echo Request is set to 2, | |||
header. The UDP destination port MUST be set to TBD1, and the source | Responder encapsulates with the IP/UDP header. The UDP destination | |||
port MAY be set to TBD1 or other random local value. The source IP | port MUST be set to TBD1 (Section 5.1), and the source port MAY be | |||
is any local address of the responder and destination IP is derived | set to TBD1 or other value selected from the Dynamic range of port | |||
from Reply-To TLV. | numbers. The source IP is any local address of the responder, and | |||
the destination IP is derived from the BFIR-id of the BIER header | ||||
[RFC8296] of the received Echo Request. | ||||
4.6. Receiving Echo Reply | 4.6. Receiving Echo Reply | |||
The Initiator upon receiving the Echo Reply will use the Sender's | The Initiator, upon receiving the Echo Reply, will use the Sender's | |||
Handle to match with Echo Request sent. If no match is found, the | Handle to match with Echo Request sent. If no match is found, the | |||
Initiator MUST ignore the Echo Reply. | Initiator MUST ignore the Echo Reply. | |||
If receiving Echo Reply have Downstream Mapping, the Initiator SHOULD | If receiving Echo Reply has Downstream Mapping, the Initiator SHOULD | |||
copy the same to subsequent Echo Request(s). | copy the same to subsequent Echo Request(s). | |||
If one of the Echo Reply is received with Return Code as "Replying | If one of the Echo Reply is received with Return Code as "Replying | |||
BFR is one of the BFER in header Bitstring", it SHOULD reset the BFR- | BFR is one of the BFERs in header BitString", it SHOULD reset the | |||
id of the responder from Target SI-BisString TLV in subsequent Echo | BFR- id of the responder from Target SI-BisString TLV in subsequent | |||
Request. | Echo Request. This step helps avoid any BFR that is both BFER and | |||
transit BFR to respond with Echo Reply continuously. | ||||
/* This step helps avoid any BFR that is both BFER and transit BFR to | ||||
respond with Echo Reply continuously. */ | ||||
5. IANA Considerations | 5. IANA Considerations | |||
The terms used in the IANA Considerations below are intended to be | ||||
consistent with [RFC8126]. | ||||
5.1. UDP Port Number | ||||
This document requests a UDP port TBD1 to be allocated by IANA for | This document requests a UDP port TBD1 to be allocated by IANA for | |||
BIER Echo. | BIER Echo. | |||
This document requests the IANA to create and manage the below | 5.2. BIER OAM Parameters | |||
registries and sub-registries: | ||||
5.1. BIER OAM Registry | IANA is requested to create and maintain the "BIER OAM Parameters" | |||
registry containing the sub-registries listed below. | ||||
IANA is requested to create and maintain "BIER OAM Parameters" | 5.3. BIER OAM Message Type | |||
registry. | ||||
5.2. Message Types, Reply Modes, Return Codes | IANA is requested to create in the BIER OAM Parameters registry a | |||
sub-registry as follows: | ||||
IANA is requested to create a "Message Type" sub-registry under "BIER | Sub-registry Name: BIER OAM Message Type. | |||
OAM Parameters" registry and assign the Message Types defined in | ||||
section 3.1 | ||||
IANA is requested to create a "Echo Reply Mode" sub-registry under | Assignment Policy: | |||
"BIER OAM Parameters" registry and assign the Echo Reply Modes | ||||
defined in section 3.1 | ||||
IANA is requested to create a "Echo Return Codes" sub-registry under | 2-31 IETF Review | |||
"BIER OAM Parameters" registry and assign the Return Codes defined in | ||||
section 3.2 | ||||
5.3. TLVs | 32-62 First Come, First Served | |||
The TLVs and Sub-TLVs defined in this document is not limited to Echo | Reference: [this document] | |||
Request or Reply message types and is applicable for other message | ||||
types. The TLVs and Sub-TLVs requested by this document for IANA | +========+==============================+===============+ | |||
| Value | Description | Reference | | ||||
+========+==============================+===============+ | ||||
| 0 | Reserved | This document | | ||||
+--------+------------------------------+---------------+ | ||||
| 1 | BIER Echo Request/Echo Reply | This document | | ||||
+--------+------------------------------+---------------+ | ||||
| 2 - 31 | Unassigned | This document | | ||||
+--------+------------------------------+---------------+ | ||||
| 32-62 | Unassigned | This document | | ||||
+--------+------------------------------+---------------+ | ||||
| 63 | Reserved | This document | | ||||
+--------+------------------------------+---------------+ | ||||
Table 1: BIER OAM Message Type | ||||
5.4. BIER Echo Request/Echo Reply Parameters | ||||
IANA is requested to create in the BIER OAM registry the sub-registry | ||||
BIER Echo Request/Echo Reply Parameters. | ||||
5.4.1. BIER Echo Request/Echo Reply Message Types | ||||
IANA is requested to create in the BIER Echo Request/Echo Reply | ||||
Parameters the BIER Echo Request/Echo Reply Message Types sub- | ||||
registry as follows: | ||||
Sub-registry Name: BIER Echo Request/Echo Reply Message Types | ||||
Assignment Policy: | ||||
3 - 175 IETF Review | ||||
176 - 239 First Come, First Served | ||||
Reference: [this document] | ||||
+===========+===================+===============+ | ||||
| Value | Description | Reference | | ||||
+===========+===================+===============+ | ||||
| 0 | Reserved | This document | | ||||
+-----------+-------------------+---------------+ | ||||
| 1 | BIER Echo Request | This document | | ||||
+-----------+-------------------+---------------+ | ||||
| 2 | BIER Echo Reply | This document | | ||||
+-----------+-------------------+---------------+ | ||||
| 3 - 175 | Unassigned | This document | | ||||
+-----------+-------------------+---------------+ | ||||
| 176 - 239 | Unassigned | This document | | ||||
+-----------+-------------------+---------------+ | ||||
| 240 - 251 | Experimental | This document | | ||||
+-----------+-------------------+---------------+ | ||||
| 252 - 254 | Private Use | This document | | ||||
+-----------+-------------------+---------------+ | ||||
| 255 | Reserved | This document | | ||||
+-----------+-------------------+---------------+ | ||||
Table 2: BIER Echo Request/Echo Reply Message | ||||
Types | ||||
5.4.2. BIER Echo Reply Modes | ||||
IANA is requested to create in the BIER Echo Request/Echo Reply | ||||
Parameters registry the new sub-registry as follows: | ||||
Sub-registry Name: BIER Echo Reply Mode | ||||
Assignment Policy: | ||||
8 - 175 IETF Review | ||||
176 - 239 First Come, First Served | ||||
Reference: [this document] | ||||
+===========+===================================+===============+ | ||||
| Value | Description | Reference | | ||||
+===========+===================================+===============+ | ||||
| 0 | Reserved | This document | | ||||
+-----------+-----------------------------------+---------------+ | ||||
| 1 | Do Not Reply | This document | | ||||
+-----------+-----------------------------------+---------------+ | ||||
| 2 | Reply via an IPv4/IPv6 UDP Packet | This document | | ||||
+-----------+-----------------------------------+---------------+ | ||||
| 3 | Reply via BIER packet | This document | | ||||
+-----------+-----------------------------------+---------------+ | ||||
| 4 - 175 | Unassigned | This document | | ||||
+-----------+-----------------------------------+---------------+ | ||||
| 176 - 239 | Unassigned | This document | | ||||
+-----------+-----------------------------------+---------------+ | ||||
| 240 - 251 | Experiemntal | This document | | ||||
+-----------+-----------------------------------+---------------+ | ||||
| 252 - 254 | Private Use | This document | | ||||
+-----------+-----------------------------------+---------------+ | ||||
| 255 | Reserved | This document | | ||||
+-----------+-----------------------------------+---------------+ | ||||
Table 3: SFC Echo Reply Modes | ||||
5.4.3. BIER Echo Return Codes | ||||
IANA is requested to create in the BIER Echo Request/Echo Reply | ||||
Parameters registry the new sub-registry as follows: | ||||
Sub-registry Name: BIER Echo Return Codes | ||||
Assignment Policy: | ||||
9 - 191 IETF Review | ||||
192 - 251 First Come, First Served | ||||
Reference: [this document] | ||||
+=========+=================================+===============+ | ||||
| Value | Description | Reference | | ||||
+=========+=================================+===============+ | ||||
| 0 | No Return Code | This document | | ||||
+---------+---------------------------------+---------------+ | ||||
| 1 | Malformed Echo Request received | This document | | ||||
+---------+---------------------------------+---------------+ | ||||
| 2 | One or more of the TLVs is not | This document | | ||||
| | supported | | | ||||
+---------+---------------------------------+---------------+ | ||||
| 3 | Replying BFR is the only BFER | This document | | ||||
| | in header BitString | | | ||||
+---------+---------------------------------+---------------+ | ||||
| 4 | Replying BFR is one of the | This document | | ||||
| | BFERs in header BitString | | | ||||
+---------+---------------------------------+---------------+ | ||||
| 5 | Packet-Forward-Success | This document | | ||||
+---------+---------------------------------+---------------+ | ||||
| 6 | Invalid Multipath Info Request | This document | | ||||
+---------+---------------------------------+---------------+ | ||||
| 7 | Unassigned | This document | | ||||
+---------+---------------------------------+---------------+ | ||||
| 8 | No matching entry in the | This document | | ||||
| | forwarding table | | | ||||
+---------+---------------------------------+---------------+ | ||||
| 9 | Set-Identifier Mismatch | This document | | ||||
+---------+---------------------------------+---------------+ | ||||
| 10 | DDMAP Mismatch | This document | | ||||
+---------+---------------------------------+---------------+ | ||||
| 11 - | Unassigned | This document | | ||||
| 191 | | | | ||||
+---------+---------------------------------+---------------+ | ||||
| 192-251 | Unassigned | This document | | ||||
+---------+---------------------------------+---------------+ | ||||
| 252-254 | Private Use | This document | | ||||
+---------+---------------------------------+---------------+ | ||||
| 255 | Reserved | This document | | ||||
+---------+---------------------------------+---------------+ | ||||
Table 4: BIER Echo Return Codes | ||||
5.5. TLVs | ||||
IANA is requested to create in the BIER OAM registry a sub-registry | ||||
for the Type field of top-level TLVs as well as for any associated | ||||
sub-TLVs. Note that the meaning of a sub-TLV is scoped by the TLV. | ||||
The number of spaces for the sub-TLVs of various TLVs is independent. | ||||
The valid range for TLVs and sub-TLVs is 0-65535. Assignments in the | ||||
ranges 0-16383 and 32768-49161 are made via Standards Action as | ||||
defined in [RFC8126]; assignments in the ranges 16384-31743 and | ||||
49162-64511 are made via "Specification Required"; values in the | ||||
ranges 31744-32767 and 64512-65535 are for Private Use and MUST NOT | ||||
be allocated. | ||||
If a TLV or sub-TLV has a Type that falls in the range of Private | ||||
Use, the Length MUST be at least 4, and the first four octets MUST be | ||||
an SMI Private Enterprise Number that identifies the user, in network | ||||
octet order. The rest of the Value field is private to the user. | ||||
The TLVs and Sub-TLVs defined in this document are not limited to | ||||
Echo Request or Reply message types are applicable to other message | ||||
types. The TLVs and Sub-TLVs requested by this document for the IANA | ||||
consideration are the following: | consideration are the following: | |||
Type Sub-Type Value Field | Type Sub-Type Value Field | |||
------- -------- ----------- | ------- -------- ----------- | |||
1 Original SI-BitString | 1 Original SI-BitString | |||
2 Target SI-BitString | 2 Target SI-BitString | |||
3 Incoming SI-BitString | 3 Incoming SI-BitString | |||
4 Downstream Mapping | 4 Downstream Mapping | |||
4 1 Multipath Entropy Data | 4 1 Multipath Entropy Data | |||
4 2 Egress BitString | 4 2 Egress BitString | |||
5 Responder BFER | 5 Responder BFER | |||
6 Responder BFR | 6 Responder BFR | |||
7 Upstream Interface | 7 Upstream Interface | |||
6. Security Considerations | 6. Security Considerations | |||
The security consideration for BIER Ping is similar to ICMP [RFC0792] | The security consideration for BIER Ping is similar to ICMP [RFC0792] | |||
or LSP Ping [RFC8029], [RFC6425]. As with ICMP or LSP Ping, BFR can | or LSP Ping [RFC8029], [RFC6425]. As with ICMP or LSP Ping, BFR can | |||
be exposed to Denial- of-Service (DoS) attacks, and it is RECOMMENDED | be exposed to Denial-of-Service (DoS) attacks, and it is RECOMMENDED | |||
to regulate the BIER Ping packet flow to the control plane. A rate | to regulate the BIER Ping packet flow to the control plane. A rate | |||
limiter SHOULD be applied to avoid any attack. | limiter SHOULD be applied to avoid any attack. Although using BIER | |||
Echo Request in a DoS amplification attack is theoretically possible, | ||||
spoofing BFIR ID in the BIER Header presents itself as a serious | ||||
challenge. As a result, this threat is not a big concern. | ||||
As with ICMP or LSP Ping, a traceroute can be used to obtain network | As with ICMP or LSP Ping, a traceroute can be used to obtain network | |||
information. It is RECOMMENDED that the implementation checks the | information. It is RECOMMENDED that the implementation checks the | |||
integrity of BFIR of the Echo messages against any local secured list | integrity of BFIR of the Echo messages against any locally secured | |||
before processing the message further | list before processing the message further. | |||
7. Acknowledgement | 7. Acknowledgement | |||
The authors would like to thank Antoni Przygienda, Eric Rosen, Faisal | The authors would like to thank Antoni Przygienda, Eric Rosen, Faisal | |||
Iqbal, Jeffrey (Zhaohui) Zhang,DIA Length - Downstream Interface | Iqbal, Jeffrey (Zhaohui) Zhang, and Shell Nakash for their review and | |||
Address field Length and Shell Nakash for their review and comments. | comments. | |||
The authors would like to thank Mankamana Mishra for his thorough | The authors would like to thank Mankamana Mishra for his thorough | |||
review and comments. | review and comments. | |||
8. References | 8. References | |||
8.1. Normative References | 8.1. Normative References | |||
[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, | |||
skipping to change at page 24, line 23 ¶ | skipping to change at page 29, line 11 ¶ | |||
for Bit Index Explicit Replication (BIER) in MPLS and Non- | for Bit Index Explicit Replication (BIER) in MPLS and Non- | |||
MPLS Networks", RFC 8296, DOI 10.17487/RFC8296, January | MPLS Networks", RFC 8296, DOI 10.17487/RFC8296, January | |||
2018, <https://www.rfc-editor.org/info/rfc8296>. | 2018, <https://www.rfc-editor.org/info/rfc8296>. | |||
[RFC6425] Saxena, S., Ed., Swallow, G., Ali, Z., Farrel, A., | [RFC6425] Saxena, S., Ed., Swallow, G., Ali, Z., Farrel, A., | |||
Yasukawa, S., and T. Nadeau, "Detecting Data-Plane | Yasukawa, S., and T. Nadeau, "Detecting Data-Plane | |||
Failures in Point-to-Multipoint MPLS - Extensions to LSP | Failures in Point-to-Multipoint MPLS - Extensions to LSP | |||
Ping", RFC 6425, DOI 10.17487/RFC6425, November 2011, | Ping", RFC 6425, DOI 10.17487/RFC6425, November 2011, | |||
<https://www.rfc-editor.org/info/rfc6425>. | <https://www.rfc-editor.org/info/rfc6425>. | |||
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | ||||
Writing an IANA Considerations Section in RFCs", BCP 26, | ||||
RFC 8126, DOI 10.17487/RFC8126, June 2017, | ||||
<https://www.rfc-editor.org/info/rfc8126>. | ||||
[IEEE.1588.2008] | ||||
"Standard for a Precision Clock Synchronization Protocol | ||||
for Networked Measurement and Control Systems", | ||||
IEEE Standard 1588, March 2008. | ||||
8.2. Informative References | 8.2. Informative References | |||
[RFC0792] Postel, J., "Internet Control Message Protocol", STD 5, | [RFC0792] Postel, J., "Internet Control Message Protocol", STD 5, | |||
RFC 792, DOI 10.17487/RFC0792, September 1981, | RFC 792, DOI 10.17487/RFC0792, September 1981, | |||
<https://www.rfc-editor.org/info/rfc792>. | <https://www.rfc-editor.org/info/rfc792>. | |||
[RFC7799] Morton, A., "Active and Passive Metrics and Methods (with | ||||
Hybrid Types In-Between)", RFC 7799, DOI 10.17487/RFC7799, | ||||
May 2016, <https://www.rfc-editor.org/info/rfc7799>. | ||||
[I-D.ietf-mpls-lspping-norao] | ||||
Kompella, K., Bonica, R., and G. Mirsky, "Deprecating the | ||||
Use of Router Alert in LSP Ping", Work in Progress, | ||||
Internet-Draft, draft-ietf-mpls-lspping-norao-01, 11 March | ||||
2023, <https://datatracker.ietf.org/doc/html/draft-ietf- | ||||
mpls-lspping-norao-01>. | ||||
Authors' Addresses | Authors' Addresses | |||
Nagendra Kumar | Nagendra Kumar | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
7200 Kit Creek Road | 7200 Kit Creek Road | |||
Research Triangle Park, NC 27709 | Research Triangle Park, NC 27709 | |||
US | US | |||
Email: naikumar@cisco.com | Email: naikumar@cisco.com | |||
Carlos Pignataro | Carlos Pignataro | |||
End of changes. 163 change blocks. | ||||
344 lines changed or deleted | 611 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |