rfc9800v2.txt   rfc9800.txt 
skipping to change at line 431 skipping to change at line 431
When processing an IPv6 packet that matches a FIB entry locally When processing an IPv6 packet that matches a FIB entry locally
instantiated as an End SID with the NEXT-CSID flavor, the procedure instantiated as an End SID with the NEXT-CSID flavor, the procedure
described in Section 4.1 of [RFC8986] is executed with the following described in Section 4.1 of [RFC8986] is executed with the following
modifications. modifications.
The below pseudocode is inserted between lines S01 and S02 of the SRH The below pseudocode is inserted between lines S01 and S02 of the SRH
processing in Section 4.1 of [RFC8986]. In addition, this pseudocode processing in Section 4.1 of [RFC8986]. In addition, this pseudocode
is executed before processing the first header in the IPv6 extension is executed before processing the first header in the IPv6 extension
header chain that is not an SRH, a Hop-by-Hop header, or a header chain that is not an SRH, a Hop-by-Hop header, or a
Destination Options header. If the IPv6 extension header chain does Destination Options header. If the IPv6 extension header chain does
not include any header matching this criteria, this pseudocode is not include any header matching this criterion, this pseudocode is
executed before processing the upper-layer header. executed before processing the upper-layer header.
N01. If (DA.Argument != 0) { N01. If (DA.Argument != 0) {
N02. If (IPv6 Hop Limit <= 1) { N02. If (IPv6 Hop Limit <= 1) {
N03. Send an ICMP Time Exceeded message to the Source Address, N03. Send an ICMP Time Exceeded message to the Source Address,
Code 0 (Hop limit exceeded in transit), Code 0 (Hop limit exceeded in transit),
interrupt packet processing and discard the packet. interrupt packet processing and discard the packet.
N04. } N04. }
N05. Copy DA.Argument into the bits [LBL..(LBL+AL-1)] of the N05. Copy DA.Argument into the bits [LBL..(LBL+AL-1)] of the
Destination Address. Destination Address.
skipping to change at line 482 skipping to change at line 482
new destination via a member of J. new destination via a member of J.
| Note: the variable J is defined in Section 4.2 of [RFC8986]. | Note: the variable J is defined in Section 4.2 of [RFC8986].
The resulting pseudocode is inserted between lines S01 and S02 of the The resulting pseudocode is inserted between lines S01 and S02 of the
SRH processing in Section 4.1 of [RFC8986] after applying the SRH processing in Section 4.1 of [RFC8986] after applying the
modification described in Section 4.2 of [RFC8986]. In addition, modification described in Section 4.2 of [RFC8986]. In addition,
this pseudocode is executed before processing the first header in the this pseudocode is executed before processing the first header in the
IPv6 extension header chain that is not an SRH, a Hop-by-Hop header, IPv6 extension header chain that is not an SRH, a Hop-by-Hop header,
or a Destination Options header. If the IPv6 extension header chain or a Destination Options header. If the IPv6 extension header chain
does not include any header matching this criteria, this pseudocode does not include any header matching this criterion, this pseudocode
is executed before processing the upper-layer header. is executed before processing the upper-layer header.
A rendering of the complete pseudocode is provided in Appendix A.2. A rendering of the complete pseudocode is provided in Appendix A.2.
4.1.3. End.T with NEXT-CSID 4.1.3. End.T with NEXT-CSID
When processing an IPv6 packet that matches a FIB entry locally When processing an IPv6 packet that matches a FIB entry locally
instantiated as an End.T SID with the NEXT-CSID flavor, the procedure instantiated as an End.T SID with the NEXT-CSID flavor, the procedure
described in Section 4.3 of [RFC8986] is executed with the following described in Section 4.3 of [RFC8986] is executed with the following
modifications. modifications.
skipping to change at line 509 skipping to change at line 509
transmission to the new destination. transmission to the new destination.
| Note: the variable T is defined in Section 4.3 of [RFC8986]. | Note: the variable T is defined in Section 4.3 of [RFC8986].
The resulting pseudocode is inserted between lines S01 and S02 of the The resulting pseudocode is inserted between lines S01 and S02 of the
SRH processing in Section 4.1 of [RFC8986] after applying the SRH processing in Section 4.1 of [RFC8986] after applying the
modification described in Section 4.3 of [RFC8986]. In addition, modification described in Section 4.3 of [RFC8986]. In addition,
this pseudocode is executed before processing the first header in the this pseudocode is executed before processing the first header in the
IPv6 extension header chain that is not an SRH, a Hop-by-Hop header, IPv6 extension header chain that is not an SRH, a Hop-by-Hop header,
or a Destination Options header. If the IPv6 extension header chain or a Destination Options header. If the IPv6 extension header chain
does not include any header matching this criteria, this pseudocode does not include any header matching this criterion, this pseudocode
is executed before processing the upper-layer header. is executed before processing the upper-layer header.
A rendering of the complete pseudocode is provided in Appendix A.3. A rendering of the complete pseudocode is provided in Appendix A.3.
4.1.4. End.B6.Encaps with NEXT-CSID 4.1.4. End.B6.Encaps with NEXT-CSID
When processing an IPv6 packet that matches a FIB entry locally When processing an IPv6 packet that matches a FIB entry locally
instantiated as an End.B6.Encaps SID with the NEXT-CSID flavor, the instantiated as an End.B6.Encaps SID with the NEXT-CSID flavor, the
procedure described in Section 4.13 of [RFC8986] is executed with the procedure described in Section 4.13 of [RFC8986] is executed with the
following modifications. following modifications.
skipping to change at line 541 skipping to change at line 541
| Note: the variables A and B, as well as the values of the | Note: the variables A and B, as well as the values of the
| Payload Length, Traffic Class, Flow Label, Hop Limit, and Next | Payload Length, Traffic Class, Flow Label, Hop Limit, and Next
| Header are defined in Section 4.13 of [RFC8986]. | Header are defined in Section 4.13 of [RFC8986].
The resulting pseudocode is inserted between lines S01 and S02 of the The resulting pseudocode is inserted between lines S01 and S02 of the
SRH processing in Section 4.13 of [RFC8986]. In addition, this SRH processing in Section 4.13 of [RFC8986]. In addition, this
pseudocode is executed before processing the first header in the IPv6 pseudocode is executed before processing the first header in the IPv6
extension header chain that is not an SRH, a Hop-by-Hop header, or a extension header chain that is not an SRH, a Hop-by-Hop header, or a
Destination Options header. If the IPv6 extension header chain does Destination Options header. If the IPv6 extension header chain does
not include any header matching this criteria, this pseudocode is not include any header matching this criterion, this pseudocode is
executed before processing the upper-layer header. executed before processing the upper-layer header.
A rendering of the complete pseudocode is provided in Appendix A.4. A rendering of the complete pseudocode is provided in Appendix A.4.
Similar to the base End.B6.Encaps SID defined in Section 4.13 of Similar to the base End.B6.Encaps SID defined in Section 4.13 of
[RFC8986], the NEXT-CSID flavor variant updates the Destination [RFC8986], the NEXT-CSID flavor variant updates the Destination
Address field of the inner IPv6 header to the next SID in the Address field of the inner IPv6 header to the next SID in the
original segment list before encapsulating the packet with the original segment list before encapsulating the packet with the
segment list of SR Policy B. At the endpoint of SR Policy B, the segment list of SR Policy B. At the endpoint of SR Policy B, the
encapsulation is removed and the inner packet is forwarded towards encapsulation is removed and the inner packet is forwarded towards
skipping to change at line 584 skipping to change at line 584
N08.1. Push the MPLS label stack for B. N08.1. Push the MPLS label stack for B.
N08.2. Submit the packet to the MPLS engine for transmission. N08.2. Submit the packet to the MPLS engine for transmission.
| Note: the variable B is defined in Section 4.15 of [RFC8986]. | Note: the variable B is defined in Section 4.15 of [RFC8986].
The resulting pseudocode is inserted between lines S01 and S02 of the The resulting pseudocode is inserted between lines S01 and S02 of the
SRH processing in Section 4.15 of [RFC8986]. In addition, this SRH processing in Section 4.15 of [RFC8986]. In addition, this
pseudocode is executed before processing the first header in the IPv6 pseudocode is executed before processing the first header in the IPv6
extension header chain that is not an SRH, a Hop-by-Hop header, or a extension header chain that is not an SRH, a Hop-by-Hop header, or a
Destination Options header. If the IPv6 extension header chain does Destination Options header. If the IPv6 extension header chain does
not include any header matching this criteria, this pseudocode is not include any header matching this criterion, this pseudocode is
executed before processing the upper-layer header. executed before processing the upper-layer header.
A rendering of the complete pseudocode is provided in Appendix A.5. A rendering of the complete pseudocode is provided in Appendix A.5.
4.1.7. Combination with PSP, USP, and USD Flavors 4.1.7. Combination with PSP, USP, and USD Flavors
PSP: The PSP flavor defined in Section 4.16.1 of [RFC8986] is PSP: The PSP flavor defined in Section 4.16.1 of [RFC8986] is
unchanged when combined with the NEXT-CSID flavor. unchanged when combined with the NEXT-CSID flavor.
USP: The USP flavor defined in Section 4.16.2 of [RFC8986] is USP: The USP flavor defined in Section 4.16.2 of [RFC8986] is
skipping to change at line 1195 skipping to change at line 1195
This method walks the uncompressed SID list and compresses each This method walks the uncompressed SID list and compresses each
series of consecutive NEXT-CSID flavor SIDs and each series of series of consecutive NEXT-CSID flavor SIDs and each series of
consecutive REPLACE-CSID flavor SIDs. consecutive REPLACE-CSID flavor SIDs.
* When the compression method encounters a series of one or more * When the compression method encounters a series of one or more
consecutive compressible NEXT-CSID flavor SIDs, it compresses the consecutive compressible NEXT-CSID flavor SIDs, it compresses the
series as follows. A SID with the NEXT-CSID flavor is series as follows. A SID with the NEXT-CSID flavor is
compressible if its structure is known to the SR source node and compressible if its structure is known to the SR source node and
its Argument value is 0. its Argument value is 0.
S01. Initialize a NEXT-CSID container equal to the first SID in the S01. Initialize a NEXT-CSID container equal to the first SID in
series and initialize the remaining capacity of the CSID the series and initialize the remaining capacity of the
container to the AL of that SID CSID container to the AL of that SID
S02. For each subsequent SID in the series { S02. For each subsequent SID in the series {
S03. If the current SID Locator-Block matches that of the CSID S03. If the current SID Locator-Block matches that of the CSID
container and the current SID LNFL is lower than or equal to container and the current SID LNFL is lower than or equal
the remaining capacity of the NEXT-CSID container { to the remaining capacity of the NEXT-CSID container {
S04. Copy the current SID Locator-Node and Function to the most S04. Copy the current SID Locator-Node and Function to the
significant remaining Argument bits of the NEXT-CSID most significant remaining Argument bits of the
container and decrement the remaining capacity by LNFL NEXT-CSID container and decrement the remaining
capacity by LNFL
S05. } Else { S05. } Else {
S06. Push the NEXT-CSID container onto the compressed SID list S06. Push the NEXT-CSID container onto the compressed SID list
S07. Initialize a new NEXT-CSID container equal to the current S07. Initialize a new NEXT-CSID container equal to the current
SID in the series and initialize the remaining capacity SID in the series and initialize the remaining capacity
of the NEXT-CSID container to the AL of that SID of the NEXT-CSID container to the AL of that SID
S08. } // End If S08. } // End If
S09. } // End For S09. } // End For
S10. If at least one SID remains in the uncompressed SID list S10. If at least one SID remains in the uncompressed SID list
(following the series of compressible NEXT-CSID flavor SIDs){ (following the series of compressible NEXT-CSID flavor
SIDs) {
S11. Set S to the next SID in the uncompressed SID list S11. Set S to the next SID in the uncompressed SID list
S12. If S is advertised with a SID structure, and the Locator-Block S12. If S is advertised with a SID structure, and the
of S matches that of the NEXT-CSID container, and the sum of Locator-Block of S matches that of the NEXT-CSID
the Locator-Node, Function, and Argument length of S is container, and the sum of the Locator-Node, Function, and
lower than or equal to the remaining capacity of the CSID Argument length of S is lower than or equal to the
container { remaining capacity of the CSID container {
S13. Copy the Locator-Node, Function, and Argument of S to the S13. Copy the Locator-Node, Function, and Argument of S to the
most significant remaining Argument bits of the CSID most significant remaining Argument bits of the CSID
container container
S14. } // End If S14. } // End If
S15. } // End If S15. } // End If
S16. Push the NEXT-CSID container onto the compressed SID list S16. Push the NEXT-CSID container onto the compressed SID list
* When the compression method encounters a series of REPLACE-CSID * When the compression method encounters a series of REPLACE-CSID
flavor SIDs of the same CSID length in the uncompressed SID list, flavor SIDs of the same CSID length in the uncompressed SID list,
it compresses the series as per the following high-level it compresses the series as per the following high-level
pseudocode. A compression checking function ComCheck(F, S) is pseudocode. A compression checking function ComCheck(F, S) is
defined to check if two SIDs F and S share the same SID structure defined to check if two SIDs F and S share the same SID structure
and Locator-Block value, and if S has either no Argument or an and Locator-Block value, and if S has either no Argument or an
Argument with value 0. If the check passes, then ComCheck(F,S) Argument with value 0. If the check passes, then ComCheck(F,S)
returns true. returns true.
S01. Initialize a REPLACE-CSID container in full SID format equal to S01. Initialize a REPLACE-CSID container in full SID format equal
the first SID in the series to the first SID in the series
S02. Push the REPLACE-CSID container onto the compressed SID list S02. Push the REPLACE-CSID container onto the compressed SID list
S03. Initialize a new REPLACE-CSID container in packed format if S03. Initialize a new REPLACE-CSID container in packed format if
there are more than one SIDs and initialize the remaining there are more than one SIDs and initialize the remaining
capacity of the REPLACE-CSID container to 128 bits capacity of the REPLACE-CSID container to 128 bits
S04. For each subsequent SID in the uncompressed SID list { S04. For each subsequent SID in the uncompressed SID list {
S05. Set S to the current SID in the uncompressed SID list S05. Set S to the current SID in the uncompressed SID list
S06. If ComCheck(First SID, S) { S06. If ComCheck(First SID, S) {
S07. If the LNFL of S is lower than or equal to S07. If the LNFL of S is lower than or equal to
the remaining capacity of the REPLACE-CSID container { the remaining capacity of the REPLACE-CSID container {
S08. Copy the Locator-Node and Function of S to the least S08. Copy the Locator-Node and Function of S to the least
significant remaining bits of the REPLACE-CSID container significant remaining bits of the REPLACE-CSID
and decrement the remaining capacity by LNFL // Note container and decrement the remaining capacity by
LNFL // Note
S09. } Else { S09. } Else {
S10. Push the REPLACE-CSID container onto the compressed SID S10. Push the REPLACE-CSID container onto the compressed SID
list list
S11. Initialize a new REPLACE-CSID container in packed format S11. Initialize a new REPLACE-CSID container in packed
with all bits set to 0 format with all bits set to 0
S12. Copy the Locator-Node and Function of S to the least S12. Copy the Locator-Node and Function of S to the least
significant remaining bits of the REPLACE-CSID container significant remaining bits of the REPLACE-CSID
and decrement the remaining capacity by LNFL // Note container and decrement the remaining capacity by
LNFL // Note
S13. } S13. }
S14. If S is not a REPLACE-CSID flavor SID, then break S14. If S is not a REPLACE-CSID flavor SID, then break
S15. } Else { S15. } Else {
S16. Break S16. Break
S17. } // End If S17. } // End If
S18. } // End For S18. } // End For
S19. Push the REPLACE-CSID container (if it is not empty) onto the S19. Push the REPLACE-CSID container (if it is not empty) onto the
compressed SID list compressed SID list
| Note: When the last CSID is an End.DT2M SID with the REPLACE- | Note: When the last CSID is an End.DT2M SID with the REPLACE-
 End of changes. 13 change blocks. 
27 lines changed or deleted 31 lines changed or added

This html diff was produced by rfcdiff 1.48.