RFC 6723
Update of the Pseudowire Control-Word Negotiation Mechanism
RFC 6723: Update of the Pseudowire Control-Word Negotiation Mechanism π
okay bestie, this one is a fix-it doc π§ and it's giving "we noticed a bug and patched it" energy π
- Series: Internet Engineering Task Force (IETF) πΈ
- Number: RFC 6723 π¦
- Editors and authors: L. Jin, Ed. (ZTE); R. Key, Ed. (Huawei); S. Delord (Alcatel-Lucent); T. Nadeau (Juniper); S. Boutros (Cisco Systems, Inc.) π
- Category: Standards Track β¨
- Date: September 2012 π
- Updates: RFC 4447 and RFC 6073 π§
- ISSN: 2070-1721 π
Abstract π
ngl the control-word negotiation in RFC 4447 has a glitch π when a PE (Provider Edge) switches its preference for using the control word from NOT PREFERRED to PREFERRED. this doc updates RFC 4447 and RFC 6073 by adding the Label Request message to fix that negotiation issue for both single-segment and multi-segment pseudowires π«Ά
Status of This Memo π
this is an Internet Standards Track document π₯
it's a product of the Internet Engineering Task Force (IETF), so it represents the consensus of the IETF community. it got public review and was approved for publication by the Internet Engineering Steering Group (IESG). more info on Internet Standards is in Section 2 of RFC 5741 π
if you want the current status, any errata, or a way to send feedback, check http://www.rfc-editor.org/info/rfc6723 π¦
Copyright Notice Β©οΈ
Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved. π
this document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as in effect on the date of publication. please read these carefully because they spell out your rights and restrictions for this doc π Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in the Simplified BSD License π
Table of Contents ποΈ
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Conventions Used in This Document . . . . . . . . . . . . . . . 3
3. Problem Statement . . . . . . . . . . . . . . . . . . . . . . . 3
4. Control-Word Renegotiation by Label Request Message . . . . . . 4
4.1. Control-Word Renegotiation for Multi-Segment PW . . . . . . 5
4.2. Control-Word Renegotiation Use Case . . . . . . . . . . . . 5
5. Backward Compatibility . . . . . . . . . . . . . . . . . . . . 6
6. Security Considerations . . . . . . . . . . . . . . . . . . . . 7
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 7
8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 7
9. Normative References . . . . . . . . . . . . . . . . . . . . . 7
Appendix A. Updated Diagram of C-Bit Handling Procedures . . . . . 8
1. Introduction β¨
okay so RFC 4447 has the control-word negotiation mechanism in its Section 6.2 [RFC4447], and it runs into trouble when a PE switches its preference for the control word from NOT PREFERRED to PREFERRED. RFC 4447 says that if both endpoints prefer the control word, the pseudowire control word should be used. but if a PE goes from NOT PREFERRED to PREFERRED and both ends of the PW (pseudowire) PEs have it set as PREFERRED, the negotiated result comes out as "not used", which is wrong π
this doc updates the negotiation in [RFC4447] by adding a Label Request message, which fixes the issue for single-segment PWs. multi-segment PWs in [RFC6073] inherit the RFC 4447 negotiation, so this doc also updates [RFC6073] by adding Label Request processing on the S-PE (Switching Provider Edge) π§ and when a PE goes from PREFERRED to NOT PREFERRED, it should follow [RFC4447], and there's no problem there π¦
2. Conventions Used in This Document π
the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] π
3. Problem Statement πΈ
[RFC4447], Section 6, describes the control-word negotiation mechanism. every PW endpoint has a configurable parameter that says whether the control word is PREFERRED or NOT PREFERRED. during control-word negotiation, if one PE advertises a C bit set to 0 in the Label Mapping message while its locally configured control word use is PREFERRED, and the corresponding peer PE switches its control word use from NOT PREFERRED to PREFERRED, the result is an incorrect negotiated control-word result of "not used" π
here's the negotiation problem step by step π
+-------+ +-------+
| | PW | |
| PE1 |====================| PE2 |
| | | |
+-------+ +-------+
Figure 1
- at the start, PE1 has its control word use set to PREFERRED, and PE2 has it set to NOT PREFERRED π
- the negotiation result for the control word of this PW is not used, and eventually PE1 sends the Label Mapping message with C bit set to 0, following [RFC4447], Section 6.2 π
- then PE2 switches its control-word use from NOT PREFERRED to PREFERRED. it does this by deleting the PW configuration that had NOT PREFERRED use of the control word, and then configuring the PW again with PREFERRED use of the control word π
- PE2 then sends the Label Withdraw message to PE1, and it gets the Label Release message back from PE1 π¦
- under the control-word negotiation mechanism, the Label Mapping message that PE2 got earlier from PE1 carries the C bit set to 0, so PE2 still sends the Label Mapping message with the C bit set to 0 π
so the negotiation result for the control word is still not used, even though both PE1 and PE2 have their control-word use configured as PREFERRED ππ
4. Control-Word Renegotiation by Label Request Message π
the control-word negotiation mechanism in [RFC4447], Section 6, is updated to add the Label Request message described in this section π
the renegotiation kicks off when the local PE has received the remote Label Mapping message with the C bit set to 0, and at that point its control word use changes from NOT PREFERRED to PREFERRED. then this extra procedure happens π
i. the local PE MUST send a Label Release message to the remote PE. if the local PE has previously sent a Label Mapping message, it MUST send a Label Withdraw message to the remote PE and wait until it has received a Label Release message from the remote PE. Note: the sending of the Label Release message and the Label Withdraw message does not require a specific sequence π«Ά
ii. the local PE MUST send a Label Request message to the peer PE, and then MUST wait until it receives a Label Mapping message that contains the peer's current configured preference for use of the control word π§
iii. after receiving the remote peer PE's Label Mapping message with the C bit, the local PE MUST follow the procedures defined in [RFC4447], Section 6, when it sends its Label Mapping message πΈ
the remote PE follows [RFC4447], and once it has successfully processed the Label Withdraw message and the Label Release message, it resets its control word use to its locally configured preference. then the remote PE sends a Label Mapping message with its locally configured preference for use of the control word, as a response to the Label Request message, as specified in [RFC5036] π¦
Note: for the local PE, the message exchange above should be finished before it processes any new request to change the configuration. the FEC (Forwarding Equivalence Class) element in the Label Request message should be the PE's local PW FEC element. as a response to the Label Request message, the peer PE should send a Label Mapping message with its own local PW FEC element. the Label Request message format and procedure are described in [RFC5036] π
4.1. Control-Word Renegotiation for Multi-Segment PW π
the multi-segment PW case for a T-PE (Terminating Provider Edge) works much like the PE in the single-segment PW described above π RFC 6073 defines an initial passive role for the S-PE when it processes the Label Mapping message [RFC6073]. this doc updates [RFC6073] by applying that passive role to the processing of the Label Request message too π§ when an S-PE gets a Label Request message from one of its adjacent PEs (which may be an S-PE or another T-PE), it MUST send a matching Label Request message to the other adjacent PE (again, that may be an S-PE or a T-PE). this is needed because an S-PE doesn't have complete information about the interface parameter field in the FEC advertisement π₯ when the S-PE receives a Label Release message from the remote PE, it MUST send a corresponding Label Release message to the other remote PE when it holds a label for the PW from the remote PE π«Ά
Note: because the local T-PE sends a Label Withdraw message before it sends a Label Request message to the remote peer, the S-PE MUST process the Label Withdraw message before the Label Request message. when the S-PE receives the Label Withdraw message, it should process it to send a Label Release message as a response, plus a Label Withdraw message to an upstream S-PE/T-PE. then the S-PE processes the next LDP message, e.g. the Label Request message π
when the local PE changes its control word use from PREFERRED to NOT PREFERRED, it renegotiates the control word so that it isn't used. it does this by deleting the PW configuration with PREFERRED use of the control word, and then configuring the PW again with NOT PREFERRED use of the control word. all of these procedures are defined in [RFC4447], Section 5.4.1 π
the diagram in Appendix A of this document updates the control-word negotiation diagram in [RFC4447] Appendix A π¦
4.2. Control-Word Renegotiation Use Case β¨
okay so here's how PE1 and PE2 handle the use case in Figure 1, step by step π
- PE2 changes locally configured preference for use of control word to PREFERRED.
- PE2 will then send the Release messages to PE1. PE2 will also send the Label Withdraw message, and wait until it has received the Label Release message from PE1.
- PE1 will send the Label Release message in response to the Label Withdraw message from PE2. After processing the Label Release from PE2, PE1 will then reset the use of control word to the locally configured preference as PREFERRED.
- Upon receipt of the Label Release message from PE1, PE2 will send the Label Request message to PE1, and proceed to wait until a Label Mapping message is received.
- PE1 will send a Label Mapping message with the C bit set to 1 again to PE2 in response to the Label Request message.
- PE2 receives the Label Mapping message from PE1 and gets the remote label binding information. PE2 will wait for the PE1 Label Mapping message before sending its Label Mapping message with the C bit set.
- PE2 will send the Label Mapping to PE1 with C bit set to 1, and follow procedures defined in [RFC4447], Section 6.
so PE1 is configured to prefer the control word, right? π«Ά but in step 5, if PE1 doesn't prefer or support it, PE1 would send the Label Mapping message with the C bit set to 0 instead. then in step 7, PE2 would send a Label Mapping message with the C bit set to 0 per [RFC4447], Section 6. π
by sending a Label Request message, PE2 gets the locally configured preference for use of control word of peer PE1 from the received Label Mapping message. then PE2 combines the new C bit from that Label Mapping message with its own locally configured preference, and should determine the use of PW control word according to [RFC4447], Section 6. the whole thing is giving handshake energy π€β¨
5. Backward Compatibility π¦
this is the part where we make sure nobody gets left on read π since control-word negotiation is updated by adding the Label Request message, and still follows the basic procedure described in [RFC4447], Section 6, this document is fully compatible with existing implementations. π
for a single-segment pseudowire, the remote PE (PE1 in Figure 1) which already implements [RFC4447], and the Label Request message as defined in [RFC5036] could be compatible with the PE (PE2 in Figure 1) following the mechanism of this document. for a multi-segment pseudowire, the T-PE is the same as PE in single-segment pseudowire, and the S-PE should be upgraded with the mechanism defined in this document. πΈ
6. Security Considerations π
okay bestie, switching to serious mode for a sec π the security considerations specified in [RFC4447] and [RFC6073] also apply to this document, and this document does not introduce any additional security constraints. so the rules from those two RFCs still hold, and nothing new gets added here. π₯
7. Acknowledgements π«Ά
big thank-yous to Stewart Bryant, Andrew Malis, Nick Del Regno, Luca Martini, Venkatesan Mahalingam, Alexander Vainshtein, Adrian Farrel, and Spike Curtis for their discussion and comments. you all are literally the reason this doc slaps π
8. Contributors π
the contributors and their contact details are below, copied exactly as written:
Vishwas Manral
Hewlett-Packard Co.
19111 Pruneridge Ave., Bldg. 44
Cupertino, CA 95014-0691
US
EMail: vishwas.manral@hp.com
Reshad Rahman
Cisco Systems, Inc.
2000 Innovation Drive
Ottawa, Ontario K2K 3E8
CANADA
EMail: rrahman@cisco.com
9. Normative References π
these are the references this doc needs, all listed in full:
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC4447] Martini, L., Rosen, E., El-Aawar, N., Smith, T., and G.
Heron, "Pseudowire Setup and Maintenance Using the Label
Distribution Protocol (LDP)", RFC 4447, April 2006.
[RFC5036] Andersson, L., Minei, I., and B. Thomas, "LDP
Specification", RFC 5036, October 2007.
[RFC6073] Martini, L., Metz, C., Nadeau, T., Bocci, M., and M.
Aissaoui, "Segmented Pseudowire", RFC 6073, January 2011.
Appendix A. Updated Diagram of C-Bit Handling Procedures π§
this flowchart is the whole C-bit decision tree in one place, so screenshot it bestie πΈ
-----------------------------------
| |
| ------------------
| Y | Received Label | N
| -------| Mapping msg? |--------------
| | ------------------ |
| -------------- |
| | | |
| ------- ------- |
| | C=0 | | C=1 | |
| ------- ------- |
| | | |
| | ---------------- |
| | | Control Word | N |
| | | Capable? |----------- |
| | ---------------- | |
| | Y | | |
| | | | |
| | ---------------- | |
| | | Control Word | N | |
| | | Preferred? |---- | |
| | ---------------- | | |
| | Y | | | |
| --------------------- | | | |
| |Control Word change| | | | ----------------
| |from NOT PREFERRED | | | | | Control Word |
| | to PREFERRED? | | | | | Preferred? |
| --------------------- | | | ----------------
| Y | | N | | | N | Y |
| | Delete, and | | | | |
| | configure Send Send Send Send Send
| | new PW again C=1 C=0 C=0 C=0 C=1
| | | | | |
| ---------------------------- ----------------------------------
| |Send Label Release msg, | | If receive the same as sent, |
| |send Label Withdraw msg if| | PW setup is complete. If not: |
| |has sent Label Mapping msg| ----------------------------------
| ---------------------------- | | | |
| | ------------------- -----------
| ------------------- | Receive | | Receive |
| | Receive Label | | C=1 | | C=0 |
| | Release message | ------------------- -----------
| ------------------- | |
| | Wait for the Send
| ------------------- next message Wrong C-bit
| | Send Label | |
| | Request message | Send Label
| ------------------- Mapping message
| |
-------------
Authors' Addresses π
here are the authors' details, exactly as written:
Lizhong Jin (editor)
ZTE Corporation
889, Bibo Road
Shanghai, 201203, China
EMail: lizhong.jin@zte.com.cn
Raymond Key (editor)
Huawei
EMail: raymond.key@ieee.org
Simon Delord
Alcatel-Lucent
EMail: simon.delord@gmail.com
Thomas Nadeau
Juniper
EMail: tnadeau@juniper.net
Sami Boutros
Cisco Systems, Inc.
3750 Cisco Way
San Jose, California 95134, USA
EMail: sboutros@cisco.com
π¦ where this page comes from
- ietf: rfc6723 2012-09
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms