idnits 2.17.1 draft-ietf-pwe3-iccp-stp-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (March 9, 2015) is 3334 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: 'RFC5226' is defined on line 1105, but no explicit reference was found in the text -- Obsolete informational reference (is this intentional?): RFC 5226 (Obsoleted by RFC 8126) Summary: 0 errors (**), 0 flaws (~~), 2 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 INTERNET-DRAFT Mingui Zhang 3 Intended Status: Proposed Standard Huafeng Wen 4 Expires: September 10, 2015 Huawei 5 Jie Hu 6 China Telecom 7 March 9, 2015 9 STP Application of ICCP 10 draft-ietf-pwe3-iccp-stp-03.txt 12 Abstract 14 Inter-Chassis Communication Protocol (ICCP) supports the inter- 15 chassis redundancy mechanism which achieves high network 16 availability. 18 In this document, the PEs in a Redundant Group (RG) running ICCP are 19 used to offer multi-homed connectivity to Spanning Tree Protocol 20 (STP) networks. The ICCP TLVs for the STP application are defined, 21 therefore PEs from the RG can make use of these TLVs to synchronize 22 the state and configuration data of the STP network. The operation 23 logic of the application and the usage of these ICCP TLVs are 24 specified. 26 Status of this Memo 28 This Internet-Draft is submitted to IETF in full conformance with the 29 provisions of BCP 78 and BCP 79. 31 Internet-Drafts are working documents of the Internet Engineering 32 Task Force (IETF), its areas, and its working groups. Note that 33 other groups may also distribute working documents as 34 Internet-Drafts. 36 Internet-Drafts are draft documents valid for a maximum of six months 37 and may be updated, replaced, or obsoleted by other documents at any 38 time. It is inappropriate to use Internet-Drafts as reference 39 material or to cite them other than as "work in progress." 41 The list of current Internet-Drafts can be accessed at 42 http://www.ietf.org/1id-abstracts.html 44 The list of Internet-Draft Shadow Directories can be accessed at 45 http://www.ietf.org/shadow.html 47 Copyright and License Notice 48 Copyright (c) 2015 IETF Trust and the persons identified as the 49 document authors. All rights reserved. 51 This document is subject to BCP 78 and the IETF Trust's Legal 52 Provisions Relating to IETF Documents 53 (http://trustee.ietf.org/license-info) in effect on the date of 54 publication of this document. Please review these documents 55 carefully, as they describe your rights and restrictions with respect 56 to this document. Code Components extracted from this document must 57 include Simplified BSD License text as described in Section 4.e of 58 the Trust Legal Provisions and are provided without warranty as 59 described in the Simplified BSD License. 61 Table of Contents 63 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 64 1.1. Conventions used in this document . . . . . . . . . . . . . 4 65 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . 4 66 2. The Use Case Scenario . . . . . . . . . . . . . . . . . . . . . 4 67 2.1. STP as an Application of ICCP . . . . . . . . . . . . . . . 5 68 2.2. The BPDU Tunneling Model . . . . . . . . . . . . . . . . . 6 69 3. Spanning Tree Protocol Application TLVs . . . . . . . . . . . . 7 70 3.1. STP Connect TLV . . . . . . . . . . . . . . . . . . . . . . 7 71 3.2. STP Disconnect TLV . . . . . . . . . . . . . . . . . . . . 8 72 3.2.1. STP Disconnect Cause TLV . . . . . . . . . . . . . . . 9 73 3.3. STP Config TLVs . . . . . . . . . . . . . . . . . . . . . . 9 74 3.3.1. STP System Config . . . . . . . . . . . . . . . . . . . 10 75 3.3.2. STP Region Name . . . . . . . . . . . . . . . . . . . . 11 76 3.3.3. STP Revision Level . . . . . . . . . . . . . . . . . . 11 77 3.3.4. STP Instance Priority . . . . . . . . . . . . . . . . . 12 78 3.3.5. STP Configuration Digest . . . . . . . . . . . . . . . 13 79 3.4. STP State TLVs . . . . . . . . . . . . . . . . . . . . . . 13 80 3.4.1. STP Topology Changed Instances . . . . . . . . . . . . 13 81 3.4.2. STP CIST Root Time Parameters . . . . . . . . . . . . . 14 82 3.4.3. STP MSTI Root Time Parameter . . . . . . . . . . . . . 16 83 3.5. STP Synchronization Request TLV . . . . . . . . . . . . . . 17 84 3.6. STP Synchronization Data TLV . . . . . . . . . . . . . . . 18 85 4. Operations . . . . . . . . . . . . . . . . . . . . . . . . . . 19 86 4.1. Common AC Procedures . . . . . . . . . . . . . . . . . . . 19 87 4.1.1. Remote PE Node Failure or Isolation . . . . . . . . . . 19 88 4.1.2. Local PE Isolation . . . . . . . . . . . . . . . . . . 19 89 4.2. STP Application Procedures . . . . . . . . . . . . . . . . 20 90 4.2.1. Initial Setup . . . . . . . . . . . . . . . . . . . . . 20 91 4.2.2. Configuration Synchronization . . . . . . . . . . . . . 20 92 4.2.3. Status Synchronization . . . . . . . . . . . . . . . . 21 93 4.2.4. Failure and Recovery . . . . . . . . . . . . . . . . . 22 94 5. Security Considerations . . . . . . . . . . . . . . . . . . . . 23 95 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 23 96 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . 24 97 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 24 98 7.1. Normative References . . . . . . . . . . . . . . . . . . . 24 99 7.2. Informative References . . . . . . . . . . . . . . . . . . 24 100 Author's Addresses . . . . . . . . . . . . . . . . . . . . . . . . 25 102 1. Introduction 104 Inter-Chassis Communication Protocol (ICCP [RFC7275]) specifies a 105 multi-chassis redundant mechanism, which enables PEs located in 106 multi-chassis to act as a single Redundant Group (RG). 108 This document introduces Spanning Tree Protocol (STP) as a new 109 application of ICCP. When a bridge network running STP is connected 110 to an RG, the RG members pretend to be a single root bridge to 111 participate the operations of the STP. STP relevant information need 112 be exchanged and synchronized among the RG members. ICCP TLVs for the 113 STP application are specified for this purpose. 115 From the point of view of the customers, ISPs are still providing 116 Virtual Private LAN Service (VPLS). Familiarity with [RFC4762] is 117 assumed in this document. 119 1.1. Conventions used in this document 121 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 122 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 123 document are to be interpreted as described in RFC 2119 [RFC2119]. 125 1.2. Terminology 127 ICCP: Inter-Chassis Communication Protocol 128 VPLS: Virtual Private LAN Service 129 STP: Spanning Tree Protocol 130 MSTP: Multiple Spanning Tree Protocol 131 DSLAM: Digital Subscriber Line Access Multiplexer 132 MST: Multiple Spanning Trees 133 CIST: Common and Internal Spanning Tree ([802.1q] Section 3.4) 134 MSTI: Multiple Spanning Tree Instance ([802.1q] Section 3.22) 135 BPDU: Bridge Protocol Data Unit 137 In this document, unless otherwise explicitly noted, when the term 138 STP is used, it also covers MSTP. 140 2. The Use Case Scenario 142 In customers' broadband networks, bridged DSLAMs are usually 143 geographically dispersed. ISPs provides these customers with VPLS. 144 It's common that one customer broadband network has multiple DSLAMs 145 connected to a carrier's network at different locations for the sake 146 of reliability. Requirements from customers for this use case are 147 listed as follows. 149 o These DSLAMs are running STP. 151 o These DSLAMs are not geographically close to each other. Multiple 152 DSLAMs are connected to the carrier network at different 153 locations. 155 o When one connection to the carrier network fails, customers wish a 156 connection in another location can continue to work after the re- 157 convergence of the STP rather than compromising the whole STP 158 network. The failure of the connection may be due to the failure 159 of the PE, the AC or even the CE (a DSLAM) itself. 161 o Customers want to balance the load among those connections to the 162 carrier's network, therefore all those connections need be 163 active. 165 In order to meet these requirements, the 'ICCP-STP' model is proposed 166 in Section 2.1. It introduces STP as a new application of ICCP. In 167 Section 2.2, a counter-part solution based on the BPDU tunneling 168 technique is addressed as a contrast. Its issues are analyzed. 170 2.1. STP as an Application of ICCP 172 +--------------+ +=============+ 173 | | | | 174 | | | | 175 | +---+ | | +-----+|<--|--Pseudowire-->| 176 | +---+CE1+<6>-------<5>+ PE1 || | | 177 | <1> +---+ | | +-----+|<--|--Pseudowire-->| 178 | +-+-+ | | || | 179 | |CE3| | | ||ICCP |--> Towards Core 180 | +-+-+ | | || | 181 | <2> +---+ | | +-----+|<--|--Pseudowire-->| 182 | +---+CE2+<3>-------<4>+ PE2 || | | 183 | +---+ | | +-----+|<--|--Pseudowire-->| 184 | | | | 185 | Multi-homed | | Redundancy | 186 | STP Network | | Group | 187 +--------------+ +=============+ 189 Figure 2.1: A STP network is multi-homed to an RG running ICCP. 191 Figure 2.1 shows an example topology of this model. With ICCP, the 192 whole RG will be virtualized to be a single bridge. Each RG member 193 has its BridgeIdentifier (the MAC address). The least significant one 194 is used as the BridgeIdentifier of the 'virtualized root bridge'. The 195 RG pretends that the ports connected to the STP network (port <4>, 196 <5>) are from the same root bridge. All these ports emit the 197 configuration BPDU with the highest root priority to trigger the 198 construction of the spanning tree. The link between the peering PEs 199 is not visible to the STP network. In this way, the STP will always 200 break a loop within the multi-homed STP network. As if the whole 201 network is broken into separate islands that each is attached to one 202 PE. It forces all PEs in the RG to be active. This is different from 203 a generic VPLS per [RFC4762] where the root bridge resides in the 204 customer network and the multi-homed PEs usually act in the active- 205 standby mode. Note that the specification of VPLS should remain 206 unchanged other than this operation. For instance, a full-mesh of PWs 207 is established between PEs, split-horizon is still used to perform 208 the loop-free protection through the core, etc. 210 2.2. The BPDU Tunneling Model 212 +--------------+ +=============+ 213 | | | | 214 | | | | 215 | +---+ | | +-----+|<--|--Pseudowire-->| 216 | +---+CE1+<6>-------<5>+ PE1 || | | 217 | <1> +---+ | | +-----+|<--|--Pseudowire-->| 218 | +-+-+ | | ||BUDU | 219 | |CE3| | | PW||tunnel|--> Towards Core 220 | +-+-+ | | || | 221 | <2> +---+ | | +-----+|<--|--Pseudowire-->| 222 | +---+CE2+<3>-------<4>+ PE2 || | | 223 | +---+ | | +-----+|<--|--Pseudowire-->| 224 | | | | 225 | Multi-homed | | Redundancy | 226 | STP Network | | Group | 227 +--------------+ +=============+ 229 Figure 2.2: The BPDU Tunneling Model 231 Figure 2.2 shows an example network of the 'BPDU tunneling' model. 232 Two PEs tunnel customer traffic and BPDUs of the STP network over a 233 PW. The OAM designed in [RFC7023] can be adopted for the interworking 234 between MPLS and Ethernet. 236 In this model, the ports connected to the STP network at the PEs' 237 side are non-bridge ports (e.g., port <4>, <5>). The tunnel between 238 PE1 and PE2 is a transparent tunnel of BPDUs. For CE1 and CE2, they 239 regard that there is a direct link between them. Issues of this model 240 are listed as follows. 242 o Assume port <1> was blocked according to the STP calculation. Now, 243 suppose link CE3-CE2 fails, port <2> is blocked while port <1> is 244 unblocked. Since the BPDUs is just tunneled, PE2 is unaware of 245 this change. Consider the remote traffic from PEx to PE2 then to 246 CE3. PE2 continues to send traffic to CE3 via CE2 where a black- 247 hole happens. 249 In order to handle this issue, PEs need to snoop the Topology 250 Change (TC) message of the STP network so the tunnel is not 251 "transparent" to BPDUs anymore. When the TC event is sensed, these 252 PEs should withdraw MAC addresses of those instances affected by 253 the TC event across the carrier's network. 255 o When port <4> fails, CE1 is unaware. Suppose CE2 is the root 256 bridge, port <6> has to wait for 3 STP HELLO Intervals (3*2s) and 257 2 Forwarding Delays (2*15s). The STP network takes at least 36 258 seconds to complete the convergence. The convergence process of 259 the STP network is greatly slowed down. This actually changes the 260 behavior of customers' STP networks. 262 In order to speed up the convergence, CE1 has to sense the state 263 of the link between CE2 and PE2. The interworking PEs and CEs have 264 to cope with various combinations of failures. There is no 265 standard solution yet. 267 Compared with this 'BPDU tunneling' model, the advantage point of the 268 "ICCP-STP" model is that PEs "participate" in the STP calculation, 269 therefore we need not design the complex interworking mechanism. 271 3. Spanning Tree Protocol Application TLVs 273 This section specifies the ICCP TLVs for the STP application. 275 3.1. STP Connect TLV 277 This TLV is included in the RG Connect message to signal the 278 establishment of STP application connection. 280 0 1 2 3 281 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 282 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 283 |U|F| Type=TBD1 | Length | 284 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 285 | Protocol Version |A| Reserved | 286 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 287 | Optional Sub-TLVs | 288 ~ ~ 289 | | 290 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 291 | ... | 292 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 293 - U and F Bits 295 Both are set to 0. 297 - Type 299 set to TBD1 for "STP Connect TLV" 301 - Length 303 Length of the TLV in octets excluding the U-bit, F-bit, Type, 304 and Length fields. 306 - Protocol Version 308 The version of this particular protocol for the purposes of 309 ICCP. This is set to 0x0001. 311 - A bit 313 Acknowledgement Bit. Set to 1 if the sender has received a STP 314 Connect TLV from the recipient. Otherwise, set to 0. 316 - Reserved 318 Reserved for future use. These MUST be sent as zero and ignored 319 on receipt. 321 - Optional Sub-TLVs 323 There are no optional Sub-TLVs defined for this version of the 324 protocol. 326 3.2. STP Disconnect TLV 328 This TLV is used in an RG Disconnect Message to indicate that the 329 connection for the STP application is to be terminated. 331 0 1 2 3 332 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 333 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 334 |U|F| Type=TBD2 | Length | 335 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 336 | Optional Sub-TLVs | 337 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 339 - U and F Bits 340 Both are set to 0. 342 - Type 344 set to TBD2 for "STP Disconnect TLV" 346 - Length 348 Length of the TLV in octets excluding the U-bit, F-bit, Type, 349 and Length fields. 351 - Optional Sub-TLVs 353 The only optional Sub-TLV defined for this version of the 354 protocol is the "STP Disconnect Cause" TLV defined next: 356 3.2.1. STP Disconnect Cause TLV 358 0 1 2 3 359 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 360 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 361 |U|F| Type=TBD13 | Length | 362 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 363 | Disconnect Cause String | 364 ~ ~ 365 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 367 - U and F Bits 369 Both are set to 0. 371 - Type 373 set to TBD13 for "STP Disconnect Cause TLV" 375 - Length 377 Length of the TLV in octets excluding the U-bit, F-bit, Type, 378 and Length fields. 380 - Disconnect Cause String 382 Variable length string specifying the reason for the disconnect. 383 Used for network management. 385 3.3. STP Config TLVs 387 The STP Config TLVs are sent in the RG Application Data message. When 388 a STP Config TLV is received by a peering RG member, it MUST 389 synchronize the configuration information contained in the TLV. TLVs 390 specified from Section 3.3.1 through Section 3.3.5 contains such kind 391 of configuration information. 393 3.3.1. STP System Config 395 This TLV announces the local node's STP System Parameters to the RG 396 peers. 398 0 1 2 3 399 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 400 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 401 |U|F| Type=TBD3 | Length | 402 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 403 | ROID | 404 + + 405 | | 406 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 407 | MAC Address | 408 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 409 | | 410 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 412 - U and F Bits 414 Both are set to 0. 416 - Type 418 set to TBD3 for "STP System Config" 420 - Length 422 Length of the ROID plus the MAC address in octets. Set to 14. 424 -ROID 426 As defined in Section 6.1.3 of [RFC7275]. 428 - MAC Address 430 The MAC address of the sender. This MAC address is set to the 431 BridgeIdentifier of the sender, as defined in [802.1q] Section 432 13.23.2. The the least significant unsigned BridgeIdentifier is 433 used as the MAC address of the Virtual Root Bridge mentioned in 434 Section 2.1. 436 3.3.2. STP Region Name 438 This TLV is used to report the Value of Region Name to other members 439 in the RG. 441 0 1 2 3 442 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 443 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 444 |U|F| Type=TBD4 | Length | 445 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 446 | Region Name | 447 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 449 - U and F Bits 451 Both are set to 0. 453 - Type 455 set to TBD4 for "STP Region Name" 457 - Length 459 Length of the TLV in octets excluding the U-bit, F-bit, Type, 460 and Length fields. 462 - Region Name 464 The Name of the MST Region as specified in [802.1q] Section 465 3.18. 467 3.3.3. STP Revision Level 469 This TLV is used to report the Value of Revision Level to other 470 members in the RG. 472 0 1 2 3 473 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 474 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 475 |U|F| Type=TBD5 | Length | 476 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 477 | Revision Level | 478 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 480 - U and F Bits 482 Both are set to 0. 484 - Type 486 Set to TBD5 for "STP Revision Level". 488 - Length 490 Length of the TLV in octets excluding the U-bit, F-bit, Type, 491 and Length fields. Set to 2. 493 - Revision Level 495 The Revision Level as specified in [802.1q] Section 13.7 bullet 496 3); 498 3.3.4. STP Instance Priority 500 This TLV is used to report the Value of Instance Priority to other 501 members in the RG. 503 0 1 2 3 504 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 505 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 506 |U|F| Type=TBD6 | Length | 507 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 508 | Pri | InstanceID | 509 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 511 - U and F Bits 513 Both are set to 0. 515 - Type 517 set to TBD6 for "STP Instance Priority" 519 - Length 521 Length of the TLV in octets excluding the U-bit, F-bit, Type, 522 and Length fields. 524 - Pri 526 The Instance Priority. It is interpreted as an unsigned integer 527 and higher value indicates a higher priority. 529 - InstanceID 531 The 12 bits Instance IDentifier of the CIST or MSTI. This 532 parameter takes a value in the range 1 through 4094 for MSTI as 533 defined in [802.1q] Section 12.8.1.2.2 and takes value of 0 for 534 CIST. 536 3.3.5. STP Configuration Digest 538 This TLV is used to report the Value of STP VLAN Instance Mapping to 539 other members in the RG. 541 0 1 2 3 542 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 543 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 544 |U|F| Type=TBD7 | Length | 545 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 546 | Configuration Digest | 547 ~ ~ 548 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 550 - U and F Bits 552 Both are set to 0. 554 - Type 556 set to TBD7 for "STP Configuration Digest" 558 - Length 560 Length of the STP Configuration Digest which is 16 octets. 562 - Configuration Digest 564 As specified in [802.1q] Section 13.7 bullet 4). 566 3.4. STP State TLVs 568 The STP State TLVs are sent in the RG Application Data message. They 569 are used by a PE to report its STP status to other members in the RG. 570 Such TLVs are specified in the following subsections. 572 3.4.1. STP Topology Changed Instances 574 This TLV is used to report the Topology Changed Instances to other 575 members in the RG. The sender monitors TCN messages and generates 576 this list. The receiver RG member SHOULD enforce the Topology Change 577 event, including sending a BPDU with the Topology Change flag set to 578 1 out of the designated port(s) connected to the STP network, the 579 flushing out of MAC addresses relevant to the instances listed in 580 this TLV, etc. 582 If the PE supports the MAC Address Withdrawal (see Section 6.2 of 583 [RFC4762]), it SHOULD send an LDP Address Withdraw Message with the 584 list of MAC addresses to be removed to all remote peering PEs over 585 the corresponding LDP sessions. It's unnecessary to send such a 586 message to PEs in the same RG since the flushing of their MAC address 587 tables should have been performed upon the STP Topology Changed 588 Instances TLV is received. 590 0 1 2 3 591 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 592 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 593 |U|F| Type=TBD8 | Length | 594 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 595 | InstanceID List | 596 ~ ~ 597 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 599 - U and F Bits 601 Both are set to 0. 603 - Type 605 set to TBD8 for "STP Topology Changed Instances" 607 - Length 609 Length of the TLV in octets excluding the U-bit, F-bit, Type, 610 and Length fields. 612 - InstanceID List 614 The list of the InstanceIDs of CIST or MSTIs whose topologies 615 are changed as indicated by the Topology Change Notification 616 (TCN) Messages as specified in [802.1q] Section 13.14. The list 617 is formatted as follows, where the bits in the "rsvd" fields 618 MUST be sent as zero and ignored on receipt. 619 0 1 2 3 620 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 621 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 622 | rsvd | InstanceID#1 | rsvd | InstanceID#2 | 623 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 624 ~ ... ... ~ 625 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 627 3.4.2. STP CIST Root Time Parameters 628 This TLV is used to report the Value of CIST Root Time Parameters 629 ([802.1q] Section 13.23.7) to other members in the RG. All these time 630 parameter values are in seconds with a granularity of 1. For ranges 631 and default values of these parameter values, refer [802.1d1998] 632 Section 8.10.2 Table 8-3, [802.1d2004] Section 17.14 Table 17-1 and 633 [802.1q] Section 13.23.7. 635 0 1 2 3 636 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 637 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 638 |U|F| Type=TBD9 | Length | 639 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 640 | MaxAge | MessageAge | 641 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 642 | FwdDelay | HelloTime | 643 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 644 | RemainingHops | 645 +-+-+-+-+-+-+-+-+ 647 - U and F Bits 649 Both are set to 0. 651 - Type 653 set to TBD9 for "STP CIST Root Time" 655 - Length 657 Length of the TLV in octets excluding the U-bit, F-bit, Type, 658 and Length fields. Set to 9. 660 - MaxAge 662 The Max Age of the CIST. It is the maximum age of the 663 information transmitted by the Bridge when it is the Root Bridge 664 ([802.1d2004] Section 17.13.8). 666 - MessageAge 668 The Message Age of the CIST ([802.1q] Section 13.23.7) . 670 - FwdDelay 672 The Forward Delay of the CIST. It is the delay used by STP 673 Bridges to transition Root and Designated Ports to Forwarding 674 ([802.1d2004] Section 17.13.5). 676 - HelloTime 678 The Hello Time of the CIST. It is the interval between periodic 679 transmissions of Configuration Messages by Designated Ports 680 ([802.1d2004] Section 17.13.6). 682 - RemainingHops 684 The remainingHops of the CIST ([802.1q] Section 13.23.7) . 686 3.4.3. STP MSTI Root Time Parameter 688 This TLV is used to report the parameter value of MSTI Root Time to 689 other members in the RG. As defined in [802.1q] Section 13.23.7, it 690 is the value of remainingHops for the given MSTI. 692 0 1 2 3 693 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 694 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 695 |U|F| Type=TBD10 | Length | 696 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 697 | Pri | InstanceID | RemainingHops | 698 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 700 - U and F Bits 702 Both are set to 0. 704 - Type 706 set to TBD10 for "STP MSTI Root Time" 708 - Length 710 Length of the TLV in octets excluding the U-bit, F-bit, Type, 711 and Length fields. Set to 3. 713 - Pri 715 The Instance Priority. It is interpreted as an unsigned integer 716 and higher value indicates a higher priority. 718 - InstanceID 720 The 12 bits Instance IDentifier of the Multiple Spanning Tree 721 Instance (MSTID). As defined in [802.1q] Section 12.8.1.2.2, 722 this parameter takes a value in the range 1 through 4094. 724 - RemainingHops 726 The remainingHops of the MSTI. It is encoded in the same way as 727 in [802.1q] Section 14.6.1 bullet f). 729 3.5. STP Synchronization Request TLV 731 The STP Synchronization Request TLV is used in the RG Application 732 Data message. This TLV is used by a device to request from its peer 733 to re-transmit configuration or operational state. The following 734 information can be requested: 736 - system configuration and/or state 737 - configuration and/or state for a specific port 738 The format of the TLV is as follows: 740 0 1 2 3 741 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 742 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 743 |U|F| Type=TBD11 | Length | 744 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 745 | Request Number |C|S| Request Type | 746 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 748 - U and F Bits 750 Both are set to 0. 752 - Type 754 set to TBD11 for "STP Synchronization Request TLV" 756 - Length 758 Length of the TLV in octets excluding the U-bit, F-bit, Type, 759 and Length fields. Set to 4. 761 - Request Number 763 2 octets. Unsigned integer uniquely identifying the request. 764 Used to match the request with a response. The value of 0 is 765 reserved for unsolicited synchronization, and MUST NOT be used 766 in the STP Synchronization Request TLV. 768 - C-bit 770 Set to 1 if the request is for configuration data. Otherwise, 771 set to 0. 773 - S-bit 775 Set to 1 if the request is for running state data. Otherwise, 776 set to 0. 778 - Request Type 780 14-bits specifying the request type, encoded as follows: 782 0x00 Request Configuration Data 783 0x01 Request State Data 784 0x3FFF Request All Data 786 3.6. STP Synchronization Data TLV 788 The STP Synchronization Data TLV is used in the RG Application Data 789 message. A pair of these TLVs is used by a device to delimit a set of 790 TLVs that are being transmitted in response to an STP Synchronization 791 Request TLV. The delimiting TLVs signal the start and end of the 792 synchronization data, and associate the response with its 793 corresponding request via the 'Request Number' field. 795 The STP Synchronization Data TLVs are also used for unsolicited 796 advertisements of complete STP configuration and operational state 797 data. The 'Request Number' field MUST be set to 0 in this case. 799 This TLV has the following format: 801 0 1 2 3 802 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 803 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 804 |U|F| Type=TBD12 | Length | 805 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 806 | Request Number | Reserved |S| 807 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 809 - U and F Bits 811 Both are set to 0. 813 - Type 815 set to TBD12 for "STP Synchronization Data TLV" 817 - Length 819 Length of the TLV in octets excluding the U-bit, F-bit, Type, 820 and Length fields. Set to 4. 822 - Request Number 824 2 octets. Unsigned integer identifying the Request Number from 825 the "STP Synchronization Request TLV" which solicited this 826 synchronization data response. 828 - Reserved 830 Reserved bits for future use. These MUST be sent as zero and 831 ignored on receipt. 833 -S 835 S = 0: Synchronization Data Start 836 S = 1: Synchronization Data End 838 4. Operations 840 Operation procedures for AC redundancy applications have been 841 specified in Section 9.2 of [RFC7275]. As an AC redundancy 842 application, the operation procedures of the STP application should 843 follow most of these procedures except the changes presented in this 844 section. 846 4.1. Common AC Procedures 848 For the generic procedures of AC redundancy applications defined in 849 Section 9.2.1 of [RFC7275], the following changes are introduced. 851 4.1.1. Remote PE Node Failure or Isolation 853 When a PE node detects that a remote PE that is a member of the same 854 RG is no longer reachable (using the mechanisms described in Section 855 5 of [RFC7275]), the local PE determines if it has redundant ACs for 856 the affected services. If the local PE has the highest priority 857 (after the failed PE), then it becomes the virtual root bridge. 859 4.1.2. Local PE Isolation 861 When a PE node detects that it has been isolated from the core 862 network (i.e., all core-facing interfaces/links are not operational), 863 then it should ensure that its AC redundancy mechanism will change 864 the status of any active ACs to standby. The AC redundancy 865 application SHOULD then send ICCP "Application Data" messages in 866 order to trigger failover to another active PE in the RG. Note that 867 this works only in the case of dedicated interconnect (Sections 3.2.1 868 and 3.2.3), since ICCP will still have a path to the peer, even 869 though the PE is isolated from the MPLS core network. 871 4.2. STP Application Procedures 873 This section defines the procedures that are specific to the STP 874 application, which is applicable for Ethernet ACs. 876 4.2.1. Initial Setup 878 When an RG is configured on a system to support the STP application, 879 the system MUST send an "RG Connect" message with "STP Connect TLV" 880 to each PE that is member of the same RG. The sending PE MUST set the 881 A bit to 1 in the said TLV if it has received a corresponding "STP 882 Connect TLV" from its peer PE; otherwise, the sending PE MUST set the 883 A bit to 0. If a PE receives an "STP Connect TLV" from its peer after 884 sending the said TLV with the A bit set to 0, it MUST resend the TLV 885 with the A bit set to 1. A system considers the STP application 886 connection to be operational when it has sent and received "STP 887 Connect TLVs" with the A bit set to 1. When the STP application 888 connection between a pair of PEs is operational, the two devices can 889 start exchanging "RG Application Data" messages for the STP 890 application. This involves having each PE advertise its STP 891 configuration and operational state in an unsolicited manner. A PE 892 SHOULD subscribe to the following order when advertising its STP 893 state upon initial application connection setup: 895 - Advertise system configuration TLV 896 - Advertise remaining configuration TLVs 897 - Advertise state TLVs 899 A PE MUST use a pair of "STP Synchronization Data TLVs" to delimit 900 the entire set of TLVs that are being sent as part of this 901 unsolicited advertisement. 903 If a system receives an "RG Connect" message with "STP Connect TLV" 904 that has a differing Protocol Version, it MUST follow the procedures 905 outlined in the "Application Versioning" Section of [RFC7275]. 907 After the STP application connection has been established, every PE 908 MUST communicate its system level configuration to its peers via the 909 use of "STP System Config TLV". 911 When the STP application is disabled on the device, or is 912 unconfigured for the RG in question, the system MUST send an "RG 913 Disconnect" message with "STP Disconnect TLV". 915 4.2.2. Configuration Synchronization 917 A system that support the STP application MUST synchronize the 918 configuration with other RG members. This is achieved via the use of 919 "STP Config TLVs". The PEs in an RG MUST all agree on the MAC address 920 to be associated with the virtual root bridge. It is possible to 921 achieve this via consistent configuration on member PEs. However, in 922 order to protect against possible misconfiguration, a system MUST 923 use, for the virtual root bridge, the MAC address supplied by the PE 924 with the numerically least significant BridgeIdentifier (i.e., the 925 MAC address of the bridge) in the RG. 927 Furthermore, for a given STP application, an implementation MUST 928 advertise the configuration prior to advertising its state. If a PE 929 receives any STP State TLV that it had not learned of before via an 930 appropriate STP Config TLV, then the PE MUST request synchronization 931 of the configuration and state from its respective peer. If during a 932 synchronization, a PE receives a State TLV that it has not learned of 933 before, then the PE MUST send a NAK TLV for the offending TLV. The PE 934 MUST NOT request re-synchronization in this case. 936 4.2.3. Status Synchronization 938 PEs within an RG need to synchronize their state-machines for proper 939 STP operation. This is achieved by having each system advertise its 940 running state in STP State TLVs. Whenever any STP parameter, whether 941 on the CE or PE side, is changed a system MUST transmit an updated 942 TLV. Moreover, when the administrative or operational state changes, 943 the system MUST transmit an updated state TLV to its peers. 945 A PE MAY request that its peer retransmit previously advertised 946 state. This is useful for example when the PE is recovering from a 947 soft failure and attempting to relearn state. To request such 948 retransmissions, a PE MUST send a set of one or more "STP 949 Synchronization Request TLVs". 951 A PE MUST respond to a "STP Synchronization Request TLV" by sending 952 the requested data in a set of one or more STP configuration or state 953 TLVs delimited by a pair of "STP Synchronization Data TLVs". The TLVs 954 comprising the response MUST be ordered in the RG Application Data 955 message(s) such that the Synchronization Response TLV with the 956 "Synchronization Data Start" flag precedes the various other STP 957 configuration of state TLVs encoding the requested data. These, in 958 turn, MUST precede the Synchronization Data TLV with the 959 "Synchronization Data End" flag. 961 Note that the response may span across multiple RG Application Data 962 messages, for example when MTU limits are exceeded; however, the 963 above ordering MUST be retained across messages, and only a single 964 pair of Synchronization Data TLVs MUST be used to delimit the 965 response across all Application Data Messages. 967 A PE device MAY re-advertise its STP state in an unsolicited manner. 968 This is done by sending the appropriate Config and State TLVs 969 delimited by a pair of "STP Synchronization Data TLVs" and using a 970 'Request Number' of 0. 972 While a PE has a pending synchronization request for a system, it 973 SHOULD silently ignore all TLVs for said system, that are received 974 prior to the synchronization response and which carry the same type 975 of information being requested. This saves the system from the 976 burden of updating state that will ultimately be overwritten by the 977 synchronization response. Note that TLVs pertaining to other systems, 978 are to continue to be processed per normal in this case. 980 If a PE receives a synchronization request that doesn't exist or is 981 not known to the PE, then it MUST trigger an unsolicited 982 synchronization of all system information (i.e. replay the 983 initialization sequence). 985 If a PE learns, as part of a synchronization operation from its peer, 986 that the latter is advertising a Node ID value which is different 987 from the value previously advertised, then the PE MUST purge all 988 state data previously learnt from that peer prior to the last 989 synchronization. 991 4.2.4. Failure and Recovery 993 When a PE that is active for a STP application encounters a core 994 isolation fault [RFC7275], it SHOULD attempt to fail-over to a peer 995 PE which hosts the same RO. The default fail-over procedure is to 996 have the failed PE bring down the link(s) towards the multi-homed STP 997 network (e.g. by bringing down the line-protocol). This will cause 998 the STP network reconverges and uses the other links that are 999 connected to the other PE(s) in the RG. Other procedures for 1000 triggering fail-over are possible, and are outside the scope of this 1001 document. 1003 If the isolated PE is the one that has the lowest BridgeIdentifier, 1004 PEs in the RG MUST synchronize STP configuration and state TLVs and 1005 determine a new virtual root bridge as specified in Section 4.2.2 1006 (i.e., the PE with the least significant BridgeIdentifier will become 1007 the virtual root bridge.). 1009 Upon recovery from a previous fault, a PE MAY reclaim the role of the 1010 virtual root for the STP network if it has the lowest 1011 BridgeIdentifier among the RG. PEs in the RG MUST synchronize the STP 1012 configuration and state TLVs. 1014 Whenever the virtual root bridge changes, the STP Topology Changed 1015 Instances TLV lists the instances that are affected by the change. 1016 These instances MUST undergo a STP reconvergence procedure when this 1017 TLV is received as defined in Section 3.4.1. 1019 5. Security Considerations 1021 This document specifies an application running on the channel 1022 provided by ICCP [RFC7275]. The security considerations on ICCP apply 1023 in this document as well. For example, the application SHOULD only be 1024 used in well-managed and highly monitored networks. It ought not be 1025 deployed on or over the public Internet. 1027 For the STP application of ICCP, an attack on channel (running in the 1028 provider's network) can break not only the ability to deliver traffic 1029 across the provider's network, but the ability to route traffic 1030 within the customer's network. That is, careful attack on channel 1031 (such as the DOS attacks as described in [RFC7275]) can break STP 1032 within the customer network. Implementations SHOULD provide 1033 mechanisms mitigate these types of attacks. For example, the port 1034 between the PE and CE may be blocked when an attack is detect from 1035 this port. 1037 6. IANA Considerations 1039 The IANA maintains a top-level registry called "Pseudowire Name 1040 Spaces (PWE3)". It has a sub-registry called "ICC RG Parameter 1041 Types". 1043 IANA is requested to make 13 allocations from this registry as shown 1044 below. IANA is requested to allocate the codepoints in a sequential 1045 block starting from the next available value in the range marked for 1046 assignment by IETF review 0x2000-0x2FFF). All assignments should 1047 reference this document. 1049 Parameter Type Description 1050 -------------- --------------------------------- 1051 TBD1 STP Connect TLV 1052 TBD2 STP Disconnect TLV 1053 TBD3 STP System Config TLV 1054 TBD4 STP Region Name TLV 1055 TBD5 STP Revision Level TLV 1056 TBD6 STP Instance Priority TLV 1057 TBD7 STP Configuration Digest TLV 1058 TBD8 STP Topology Changed Instances TLV 1059 TBD9 STP STP CIST Root Time TLV 1060 TBD10 STP MSTI Root Time TLV 1061 TBD11 STP Synchronization Request TLV 1062 TBD12 STP Synchronization Data TLV 1063 TBD13 STP Disconnect Cause TLV 1065 Acknowledgements 1067 Authors would like to thank the comments and suggestions from Adrian 1068 Farrel, Gregory Mirsky and Alexander Vainshtein. 1070 7. References 1072 7.1. Normative References 1074 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1075 Requirement Levels", BCP 14, RFC 2119, March 1997. 1077 [RFC4762] Lasserre, M., Ed., and V. Kompella, Ed., "Virtual Private 1078 LAN Service (VPLS) Using Label Distribution Protocol (LDP) 1079 Signaling", RFC 4762, January 2007. 1081 [RFC7275] Martini, L., Salam, S., Sajassi, A., Bocci, M., Matsushima, 1082 S., and T. Nadeau, "Inter-Chassis Communication Protocol for 1083 Layer 2 Virtual Private Network (L2VPN) Provider Edge (PE) 1084 Redundancy", RFC 7275, June 2014. 1086 [802.1q] "IEEE Standard for Local and Metropolitan Area Networks--- 1087 Virtual Bridged Local Area Networks.". IEEE Std 802.1 Q-2005, 1088 May 19, 2006. 1090 [802.1d1998] "Information technology---Telecommunications and 1091 information exchange between systems---Local and metropolitan 1092 area networks---Common specifications--Part 3: Media Access 1093 Control (MAC) Bridges". ANSI/IEEE Std 802.1D, 1998 Edition. 1095 [802.1d2004] "IEEE Standard for Local and metropolitan area networks- 1096 -- Media Access Control (MAC) Bridges". IEEE Std 802.1 D-2004. 1098 7.2. Informative References 1100 [RFC7023] D. Mohan, Ed., N. Bitar, Ed., A. Sajassi, Ed., S. DeLord, 1101 P. Niger, R. Qiu., "MPLS and Ethernet Operations, 1102 Administration, and Maintenance (OAM) Interworking", RFC 7023, 1103 October 2013. 1105 [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an 1106 IANA Considerations Section in RFCs", BCP 26, RFC 5226, May 1107 2008. 1109 Author's Addresses 1111 Mingui Zhang 1112 Huawei Technologies 1113 No. 156 Beiqing Rd. Haidian District, 1114 Beijing 100095 1115 P.R. China 1117 EMail: zhangmingui@huawei.com 1119 Huafeng Wen 1120 Huawei Technologies 1121 101 Software Avenue, 1122 Nanjing 210012 1123 P.R. China 1125 EMail: wenhuafeng@huawei.com 1127 Jie Hu 1128 China Telecom 1130 EMail: hujie@ctbri.com.cn