rfc9855v1.txt | rfc9855.txt | |||
---|---|---|---|---|
skipping to change at line 428 ¶ | skipping to change at line 428 ¶ | |||
other router in the network. | other router in the network. | |||
The TI-LFA repair path is found by intersecting P(S,X) and Q(D,X) | The TI-LFA repair path is found by intersecting P(S,X) and Q(D,X) | |||
with the post-convergence path to D and computing the explicit SR- | with the post-convergence path to D and computing the explicit SR- | |||
based path EP(P, Q) from a node P in P(S,X) to a node Q in Q(D,X) | based path EP(P, Q) from a node P in P(S,X) to a node Q in Q(D,X) | |||
when these nodes are not adjacent along the post-convergence path. | when these nodes are not adjacent along the post-convergence path. | |||
The TI-LFA repair list is expressed generally as (Node-SID(P), EP(P, | The TI-LFA repair list is expressed generally as (Node-SID(P), EP(P, | |||
Q)). | Q)). | |||
S ------- N1 ----------- D | S ------- N1 ----------- D | |||
*\ | \ | | *\ | \ | | |||
* \ | \ | | * \ | \ | | |||
* \ | \ | | * \ | \ | | |||
* N2-----R1****R2 *** R3 | * N2-----R1****R2 *** R3 | |||
* * | * * | |||
N3 ********* | N3 ********* | |||
***** : link with high metric (1k) | ***** : link with high metric (1k) | |||
----- : link with metric 1 | ----- : link with metric 1 | |||
Figure 1: Sample Topology with TI-LFA | Figure 1: Sample Topology with TI-LFA | |||
As an example, in Figure 1, the focus is on the TI-LFA backup from S | As an example, in Figure 1, the focus is on the TI-LFA backup from S | |||
skipping to change at line 611 ¶ | skipping to change at line 611 ¶ | |||
7.1. MPLS Dataplane Considerations | 7.1. MPLS Dataplane Considerations | |||
The MPLS dataplane for Segment Routing (SR) is described in | The MPLS dataplane for Segment Routing (SR) is described in | |||
[RFC8660]. | [RFC8660]. | |||
The following dataplane behaviors apply when creating a repair list | The following dataplane behaviors apply when creating a repair list | |||
using an MPLS dataplane: | using an MPLS dataplane: | |||
1. If the active segment is a node segment that has been signaled | 1. If the active segment is a node segment that has been signaled | |||
with penultimate hop popping, and the repair list ends with an | with penultimate hop popping, and the repair list ends with an | |||
adjacency segment terminating on a node that advertised the | adjacency segment terminating on the penultimate node of the | |||
"NEXT" operation [RFC8402] of the active segment, then the active | active segment, then the active segment MUST be popped before | |||
segment MUST be popped before pushing the repair list. | pushing the repair list. | |||
2. If the active segment is a node segment, but the other conditions | 2. If the active segment is a node segment, but the other conditions | |||
in 1. are not met, the active segment MUST be popped and then | in 1. are not met, the active segment MUST be popped and then | |||
pushed again with a label value computed according to the Segment | pushed again with a label value computed according to the Segment | |||
Routing Global Block (SRGB) of Q, where Q is the endpoint of the | Routing Global Block (SRGB) of Q, where Q is the endpoint of the | |||
repair list. Finally, the repair list MUST be pushed. | repair list. Finally, the repair list MUST be pushed. | |||
7.2. SRv6 Dataplane Considerations | 7.2. SRv6 Dataplane Considerations | |||
SRv6 dataplane and programming instructions are described | SRv6 dataplane and programming instructions are described | |||
skipping to change at line 880 ¶ | skipping to change at line 880 ¶ | |||
and PE4, when the link L fails, depending on the convergence speed of | and PE4, when the link L fails, depending on the convergence speed of | |||
the nodes, X may reroute its forwarding entries to the remote PEs | the nodes, X may reroute its forwarding entries to the remote PEs | |||
onto X-H or X-D; however, in a similar timeframe, PE1 will also | onto X-H or X-D; however, in a similar timeframe, PE1 will also | |||
reroute a subset of its traffic (the subset destined to PE2) out of | reroute a subset of its traffic (the subset destined to PE2) out of | |||
its nominal path, reducing the quantity of traffic received by X. | its nominal path, reducing the quantity of traffic received by X. | |||
The capacity planning rule presented previously has the drawback of | The capacity planning rule presented previously has the drawback of | |||
oversizing the network; however, it allows for preventing any | oversizing the network; however, it allows for preventing any | |||
transient congestion (for example, when X reroutes traffic before PE1 | transient congestion (for example, when X reroutes traffic before PE1 | |||
does). | does). | |||
H --- I --- J | H --- I --- J * | |||
| | \ | | | * | |||
PE4 | | PE3 | PE4 | | PE3 | |||
\ | (L) | / | \ | (L) | * | |||
A --- X --- B --- G | * A --- X --- B --- G * | |||
/ | | \ | * | | * | |||
PE1 | | PE2 | PE1 | | PE2 | |||
\ | | / | * | | * | |||
C --- D --- E --- F | * C --- D --- E --- F * | |||
Figure 3 | Figure 3 | |||
Based on this assumption, in order to facilitate the operation of FRR | Based on this assumption, in order to facilitate the operation of FRR | |||
and limit the implementation of local FRR policies, traffic can be | and limit the implementation of local FRR policies, traffic can be | |||
steered by the PLR onto its expected post-convergence path during the | steered by the PLR onto its expected post-convergence path during the | |||
FRR phase. In our example, when link L fails, X switches the traffic | FRR phase. In our example, when link L fails, X switches the traffic | |||
destined to PE3 and PE2 on the post-convergence paths. This is | destined to PE3 and PE2 on the post-convergence paths. This is | |||
perfectly in line with the capacity planning rule that was presented | perfectly in line with the capacity planning rule that was presented | |||
before and also in line with the fact that X may converge before PE1 | before and also in line with the fact that X may converge before PE1 | |||
skipping to change at line 929 ¶ | skipping to change at line 929 ¶ | |||
that happened is different from the failure FRR was protecting | that happened is different from the failure FRR was protecting | |||
against. As an example, if the operator has implemented a protection | against. As an example, if the operator has implemented a protection | |||
against a node failure, the expected post-convergence path used | against a node failure, the expected post-convergence path used | |||
during FRR will be the one considering that the node has failed. | during FRR will be the one considering that the node has failed. | |||
However, even if a single link is failing or a set of links is | However, even if a single link is failing or a set of links is | |||
failing (instead of the full node), the node-protecting post- | failing (instead of the full node), the node-protecting post- | |||
convergence path will be used. The consequence is that the path used | convergence path will be used. The consequence is that the path used | |||
during FRR is not optimal with respect to the failure that has | during FRR is not optimal with respect to the failure that has | |||
actually occurred. | actually occurred. | |||
Another consideration to take into account is as follows: While using | Another consideration to take into account is as follows: while using | |||
the expected post-convergence path for SR traffic using node segments | the expected post-convergence path for SR traffic using node segments | |||
only (for instance, PE to PE traffic using the shortest path) has | only (for instance, PE to PE traffic using the shortest path) has | |||
some advantages, these advantages reduce when SR policies [RFC9256] | some advantages, these advantages reduce when SR policies [RFC9256] | |||
are involved. A segment list used in an SR policy is computed to | are involved. A segment list used in an SR policy is computed to | |||
obey a set of path constraints defined locally at the head-end or | obey a set of path constraints defined locally at the head-end or | |||
centrally in a controller. TI-LFA cannot be aware of such path | centrally in a controller. TI-LFA cannot be aware of such path | |||
constraints, and there is no reason to expect the TI-LFA backup path | constraints, and there is no reason to expect the TI-LFA backup path | |||
protecting one segment in that segment list to obey those | protecting one segment in that segment list to obey those | |||
constraints. When SR policies are used and the operator wants to | constraints. When SR policies are used and the operator wants to | |||
have a backup path that still follows the policy requirements, this | have a backup path that still follows the policy requirements, this | |||
skipping to change at line 961 ¶ | skipping to change at line 961 ¶ | |||
This section presents an analysis performed on real service provider | This section presents an analysis performed on real service provider | |||
and large enterprise network topologies. The objective of the | and large enterprise network topologies. The objective of the | |||
analysis is to assess the number of SIDs required in an explicit path | analysis is to assess the number of SIDs required in an explicit path | |||
when the mechanisms described in this document are used to protect | when the mechanisms described in this document are used to protect | |||
against the failure scenarios within the scope of this document. The | against the failure scenarios within the scope of this document. The | |||
number of segments described in this section are applicable to | number of segments described in this section are applicable to | |||
instantiating SR over the MPLS forwarding plane. | instantiating SR over the MPLS forwarding plane. | |||
The measurement below indicates that, for link and local SRLG | The measurement below indicates that, for link and local SRLG | |||
protection, a 1-SID repair path delivers more than 99% coverage. For | protection, a repair path of 1 SID or less delivers more than 99% | |||
node protection, a 2-SID repair path yields 99% coverage. | coverage. For node protection, a repair path of 2 SIDs or less | |||
yields 99% coverage. | ||||
Table 1 below lists the characteristics of the networks used in our | Table 1 below lists the characteristics of the networks used in our | |||
measurements. The number of links refers to the number of | measurements. The number of links refers to the number of | |||
"bidirectional" links (not directed edges of the graph). The | "bidirectional" links (not directed edges of the graph). The | |||
measurements are carried out as follows: | measurements are carried out as follows: | |||
* For each network, the algorithms described in this document are | * For each network, the algorithms described in this document are | |||
applied to protect all prefixes against link, node, and local SRLG | applied to protect all prefixes against link, node, and local SRLG | |||
failure. | failure. | |||
* For each prefix, the number of SIDs used by the repair path is | * For each prefix, the number of SIDs used by the repair path is | |||
recorded. | recorded. | |||
* The percentage of number of SIDs are listed in Tables 2, 3, 4, 5, | * The percentage of number of SIDs are listed in Tables 2, 3, 4, 5, | |||
6, and 7. | 6, and 7. | |||
The measurements listed in the tables indicate that for link and | ||||
local SRLG protection, a 1-SID repair path is sufficient to protect | ||||
more than 99% of the prefix in almost all cases. For node | ||||
protection, 2-SID repair paths yield 99% coverage. | ||||
+=========+=======+=======+====================+============+ | +=========+=======+=======+====================+============+ | |||
| Network | Nodes | Links | Node-to-Link Ratio | SRLG Info? | | | Network | Nodes | Links | Node-to-Link Ratio | SRLG Info? | | |||
+=========+=======+=======+====================+============+ | +=========+=======+=======+====================+============+ | |||
| T1 | 408 | 665 | 1.63 | Yes | | | T1 | 408 | 665 | 1.63 | Yes | | |||
+---------+-------+-------+--------------------+------------+ | +---------+-------+-------+--------------------+------------+ | |||
| T2 | 587 | 1083 | 1.84 | No | | | T2 | 587 | 1083 | 1.84 | No | | |||
+---------+-------+-------+--------------------+------------+ | +---------+-------+-------+--------------------+------------+ | |||
| T3 | 93 | 401 | 4.31 | Yes | | | T3 | 93 | 401 | 4.31 | Yes | | |||
+---------+-------+-------+--------------------+------------+ | +---------+-------+-------+--------------------+------------+ | |||
| T4 | 247 | 393 | 1.59 | Yes | | | T4 | 247 | 393 | 1.59 | Yes | | |||
skipping to change at line 1055 ¶ | skipping to change at line 1051 ¶ | |||
| T7 | 98.9% | 1.1% | 0.0% | 0.0% | | | T7 | 98.9% | 1.1% | 0.0% | 0.0% | | |||
+---------+--------+-------+--------+--------+ | +---------+--------+-------+--------+--------+ | |||
| T8 | 94.1% | 5.9% | 0.0% | 0.0% | | | T8 | 94.1% | 5.9% | 0.0% | 0.0% | | |||
+---------+--------+-------+--------+--------+ | +---------+--------+-------+--------+--------+ | |||
| T9 | 98.9% | 1.0% | 0.0% | 0.0% | | | T9 | 98.9% | 1.0% | 0.0% | 0.0% | | |||
+---------+--------+-------+--------+--------+ | +---------+--------+-------+--------+--------+ | |||
Table 2: Link Protection (Repair Size | Table 2: Link Protection (Repair Size | |||
Distribution) | Distribution) | |||
+=========+========+========+========+========+ | +=========+========+=======+========+========+ | |||
| Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs | | | Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs | | |||
+=========+========+========+========+========+ | +=========+========+=======+========+========+ | |||
| T1 | 74.2% | 99.5% | 99.9% | 100.0% | | | T1 | 74.2% | 99.5% | 99.9% | 100% | | |||
+---------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+ | |||
| T2 | 81.1% | 99.8% | 100.0% | 100.0% | | | T2 | 81.1% | 99.8% | 100% | 100% | | |||
+---------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+ | |||
| T3 | 95.9% | 99.9% | 100.0% | 100.0% | | | T3 | 95.9% | 99.9% | 100% | 100% | | |||
+---------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+ | |||
| T4 | 62.5% | 98.2% | 100.0% | 100.0% | | | T4 | 62.5% | 98.2% | 100% | 100% | | |||
+---------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+ | |||
| T5 | 85.7% | 100.0% | 100.0% | 100.0% | | | T5 | 85.7% | 100% | 100% | 100% | | |||
+---------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+ | |||
| T6 | 81.2% | 99.9% | 100.0% | 100.0% | | | T6 | 81.2% | 99.9% | 100% | 100% | | |||
+---------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+ | |||
| T7 | 98.8% | 100.0% | 100.0% | 100.0% | | | T7 | 98.8% | 100% | 100% | 100% | | |||
+---------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+ | |||
| T8 | 94.1% | 100.0% | 100.0% | 100.0% | | | T8 | 94.1% | 100% | 100% | 100% | | |||
+---------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+ | |||
| T9 | 98.9% | 100.0% | 100.0% | 100.0% | | | T9 | 98.9% | 100% | 100% | 100% | | |||
+---------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+ | |||
Table 3: Link Protection (Repair Size | Table 3: Link Protection (Repair Size | |||
Cumulative Distribution) | Cumulative Distribution) | |||
Tables 4 and 5 summarize the measurements on the number of SIDs | Tables 4 and 5 summarize the measurements on the number of SIDs | |||
needed for local SRLG protection. | needed for local SRLG protection. | |||
+=========+========+=======+========+========+ | +=========+========+=======+========+========+ | |||
| Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs | | | Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs | | |||
+=========+========+=======+========+========+ | +=========+========+=======+========+========+ | |||
| T1 | 74.2% | 25.3% | 0.5% | 0.0% | | | T1 | 74.2% | 25.3% | 0.5% | 0.0% | | |||
+---------+--------+-------+--------+--------+ | +---------+--------+-------+--------+--------+ | |||
| T2 | No SRLG information | | | T2 | No SRLG information | | |||
skipping to change at line 1108 ¶ | skipping to change at line 1104 ¶ | |||
| T7 | No SRLG information | | | T7 | No SRLG information | | |||
+---------+--------+-------+--------+--------+ | +---------+--------+-------+--------+--------+ | |||
| T8 | 85.2% | 14.8% | 0.0% | 0.0% | | | T8 | 85.2% | 14.8% | 0.0% | 0.0% | | |||
+---------+--------+-------+--------+--------+ | +---------+--------+-------+--------+--------+ | |||
| T9 | 98.9% | 1.1% | 0.0% | 0.0% | | | T9 | 98.9% | 1.1% | 0.0% | 0.0% | | |||
+---------+--------+-------+--------+--------+ | +---------+--------+-------+--------+--------+ | |||
Table 4: Local SRLG Protection (Repair | Table 4: Local SRLG Protection (Repair | |||
Size Distribution) | Size Distribution) | |||
+=========+========+========+========+========+ | +=========+========+=======+========+========+ | |||
| Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs | | | Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs | | |||
+=========+========+========+========+========+ | +=========+========+=======+========+========+ | |||
| T1 | 74.2% | 99.5% | 99.9% | 100.0% | | | T1 | 74.2% | 99.5% | 99.9% | 100% | | |||
+---------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+ | |||
| T2 | No SRLG information | | | T2 | No SRLG information | | |||
+---------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+ | |||
| T3 | 93.6% | 99.9% | 100.0% | 0.0% | | | T3 | 93.6% | 99.9% | 100% | 0.0% | | |||
+---------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+ | |||
| T4 | 62.5% | 98.2% | 100.0% | 100.0% | | | T4 | 62.5% | 98.2% | 100% | 100% | | |||
+---------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+ | |||
| T5 | 83.1% | 100.0% | 100.0% | 100.0% | | | T5 | 83.1% | 100% | 100% | 100% | | |||
+---------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+ | |||
| T6 | No SRLG information | | | T6 | No SRLG information | | |||
+---------+-----------------------------------+ | +---------+----------------------------------+ | |||
| T7 | No SRLG information | | | T7 | No SRLG information | | |||
+---------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+ | |||
| T8 | 85.2% | 100.0% | 100.0% | 100.0% | | | T8 | 85.2% | 100% | 100% | 100% | | |||
+---------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+ | |||
| T9 | 98.9% | 100.0% | 100.0% | 100.0% | | | T9 | 98.9% | 100% | 100% | 100% | | |||
+---------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+ | |||
Table 5: Local SRLG Protection (Repair Size | Table 5: Local SRLG Protection (Repair | |||
Cumulative Distribution) | Size Cumulative Distribution) | |||
The remaining two tables summarize the measurements on the number of | The remaining two tables summarize the measurements on the number of | |||
SIDs needed for node protection. | SIDs needed for node protection. | |||
+=========+========+=======+========+========+========+ | +=========+========+=======+========+========+========+ | |||
| Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs | 4 SIDs | | | Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs | 4 SIDs | | |||
+=========+========+=======+========+========+========+ | +=========+========+=======+========+========+========+ | |||
| T1 | 49.8% | 47.9% | 2.1% | 0.1% | 0.0% | | | T1 | 49.8% | 47.9% | 2.1% | 0.1% | 0.0% | | |||
+---------+--------+-------+--------+--------+--------+ | +---------+--------+-------+--------+--------+--------+ | |||
| T2 | 36.5% | 59.6% | 3.6% | 0.2% | 0.0% | | | T2 | 36.5% | 59.6% | 3.6% | 0.2% | 0.0% | | |||
skipping to change at line 1160 ¶ | skipping to change at line 1156 ¶ | |||
+---------+--------+-------+--------+--------+--------+ | +---------+--------+-------+--------+--------+--------+ | |||
| T7 | 66.1% | 32.8% | 1.1% | 0.0% | 0.0% | | | T7 | 66.1% | 32.8% | 1.1% | 0.0% | 0.0% | | |||
+---------+--------+-------+--------+--------+--------+ | +---------+--------+-------+--------+--------+--------+ | |||
| T8 | 59.7% | 40.2% | 0.0% | 0.0% | 0.0% | | | T8 | 59.7% | 40.2% | 0.0% | 0.0% | 0.0% | | |||
+---------+--------+-------+--------+--------+--------+ | +---------+--------+-------+--------+--------+--------+ | |||
| T9 | 98.9% | 1.0% | 0.0% | 0.0% | 0.0% | | | T9 | 98.9% | 1.0% | 0.0% | 0.0% | 0.0% | | |||
+---------+--------+-------+--------+--------+--------+ | +---------+--------+-------+--------+--------+--------+ | |||
Table 6: Node Protection (Repair Size Distribution) | Table 6: Node Protection (Repair Size Distribution) | |||
+=========+========+========+========+========+========+ | +=========+========+=======+========+========+========+ | |||
| Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs | 4 SIDs | | | Network | 0 SIDs | 1 SID | 2 SIDs | 3 SIDs | 4 SIDs | | |||
+=========+========+========+========+========+========+ | +=========+========+=======+========+========+========+ | |||
| T1 | 49.7% | 97.6% | 99.8% | 99.9% | 100.0% | | | T1 | 49.7% | 97.6% | 99.8% | 99.9% | 100% | | |||
+---------+--------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+--------+ | |||
| T2 | 36.5% | 96.1% | 99.7% | 99.9% | 100.0% | | | T2 | 36.5% | 96.1% | 99.7% | 99.9% | 100% | | |||
+---------+--------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+--------+ | |||
| T3 | 73.3% | 98.9% | 99.9% | 100.0% | 100.0% | | | T3 | 73.3% | 98.9% | 99.9% | 100% | 100% | | |||
+---------+--------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+--------+ | |||
| T4 | 36.1% | 93.4% | 99.8% | 99.9% | 100.0% | | | T4 | 36.1% | 93.4% | 99.8% | 99.9% | 100% | | |||
+---------+--------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+--------+ | |||
| T5 | 73.2% | 100.0% | 100.0% | 100.0% | 100.0% | | | T5 | 73.2% | 100% | 100% | 100% | 100% | | |||
+---------+--------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+--------+ | |||
| T6 | 78.4% | 99.7% | 100.0% | 100.0% | 100.0% | | | T6 | 78.4% | 99.7% | 100% | 100% | 100% | | |||
+---------+--------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+--------+ | |||
| T7 | 66.1% | 98.9% | 100.0% | 100.0% | 100.0% | | | T7 | 66.1% | 98.9% | 100% | 100% | 100% | | |||
+---------+--------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+--------+ | |||
| T8 | 59.7% | 100.0% | 100.0% | 100.0% | 100.0% | | | T8 | 59.7% | 100% | 100% | 100% | 100% | | |||
+---------+--------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+--------+ | |||
| T9 | 98.9% | 100.0% | 100.0% | 100.0% | 100.0% | | | T9 | 98.9% | 100% | 100% | 100% | 100% | | |||
+---------+--------+--------+--------+--------+--------+ | +---------+--------+-------+--------+--------+--------+ | |||
Table 7: Node Protection (Repair Size Cumulative | Table 7: Node Protection (Repair Size Cumulative | |||
Distribution) | Distribution) | |||
Acknowledgments | Acknowledgments | |||
The authors would like to thank Les Ginsberg, Stewart Bryant, | The authors would like to thank Les Ginsberg, Stewart Bryant, | |||
Alexander Vainsthein, Chris Bowers, Shraddha Hedge, Wes Hardaker, | Alexander Vainsthein, Chris Bowers, Shraddha Hedge, Wes Hardaker, | |||
Gunter Van de Velde, and John Scudder for their valuable comments. | Gunter Van de Velde, and John Scudder for their valuable comments. | |||
Contributors | Contributors | |||
In addition to the authors listed on the front page, the following | In addition to the authors listed on the front page, the following | |||
End of changes. 12 change blocks. | ||||
92 lines changed or deleted | 88 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |