rfc9262v4.txt | rfc9262.txt | |||
---|---|---|---|---|
skipping to change at line 376 ¶ | skipping to change at line 376 ¶ | |||
extension to the (non-TE) BIER forwarding plane, hence allowing it to | extension to the (non-TE) BIER forwarding plane, hence allowing it to | |||
be added to BIER deployments where it can be beneficial. | be added to BIER deployments where it can be beneficial. | |||
BIER-TE is also intended as an option to expand the BIER architecture | BIER-TE is also intended as an option to expand the BIER architecture | |||
into deployments where (non-TE) BIER may not be the best fit, such as | into deployments where (non-TE) BIER may not be the best fit, such as | |||
statically provisioned networks that need path steering but do not | statically provisioned networks that need path steering but do not | |||
want distributed routing protocols. | want distributed routing protocols. | |||
1. BIER-TE inherits the following aspects from BIER unchanged: | 1. BIER-TE inherits the following aspects from BIER unchanged: | |||
a. The fundamental purpose of per-packet signaled replication | 1.a The fundamental purpose of per-packet signaled replication | |||
and delivery via a BitString. | and delivery via a BitString. | |||
b. The overall architecture, which consists of three layers: the | 1.b The overall architecture, which consists of three layers: | |||
flow overlay, the BIER(-TE) layer, and the routing underlay. | the flow overlay, the BIER(-TE) layer, and the routing | |||
underlay. | ||||
c. The supported encapsulations [RFC8296]. | 1.c The supported encapsulations [RFC8296]. | |||
d. The semantics of all BIER header elements [RFC8296] used by | 1.d The semantics of all BIER header elements [RFC8296] used by | |||
the BIER-TE forwarding plane, other than the semantic of the | the BIER-TE forwarding plane, other than the semantic of the | |||
BP in the BitString. | BP in the BitString. | |||
e. The BIER forwarding plane, except for how bits have to be | 1.e The BIER forwarding plane, except for how bits have to be | |||
cleared during replication. | cleared during replication. | |||
2. BIER-TE has the following key changes with respect to BIER: | 2. BIER-TE has the following key changes with respect to BIER: | |||
a. In BIER, bits in the BitString of a BIER packet header | 2.a In BIER, bits in the BitString of a BIER packet header | |||
indicate a BFER, and bits in the BIFT indicate the BIER | indicate a BFER, and bits in the BIFT indicate the BIER | |||
control plane's calculated next hop towards that BFER. In | control plane's calculated next hop towards that BFER. In | |||
BIER-TE, a bit in the BitString of a BIER packet header | BIER-TE, a bit in the BitString of a BIER packet header | |||
indicates an adjacency in the BIER-TE topology, and only the | indicates an adjacency in the BIER-TE topology, and only the | |||
BFR that is the upstream of that adjacency has its BP | BFR that is the upstream of that adjacency has its BP | |||
populated with the adjacency in its BIFT. | populated with the adjacency in its BIFT. | |||
b. In BIER, the implied reference options for the core part of | 2.b In BIER, the implied reference options for the core part of | |||
the BIER layer control plane are the BIER extensions for | the BIER layer control plane are the BIER extensions for | |||
distributed routing protocols. These include IS-IS and OSPF | distributed routing protocols. These include IS-IS and OSPF | |||
extensions for BIER, as specified in [RFC8401] and [RFC8444], | extensions for BIER, as specified in [RFC8401] and | |||
respectively. | [RFC8444], respectively. | |||
c. The reference option for the core part of the BIER-TE control | 2.c The reference option for the core part of the BIER-TE | |||
plane is the BIER-TE controller. Nevertheless, both the BIER | control plane is the BIER-TE controller. Nevertheless, both | |||
and BIER-TE BIFTs' forwarding plane state could equally be | the BIER and BIER-TE BIFTs' forwarding plane state could | |||
populated by any mechanism. | equally be populated by any mechanism. | |||
d. Assuming the reference options for the control plane, BIER-TE | 2.d Assuming the reference options for the control plane, BIER- | |||
replaces in-network autonomous path calculations with | TE replaces in-network autonomous path calculations with | |||
explicit paths calculated by the BIER-TE controller. | explicit paths calculated by the BIER-TE controller. | |||
3. The following elements/functions described in the BIER | 3. The following elements/functions described in the BIER | |||
architecture are not required by the BIER-TE architecture: | architecture are not required by the BIER-TE architecture: | |||
a. "Bit Index Routing Tables" (BIRTs) are not required on BFRs | 3.a "Bit Index Routing Tables" (BIRTs) are not required on BFRs | |||
for BIER-TE when using a BIER-TE controller, because the | for BIER-TE when using a BIER-TE controller, because the | |||
controller can directly populate the BIFTs. In BIER, BIRTs | controller can directly populate the BIFTs. In BIER, BIRTs | |||
are populated by the distributed routing protocol support for | are populated by the distributed routing protocol support | |||
BIER, allowing BFRs to populate their BIFTs locally from | for BIER, allowing BFRs to populate their BIFTs locally from | |||
their BIRTs. Other BIER-TE control plane or management plane | their BIRTs. Other BIER-TE control plane or management | |||
options may introduce requirements for BIRTs for BIER-TE | plane options may introduce requirements for BIRTs for BIER- | |||
BFRs. | TE BFRs. | |||
b. The BIER-TE layer forwarding plane does not require BFRs to | 3.b The BIER-TE layer forwarding plane does not require BFRs to | |||
have a unique BP; see Section 5.1.3. Therefore, BFRs may not | have a unique BP; see Section 5.1.3. Therefore, BFRs may | |||
have a unique BFR-id; see Section 5.3.3. | not have a unique BFR-id; see Section 5.3.3. | |||
c. Identification of BFRs by the BIER-TE control plane is | 3.c Identification of BFRs by the BIER-TE control plane is | |||
outside the scope of this specification. Whereas the BIER | outside the scope of this specification. Whereas the BIER | |||
control plane uses BFR-ids in its BFR-to-BFR signaling, a | control plane uses BFR-ids in its BFR-to-BFR signaling, a | |||
BIER-TE controller may choose any form of identification | BIER-TE controller may choose any form of identification | |||
deemed appropriate. | deemed appropriate. | |||
d. BIER-TE forwarding does not require the BFIR-id field of the | 3.d BIER-TE forwarding does not require the BFIR-id field of the | |||
BIER packet header. | BIER packet header. | |||
4. Co-existence of BIER and BIER-TE in the same network requires the | 4. Co-existence of BIER and BIER-TE in the same network requires the | |||
following: | following: | |||
a. The BIER/BIER-TE packet header needs to allow the addressing | 4.a The BIER/BIER-TE packet header needs to allow the addressing | |||
of both BIER and BIER-TE BIFTs. Depending on the | of both BIER and BIER-TE BIFTs. Depending on the | |||
encapsulation option, the same SD may or may not be reusable | encapsulation option, the same SD may or may not be reusable | |||
across BIER and BIER-TE. See Section 4.3. In either case, a | across BIER and BIER-TE. See Section 4.3. In either case, | |||
packet is always forwarded only end to end via BIER or via | a packet is always forwarded only end to end via BIER or via | |||
BIER-TE ("ships in the night" forwarding). | BIER-TE ("ships in the night" forwarding). | |||
b. BIER-TE deployments will have to assign BFR-ids to BFRs and | 4.b BIER-TE deployments will have to assign BFR-ids to BFRs and | |||
insert them into the BFIR-id field of BIER packet headers, as | insert them into the BFIR-id field of BIER packet headers, | |||
does BIER, whenever the deployment uses (unchanged) | as does BIER, whenever the deployment uses (unchanged) | |||
components developed for BIER that use BFR-ids, such as | components developed for BIER that use BFR-ids, such as | |||
multicast flow overlays or BIER layer control plane elements. | multicast flow overlays or BIER layer control plane | |||
See also Section 5.3.3. | elements. See also Section 5.3.3. | |||
2.5. Accelerated Hardware Forwarding Comparison | 2.5. Accelerated Hardware Forwarding Comparison | |||
BIER-TE forwarding rules, especially BitString parsing, are designed | BIER-TE forwarding rules, especially BitString parsing, are designed | |||
to be as close as possible to those of BIER, with the expectation | to be as close as possible to those of BIER, with the expectation | |||
that this eases the programming of BIER-TE forwarding code and/or | that this eases the programming of BIER-TE forwarding code and/or | |||
BIER-TE forwarding hardware on platforms supporting BIER. The | BIER-TE forwarding hardware on platforms supporting BIER. The | |||
pseudocode in Section 4.4 shows how existing (non-TE) BIER/BIFT | pseudocode in Section 4.4 shows how existing (non-TE) BIER/BIFT | |||
forwarding can be modified to support the required BIER-TE forwarding | forwarding can be modified to support the required BIER-TE forwarding | |||
functionality (Section 4.5), by using the BIER BIFT's "Forwarding Bit | functionality (Section 4.5), by using the BIER BIFT's "Forwarding Bit | |||
skipping to change at line 532 ¶ | skipping to change at line 533 ¶ | |||
In the (non-TE) BIER architecture [RFC8279], the BIER layer is | In the (non-TE) BIER architecture [RFC8279], the BIER layer is | |||
summarized in Section 4.2 of [RFC8279]. This summary includes both | summarized in Section 4.2 of [RFC8279]. This summary includes both | |||
the functions of the BIER-layer control plane and forwarding plane, | the functions of the BIER-layer control plane and forwarding plane, | |||
without using those terms. Example standardized options for the BIER | without using those terms. Example standardized options for the BIER | |||
control plane include IS-IS and OSPF extensions for BIER, as | control plane include IS-IS and OSPF extensions for BIER, as | |||
specified in [RFC8401] and [RFC8444], respectively. | specified in [RFC8401] and [RFC8444], respectively. | |||
For BIER-TE, the control plane includes, at a minimum, the following | For BIER-TE, the control plane includes, at a minimum, the following | |||
functionality. | functionality. | |||
BIER-TE topology control: During initial provisioning of the network | 1. BIER-TE topology control: During initial provisioning of the | |||
and/or during modifications of its topology and/or services, the | network and/or during modifications of its topology and/or | |||
protocols and/or procedures to establish BIER-TE BIFTs: | services, the protocols and/or procedures to establish BIER-TE | |||
BIFTs: | ||||
1. Determine the desired BIER-TE topology for BIER-TE subdomains: | 1.a Determine the desired BIER-TE topology for BIER-TE | |||
the adjacencies that are assigned to BPs. Topology discovery | subdomains: the adjacencies that are assigned to BPs. | |||
is discussed in Section 3.2.1.1, and the various aspects of | Topology discovery is discussed in Section 3.2.1.1, and the | |||
the BIER-TE controller's determinations regarding the topology | various aspects of the BIER-TE controller's determinations | |||
are discussed throughout Section 5. | regarding the topology are discussed throughout Section 5. | |||
2. Determine the per-BFR BIFT from the BIER-TE topology. This is | 1.b Determine the per-BFR BIFT from the BIER-TE topology. This | |||
achieved by simply extracting the adjacencies of the BFR from | is achieved by simply extracting the adjacencies of the BFR | |||
the BIER-TE topology and populating the BFR's BIFT with them. | from the BIER-TE topology and populating the BFR's BIFT with | |||
them. | ||||
3. Optionally assign BFR-ids to BFIRs for later insertion into | 1.c Optionally assign BFR-ids to BFIRs for later insertion into | |||
BIER headers on BFIRs as BFIR-ids. Alternatively, BFIR-ids in | BIER headers on BFIRs as BFIR-ids. Alternatively, BFIR-ids | |||
BIER packet headers may be managed solely by the flow overlay | in BIER packet headers may be managed solely by the flow | |||
layer and/or be unused. This is discussed in Section 5.3.3. | overlay layer and/or be unused. This is discussed in | |||
Section 5.3.3. | ||||
4. Install/update the BIFTs into the BFRs and, optionally, BFR- | 1.d Install/update the BIFTs into the BFRs and, optionally, BFR- | |||
ids into BFIRs. This is discussed in Section 3.2.1.1. | ids into BFIRs. This is discussed in Section 3.2.1.1. | |||
BIER-TE tree control: During network operations, protocols and/or | 2. BIER-TE tree control: During network operations, protocols and/or | |||
procedures to support creation/change/removal of overlay flows on | procedures to support creation/change/removal of overlay flows on | |||
BFIRs: | BFIRs: | |||
1. Process the BIER-TE requirements for the multicast overlay | 2.a Process the BIER-TE requirements for the multicast overlay | |||
flow: BFIRs and BFERs of the flow as well as policies for the | flow: BFIRs and BFERs of the flow as well as policies for | |||
path selection of the flow. This is discussed in Section 3.5. | the path selection of the flow. This is discussed in | |||
Section 3.5. | ||||
2. Determine the BitStrings and, optionally, entropy. BitStrings | 2.b Determine the BitStrings and, optionally, entropy. | |||
are discussed in Sections 3.2.1.2, 3.5, and 5.3.4. Entropy is | BitStrings are discussed in Sections 3.2.1.2, 3.5, and | |||
discussed in Section 4.2.3. | 5.3.4. Entropy is discussed in Section 4.2.3. | |||
3. Install state on the BFIR to impose the desired BIER packet | 2.c Install state on the BFIR to impose the desired BIER packet | |||
header(s) for packets of the overlay flow. Different aspects | header(s) for packets of the overlay flow. Different | |||
of this point, as well as the next point, are discussed | aspects of this point, as well as the next point, are | |||
throughout Section 3.2.1 and in Section 4.3. The main | discussed throughout Section 3.2.1 and in Section 4.3. The | |||
component responsible for these two points is the multicast | main component responsible for these two points is the | |||
flow overlay (Section 3.1), which is architecturally inherited | multicast flow overlay (Section 3.1), which is | |||
from BIER. | architecturally inherited from BIER. | |||
4. Install the necessary state on the BFERs to decapsulate the | 2.d Install the necessary state on the BFERs to decapsulate the | |||
BIER packet header and properly dispatch its payload. | BIER packet header and properly dispatch its payload. | |||
3.2.1. The BIER-TE Controller | 3.2.1. The BIER-TE Controller | |||
This architecture describes the BIER-TE control plane, as shown in | This architecture describes the BIER-TE control plane, as shown in | |||
Figure 3, as consisting of: | Figure 3, as consisting of: | |||
* A BIER-TE controller. | * A BIER-TE controller. | |||
* BFR data models and protocols to communicate between the | * BFR data models and protocols to communicate between the | |||
controller and BFRs in support of BIER-TE topology control | controller and BFRs in support of BIER-TE topology control (see | |||
(Section 3.2) (see the list under "BIER-TE topology control"), | the list under "BIER-TE topology control"), such as YANG/NETCONF/ | |||
such as YANG/NETCONF/RESTCONF [RFC7950] [RFC6241] [RFC8040]. | RESTCONF [RFC7950] [RFC6241] [RFC8040]. | |||
* BFR data models and protocols to communicate between the | * BFR data models and protocols to communicate between the | |||
controller and BFIRs in support of BIER-TE tree control | controller and BFIRs in support of BIER-TE tree control (see | |||
(Section 3.2) (see the list under "BIER-TE tree control"), such as | Section 3.2, point 2.), such as BIER-TE extensions for [RFC5440]. | |||
BIER-TE extensions for [RFC5440]. | ||||
The single, centralized BIER-TE controller is used in this document | The single, centralized BIER-TE controller is used in this document | |||
as the reference option for the BIER-TE control plane, but other | as the reference option for the BIER-TE control plane, but other | |||
options are equally feasible. The BIER-TE control plane could | options are equally feasible. The BIER-TE control plane could | |||
equally be implemented without automated configuration/protocols, by | equally be implemented without automated configuration/protocols, by | |||
an operator via a CLI on the BFRs. In that case, operator-configured | an operator via a CLI on the BFRs. In that case, operator-configured | |||
local policy on the BFIR would have to determine how to set the | local policy on the BFIR would have to determine how to set the | |||
appropriate BIER header fields. The BIER-TE control plane could also | appropriate BIER header fields. The BIER-TE control plane could also | |||
be decentralized and/or distributed, but this document does not | be decentralized and/or distributed, but this document does not | |||
consider any additional protocols and/or procedures that would then | consider any additional protocols and/or procedures that would then | |||
be necessary to coordinate its (distributed/decentralized) entities | be necessary to coordinate its (distributed/decentralized) entities | |||
to achieve the above-described functionality. | to achieve the above-described functionality. | |||
3.2.1.1. BIER-TE Topology Discovery and Creation | 3.2.1.1. BIER-TE Topology Discovery and Creation | |||
The first item listed for BIER-TE topology control (Section 3.2) | The first item listed for BIER-TE topology control (Section 3.2, | |||
includes network topology discovery and BIER-TE topology creation. | point 1.a.) includes network topology discovery and BIER-TE topology | |||
The latter describes the process by which a controller determines | creation. The latter describes the process by which a controller | |||
which routers are to be configured as BFRs and the adjacencies | determines which routers are to be configured as BFRs and the | |||
between them. | adjacencies between them. | |||
In statically managed networks, e.g., industrial environments, both | In statically managed networks, e.g., industrial environments, both | |||
discovery and creation can be a manual/offline process. | discovery and creation can be a manual/offline process. | |||
In other networks, topology discovery may rely on such protocols as | In other networks, topology discovery may rely on such protocols as | |||
those that include extending an IGP based on a link-state protocol | those that include extending an IGP based on a link-state protocol | |||
into the BIER-TE controller itself, e.g., BGP-LS [RFC7752] or YANG | into the BIER-TE controller itself, e.g., BGP-LS [RFC7752] or YANG | |||
topology [RFC8345], as well as methods specific to BIER-TE -- for | topology [RFC8345], as well as methods specific to BIER-TE -- for | |||
example, via [BIER-TE-YANG]. These options are non-exhaustive. | example, via [BIER-TE-YANG]. These options are non-exhaustive. | |||
skipping to change at line 1088 ¶ | skipping to change at line 1092 ¶ | |||
forwarding functions (see Section 4.5) -- forward_connected(), | forwarding functions (see Section 4.5) -- forward_connected(), | |||
forward_routed(), and local_decap() -- but cannot support the | forward_routed(), and local_decap() -- but cannot support the | |||
recommended functions (DNC flag and multiple adjacencies per bit) or | recommended functions (DNC flag and multiple adjacencies per bit) or | |||
the optional function (i.e., ECMP() adjacencies). The DNC flag | the optional function (i.e., ECMP() adjacencies). The DNC flag | |||
cannot be supported when using only [1] to mask bits. | cannot be supported when using only [1] to mask bits. | |||
The modified and expanded forwarding pseudocode in Figure 6 specifies | The modified and expanded forwarding pseudocode in Figure 6 specifies | |||
how to support all BIER-TE forwarding functions (required, | how to support all BIER-TE forwarding functions (required, | |||
recommended, and optional): | recommended, and optional): | |||
* This pseudocode eliminates per-bit F-BMs, therefore reducing the | 1. This pseudocode eliminates per-bit F-BMs, therefore reducing the | |||
size of BIFT state by SI*BSL^2 and eliminating the need for per- | size of BIFT state by SI*BSL^2 and eliminating the need for per- | |||
packet-copy BitString masking operations, except for adjacencies | packet-copy BitString masking operations, except for adjacencies | |||
with the DNC flag set: | with the DNC flag set: | |||
- AdjacentBits[SI] are bit positions with a non-empty list of | 1.a AdjacentBits[SI] are bit positions with a non-empty list of | |||
adjacencies in this BFR BIFT. This can be computed whenever | adjacencies in this BFR BIFT. This can be computed whenever | |||
the BIER-TE controller updates (adds/removes) adjacencies in | the BIER-TE controller updates (adds/removes) adjacencies in | |||
the BIFT. | the BIFT. | |||
- The BFR needs to create packet copies for these adjacent bits | 1.b The BFR needs to create packet copies for these adjacent | |||
when they are set in the packets BitString. This set of bits | bits when they are set in the packets BitString. This set | |||
is calculated in PktAdjacentBits. | of bits is calculated in PktAdjacentBits. | |||
- All bit positions for which the BFR creates copies have to be | 1.c All bit positions for which the BFR creates copies have to | |||
cleared in packet copies to avoid loops. This is done by | be cleared in packet copies to avoid loops. This is done by | |||
masking the BitString of the packet with ~AdjacentBits[SI]. | masking the BitString of the packet with ~AdjacentBits[SI]. | |||
When an adjacency has DNC set, this bit position is set again | When an adjacency has DNC set, this bit position is set | |||
only for the packet copy towards that bit position. | again only for the packet copy towards that bit position. | |||
* BIFT entries may contain more than one adjacency in support of | 2. BIFT entries may contain more than one adjacency in support of | |||
specific configurations, such as a hub and multiple spokes | specific configurations, such as a hub and multiple spokes | |||
(Section 5.1.5). The code therefore includes a loop over these | (Section 5.1.5). The code therefore includes a loop over these | |||
adjacencies. | adjacencies. | |||
* The ECMP() adjacency is also shown in the figure. Its parameters | 3. The ECMP() adjacency is also shown in the figure. Its parameters | |||
are a seed and "ListOfAdjacencies", from which one is picked. | are a seed and "ListOfAdjacencies", from which one is picked. | |||
* The forward_connected(), forward_routed(), and local_decap() | 4. The forward_connected(), forward_routed(), and local_decap() | |||
adjacencies are shown with their parameters. | adjacencies are shown with their parameters. | |||
void ForwardBitMaskPacket_withTE (Packet) | void ForwardBitMaskPacket_withTE (Packet) | |||
{ | { | |||
SI = GetPacketSI(Packet); | SI = GetPacketSI(Packet); | |||
Offset = SI * BitStringLength; | Offset = SI * BitStringLength; | |||
// Determine adjacent bits in the packets BitString | // Determine adjacent bits in the packets BitString | |||
PktAdjacentBits = Packet->BitString & AdjacentBits[SI]; | PktAdjacentBits = Packet->BitString & AdjacentBits[SI]; | |||
// Clear adjacent bits in the packet header to avoid loops | // Clear adjacent bits in the packet header to avoid loops | |||
Packet->BitString &= ~AdjacentBits[SI]; | Packet->BitString &= ~AdjacentBits[SI]; | |||
skipping to change at line 1630 ¶ | skipping to change at line 1634 ¶ | |||
controller can create a BIER-TE topology in a way that minimizes the | controller can create a BIER-TE topology in a way that minimizes the | |||
number of necessary BPs. | number of necessary BPs. | |||
Without any optimization, a BIER-TE controller would attempt to map | Without any optimization, a BIER-TE controller would attempt to map | |||
the network subnet topology 1:1 into the BIER-TE topology, every | the network subnet topology 1:1 into the BIER-TE topology, every | |||
adjacent neighbor in the subnet would require a forward_connected() | adjacent neighbor in the subnet would require a forward_connected() | |||
BP, and every BFER would require a local_decap() BP. | BP, and every BFER would require a local_decap() BP. | |||
The optimizations described in this document are then as follows: | The optimizations described in this document are then as follows: | |||
* P2P links require only one BP (Section 5.1.1). | 1. P2P links require only one BP (Section 5.1.1). | |||
* All leaf BFERs can share a single local_decap() BP | 2. All leaf BFERs can share a single local_decap() BP | |||
(Section 5.1.3). | (Section 5.1.3). | |||
* A LAN with N BFRs needs at most N BPs (one for each BFR). It only | 3. A LAN with N BFRs needs at most N BPs (one for each BFR). It | |||
needs one BP for all those BFRs that are not redundantly connected | only needs one BP for all those BFRs that are not redundantly | |||
to multiple LANs (Section 5.1.4). | connected to multiple LANs (Section 5.1.4). | |||
* A hub with P2P connections to multiple non-leaf BFER spokes can | 4. A hub with P2P connections to multiple non-leaf BFER spokes can | |||
share one BP with all of the spokes if traffic can be flooded to | share one BP with all of the spokes if traffic can be flooded to | |||
all of those spokes, e.g., because of no bandwidth concerns or | all of those spokes, e.g., because of no bandwidth concerns or | |||
dense receiver sets (Section 5.1.5). | dense receiver sets (Section 5.1.5). | |||
* Rings of BFRs can be built with just two BPs (one for each | 5. Rings of BFRs can be built with just two BPs (one for each | |||
direction), except for BFRs with multiple ring connections -- | direction), except for BFRs with multiple ring connections -- | |||
similar to LANs (Section 5.1.6). | similar to LANs (Section 5.1.6). | |||
* ECMP() adjacencies to N neighbors can replace N BPs with one BP. | 6. ECMP() adjacencies to N neighbors can replace N BPs with one BP. | |||
Multihop ECMP can avoid polarization through different seeds of | Multihop ECMP can avoid polarization through different seeds of | |||
the ECMP algorithm (Section 5.1.7). | the ECMP algorithm (Section 5.1.7). | |||
* Forward_routed() adjacencies permit "tunneling" across routers | 7. Forward_routed() adjacencies permit "tunneling" across routers | |||
that are either BIER-TE capable or not BIER-TE capable where no | that are either BIER-TE capable or not BIER-TE capable where no | |||
traffic steering or replications are required (Section 5.1.8). | traffic steering or replications are required (Section 5.1.8). | |||
* A BP can generally be reused across a set of nodes where it can be | 8. A BP can generally be reused across a set of nodes where it can | |||
guaranteed that no path will ever need to traverse more than one | be guaranteed that no path will ever need to traverse more than | |||
node of the set. Depending on the scenario, this may limit the | one node of the set. Depending on the scenario, this may limit | |||
feasible path steering options (Section 5.1.9). | the feasible path steering options (Section 5.1.9). | |||
Note that this list of optimizations is not exhaustive. Further | Note that this list of optimizations is not exhaustive. Further | |||
optimizations of BPs are possible, especially when both the set of | optimizations of BPs are possible, especially when both the set of | |||
required path steering choices and the possible subsets of BFERs that | required path steering choices and the possible subsets of BFERs that | |||
should be able to receive traffic are limited. The hub-and-spoke | should be able to receive traffic are limited. The hub-and-spoke | |||
optimization is a simple example of such traffic-pattern-dependent | optimization is a simple example of such traffic-pattern-dependent | |||
optimizations. | optimizations. | |||
5.2. Avoiding Duplicates and Loops | 5.2. Avoiding Duplicates and Loops | |||
skipping to change at line 1805 ¶ | skipping to change at line 1809 ¶ | |||
In BIER-TE, BitStrings need to carry bits to indicate not only the | In BIER-TE, BitStrings need to carry bits to indicate not only the | |||
receiving BFER but also the intermediate hops/links across which the | receiving BFER but also the intermediate hops/links across which the | |||
packet must be sent. The maximum number of BFERs that can be | packet must be sent. The maximum number of BFERs that can be | |||
supported in a single BitString or BIFT:SI depends on the number of | supported in a single BitString or BIFT:SI depends on the number of | |||
bits necessary to represent the desired topology between them. | bits necessary to represent the desired topology between them. | |||
"Desired" topology means that it depends on the physical topology and | "Desired" topology means that it depends on the physical topology and | |||
the operator's desire to | the operator's desire to | |||
* permit explicit path steering across every single hop (which | 1. permit explicit path steering across every single hop (which | |||
requires more bits), or | requires more bits), or | |||
* reduce the number of required bits by exploiting optimizations | 2. reduce the number of required bits by exploiting optimizations | |||
such as unicast (forward_routed()), ECMP(), or flood (DNC) over | such as unicast (forward_routed()), ECMP(), or flood (DNC) over | |||
"uninteresting" sub-parts of the topology, e.g., parts where, for | "uninteresting" sub-parts of the topology, e.g., parts where, for | |||
path steering reasons, different trees do not need to take | path steering reasons, different trees do not need to take | |||
different paths. | different paths. | |||
The total number of bits to describe the topology vs. the number of | The total number of bits to describe the topology vs. the number of | |||
BFERs in a BIFT:SI can range widely based on the size of the topology | BFERs in a BIFT:SI can range widely based on the size of the topology | |||
and the amount of alternative paths in it. In a BIER-TE topology | and the amount of alternative paths in it. In a BIER-TE topology | |||
crafted by a BIER-TE expert, the higher the percentage of non-BFER | crafted by a BIER-TE expert, the higher the percentage of non-BFER | |||
bits, the higher the likelihood that those topology bits are not just | bits, the higher the likelihood that those topology bits are not just | |||
BIER-TE overhead without additional benefit but instead will allow | BIER-TE overhead without additional benefit but instead will allow | |||
the expression of desirable path steering alternatives. | the expression of desirable path steering alternatives. | |||
5.3.3. Assigning BFR-ids with BIER-TE | 5.3.3. Assigning BFR-ids with BIER-TE | |||
skipping to change at line 2180 ¶ | skipping to change at line 2184 ¶ | |||
[RFC8296] Wijnands, IJ., Ed., Rosen, E., Ed., Dolganow, A., | [RFC8296] Wijnands, IJ., Ed., Rosen, E., Ed., Dolganow, A., | |||
Tantsura, J., Aldrin, S., and I. Meilik, "Encapsulation | Tantsura, J., Aldrin, S., and I. Meilik, "Encapsulation | |||
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>. | |||
8.2. Informative References | 8.2. Informative References | |||
[BIER-MCAST-OVERLAY] | [BIER-MCAST-OVERLAY] | |||
Trossen, D., Rahman, A., Wang, C., and T. T. Eckert, | Trossen, D., Rahman, A., Wang, C., and T. Eckert, | |||
"Applicability of BIER Multicast Overlay for Adaptive | "Applicability of BIER Multicast Overlay for Adaptive | |||
Streaming Services", Work in Progress, Internet-Draft, | Streaming Services", Work in Progress, Internet-Draft, | |||
draft-ietf-bier-multicast-http-response-06, 10 July 2021, | draft-ietf-bier-multicast-http-response-06, 10 July 2021, | |||
<https://datatracker.ietf.org/doc/html/draft-ietf-bier- | <https://datatracker.ietf.org/doc/html/draft-ietf-bier- | |||
multicast-http-response-06>. | multicast-http-response-06>. | |||
[BIER-TE-PROTECTION] | [BIER-TE-PROTECTION] | |||
Eckert, T. T., Cauchie, G., Braun, W., and M. Menth, | Eckert, T., Cauchie, G., Braun, W., and M. Menth, | |||
"Protection Methods for BIER-TE", Work in Progress, | "Protection Methods for BIER-TE", Work in Progress, | |||
Internet-Draft, draft-eckert-bier-te-frr-03, 5 March 2018, | Internet-Draft, draft-eckert-bier-te-frr-03, 5 March 2018, | |||
<https://datatracker.ietf.org/doc/html/draft-eckert-bier- | <https://datatracker.ietf.org/doc/html/draft-eckert-bier- | |||
te-frr-03>. | te-frr-03>. | |||
[BIER-TE-YANG] | [BIER-TE-YANG] | |||
Zhang, Z., Wang, C., Chen, R., hu, F., Sivakumar, M., and | Zhang, Z., Wang, C., Chen, R., Hu, F., Sivakumar, M., and | |||
chenhuanan, "A YANG data model for Tree Engineering for | H. Chen, "A YANG data model for Tree Engineering for Bit | |||
Bit Index Explicit Replication (BIER-TE)", Work in | Index Explicit Replication (BIER-TE)", Work in Progress, | |||
Progress, Internet-Draft, draft-ietf-bier-te-yang-05, 1 | Internet-Draft, draft-ietf-bier-te-yang-05, 1 May 2022, | |||
May 2022, <https://datatracker.ietf.org/doc/html/draft- | <https://datatracker.ietf.org/doc/html/draft-ietf-bier-te- | |||
ietf-bier-te-yang-05>. | yang-05>. | |||
[Bloom70] Bloom, B. H., "Space/time trade-offs in hash coding with | [Bloom70] Bloom, B. H., "Space/time trade-offs in hash coding with | |||
allowable errors", Comm. ACM 13(7):422-6, | allowable errors", Comm. ACM 13(7):422-6, | |||
DOI 10.1145/362686.362692, July 1970, | DOI 10.1145/362686.362692, July 1970, | |||
<https://dl.acm.org/doi/10.1145/362686.362692>. | <https://dl.acm.org/doi/10.1145/362686.362692>. | |||
[CONSTRAINED-CAST] | [CONSTRAINED-CAST] | |||
Bergmann, O., Bormann, C., Gerdes, S., and H. Chen, | Bergmann, O., Bormann, C., Gerdes, S., and H. Chen, | |||
"Constrained-Cast: Source-Routed Multicast for RPL", Work | "Constrained-Cast: Source-Routed Multicast for RPL", Work | |||
in Progress, Internet-Draft, draft-ietf-roll-ccast-01, 30 | in Progress, Internet-Draft, draft-ietf-roll-ccast-01, 30 | |||
skipping to change at line 2323 ¶ | skipping to change at line 2327 ¶ | |||
<https://www.rfc-editor.org/info/rfc8444>. | <https://www.rfc-editor.org/info/rfc8444>. | |||
[RFC8556] Rosen, E., Ed., Sivakumar, M., Przygienda, T., Aldrin, S., | [RFC8556] Rosen, E., Ed., Sivakumar, M., Przygienda, T., Aldrin, S., | |||
and A. Dolganow, "Multicast VPN Using Bit Index Explicit | and A. Dolganow, "Multicast VPN Using Bit Index Explicit | |||
Replication (BIER)", RFC 8556, DOI 10.17487/RFC8556, April | Replication (BIER)", RFC 8556, DOI 10.17487/RFC8556, April | |||
2019, <https://www.rfc-editor.org/info/rfc8556>. | 2019, <https://www.rfc-editor.org/info/rfc8556>. | |||
[TE-OVERVIEW] | [TE-OVERVIEW] | |||
Farrel, A., Ed., "Overview and Principles of Internet | Farrel, A., Ed., "Overview and Principles of Internet | |||
Traffic Engineering", Work in Progress, Internet-Draft, | Traffic Engineering", Work in Progress, Internet-Draft, | |||
draft-ietf-teas-rfc3272bis-16, 24 March 2022, | draft-ietf-teas-rfc3272bis-21, 11 September 2022, | |||
<https://datatracker.ietf.org/doc/html/draft-ietf-teas- | <https://datatracker.ietf.org/doc/html/draft-ietf-teas- | |||
rfc3272bis-16>. | rfc3272bis-21>. | |||
Appendix A. BIER-TE and Segment Routing (SR) | Appendix A. BIER-TE and Segment Routing (SR) | |||
SR [RFC8402] aims to enable lightweight path steering via loose | SR [RFC8402] aims to enable lightweight path steering via loose | |||
source routing. For example, compared to its more heavyweight | source routing. For example, compared to its more heavyweight | |||
predecessor, RSVP-TE, SR does not require per-path signaling to each | predecessor, RSVP-TE, SR does not require per-path signaling to each | |||
of these hops. | of these hops. | |||
BIER-TE supports the same design philosophy for multicast. Like SR, | BIER-TE supports the same design philosophy for multicast. Like SR, | |||
BIER-TE | BIER-TE | |||
End of changes. 50 change blocks. | ||||
169 lines changed or deleted | 173 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |