summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc7275.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc7275.txt')
-rw-r--r--doc/rfc/rfc7275.txt4651
1 files changed, 4651 insertions, 0 deletions
diff --git a/doc/rfc/rfc7275.txt b/doc/rfc/rfc7275.txt
new file mode 100644
index 0000000..a960afa
--- /dev/null
+++ b/doc/rfc/rfc7275.txt
@@ -0,0 +1,4651 @@
+
+
+
+
+
+
+Internet Engineering Task Force (IETF) L. Martini
+Request for Comments: 7275 S. Salam
+Category: Standards Track A. Sajassi
+ISSN: 2070-1721 Cisco
+ M. Bocci
+ Alcatel-Lucent
+ S. Matsushima
+ Softbank Telecom
+ T. Nadeau
+ Brocade
+ June 2014
+
+
+ Inter-Chassis Communication Protocol for
+ Layer 2 Virtual Private Network (L2VPN) Provider Edge (PE) Redundancy
+
+Abstract
+
+ This document specifies an Inter-Chassis Communication Protocol
+ (ICCP) that enables Provider Edge (PE) device redundancy for Virtual
+ Private Wire Service (VPWS) and Virtual Private LAN Service (VPLS)
+ applications. The protocol runs within a set of two or more PEs,
+ forming a Redundancy Group, for the purpose of synchronizing data
+ among the systems. It accommodates multi-chassis attachment circuit
+ redundancy mechanisms as well as pseudowire redundancy mechanisms.
+
+Status of This Memo
+
+ This is an Internet Standards Track document.
+
+ This document is a product of the Internet Engineering Task Force
+ (IETF). It represents the consensus of the IETF community. It has
+ received public review and has been approved for publication by the
+ Internet Engineering Steering Group (IESG). Further information on
+ Internet Standards is available in Section 2 of RFC 5741.
+
+ Information about the current status of this document, any errata,
+ and how to provide feedback on it may be obtained at
+ http://www.rfc-editor.org/info/rfc7275.
+
+
+
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 1]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+Copyright Notice
+
+ Copyright (c) 2014 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) in effect on the date of
+ publication of this document. Please review these documents
+ carefully, as they describe your rights and restrictions with respect
+ to this document. Code Components extracted from this document must
+ include Simplified BSD License text as described in Section 4.e of
+ the Trust Legal Provisions and are provided without warranty as
+ described in the Simplified BSD License.
+
+ This document may contain material from IETF Documents or IETF
+ Contributions published or made publicly available before November
+ 10, 2008. The person(s) controlling the copyright in some of this
+ material may not have granted the IETF Trust the right to allow
+ modifications of such material outside the IETF Standards Process.
+ Without obtaining an adequate license from the person(s) controlling
+ the copyright in such materials, this document may not be modified
+ outside the IETF Standards Process, and derivative works of it may
+ not be created outside the IETF Standards Process, except to format
+ it for publication as an RFC or to translate it into languages other
+ than English.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 2]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+Table of Contents
+
+ 1. Introduction ....................................................5
+ 2. Specification of Requirements ...................................5
+ 3. ICCP Overview ...................................................5
+ 3.1. Redundancy Model and Topology ..............................5
+ 3.2. ICCP Interconnect Scenarios ................................7
+ 3.2.1. Co-located Dedicated Interconnect ...................7
+ 3.2.2. Co-located Shared Interconnect ......................8
+ 3.2.3. Geo-redundant Dedicated Interconnect ................8
+ 3.2.4. Geo-redundant Shared Interconnect ...................9
+ 3.3. ICCP Requirements .........................................10
+ 4. ICC LDP Protocol Extension Specification .......................11
+ 4.1. LDP ICCP Capability Advertisement .........................12
+ 4.2. RG Membership Management ..................................12
+ 4.2.1. ICCP Connection State Machine ......................13
+ 4.3. Redundant Object Identification ...........................17
+ 4.4. Application Connection Management .........................17
+ 4.4.1. Application Versioning .............................18
+ 4.4.2. Application Connection State Machine ...............19
+ 4.5. Application Data Transfer .................................22
+ 4.6. Dedicated Redundancy Group LDP Session ....................22
+ 5. ICCP PE Node Failure / Isolation Detection Mechanism ...........22
+ 6. ICCP Message Formats ...........................................23
+ 6.1. Encoding ICC into LDP Messages ............................23
+ 6.1.1. ICC Header .........................................24
+ 6.1.2. ICC Parameter Encoding .............................26
+ 6.1.3. Redundant Object Identifier Encoding ...............27
+ 6.2. RG Connect Message ........................................27
+ 6.2.1. ICC Sender Name TLV ................................28
+ 6.3. RG Disconnect Message .....................................29
+ 6.4. RG Notification Message ...................................31
+ 6.4.1. Notification Message TLVs ..........................32
+ 6.5. RG Application Data Message ...............................35
+ 7. Application TLVs ...............................................35
+ 7.1. Pseudowire Redundancy (PW-RED) Application TLVs ...........35
+ 7.1.1. PW-RED Connect TLV .................................36
+ 7.1.2. PW-RED Disconnect TLV ..............................37
+ 7.1.2.1. PW-RED Disconnect Cause TLV ...............38
+ 7.1.3. PW-RED Config TLV ..................................39
+ 7.1.3.1. Service Name TLV ..........................41
+ 7.1.3.2. PW ID TLV .................................42
+ 7.1.3.3. Generalized PW ID TLV .....................43
+ 7.1.4. PW-RED State TLV ...................................44
+ 7.1.5. PW-RED Synchronization Request TLV .................45
+ 7.1.6. PW-RED Synchronization Data TLV ....................46
+
+
+
+
+
+Martini, et al. Standards Track [Page 3]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ 7.2. Multi-Chassis LACP (mLACP) Application TLVs ...............48
+ 7.2.1. mLACP Connect TLV ..................................48
+ 7.2.2. mLACP Disconnect TLV ...............................49
+ 7.2.2.1. mLACP Disconnect Cause TLV ................50
+ 7.2.3. mLACP System Config TLV ............................51
+ 7.2.4. mLACP Aggregator Config TLV ........................52
+ 7.2.5. mLACP Port Config TLV ..............................54
+ 7.2.6. mLACP Port Priority TLV ............................56
+ 7.2.7. mLACP Port State TLV ...............................58
+ 7.2.8. mLACP Aggregator State TLV .........................60
+ 7.2.9. mLACP Synchronization Request TLV ..................61
+ 7.2.10. mLACP Synchronization Data TLV ....................63
+ 8. LDP Capability Negotiation .....................................65
+ 9. Client Applications ............................................66
+ 9.1. Pseudowire Redundancy Application Procedures ..............66
+ 9.1.1. Initial Setup ......................................66
+ 9.1.2. Pseudowire Configuration Synchronization ...........66
+ 9.1.3. Pseudowire Status Synchronization ..................67
+ 9.1.3.1. Independent Mode ..........................69
+ 9.1.3.2. Master/Slave Mode .........................69
+ 9.1.4. PE Node Failure or Isolation .......................70
+ 9.2. Attachment Circuit Redundancy Application Procedures ......70
+ 9.2.1. Common AC Procedures ...............................70
+ 9.2.1.1. AC Failure ................................70
+ 9.2.1.2. Remote PE Node Failure or Isolation .......70
+ 9.2.1.3. Local PE Isolation ........................71
+ 9.2.1.4. Determining Pseudowire State ..............71
+ 9.2.2. Multi-Chassis LACP (mLACP) Application Procedures ..72
+ 9.2.2.1. Initial Setup .............................72
+ 9.2.2.2. mLACP Aggregator and Port Configuration ...74
+ 9.2.2.3. mLACP Aggregator and Port Status
+ Synchronization ...........................75
+ 9.2.2.4. Failure and Recovery ......................77
+ 10. Security Considerations .......................................78
+ 11. Manageability Considerations ..................................79
+ 12. IANA Considerations ...........................................79
+ 12.1. Message Type Name Space ..................................79
+ 12.2. TLV Type Name Space ......................................79
+ 12.3. ICC RG Parameter Type Space ..............................80
+ 12.4. Status Code Name Space ...................................81
+ 13. Acknowledgments ...............................................81
+ 14. References ....................................................81
+ 14.1. Normative References .....................................81
+ 14.2. Informative References ...................................82
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 4]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+1. Introduction
+
+ Network availability is a critical metric for service providers, as
+ it has a direct bearing on their profitability. Outages translate
+ not only to lost revenue but also to potential penalties mandated by
+ contractual agreements with customers running mission-critical
+ applications that require tight Service Level Agreements (SLAs).
+ This is true for any carrier network, and networks employing Layer 2
+ Virtual Private Network (L2VPN) technology are no exception. A high
+ degree of network availability can be achieved by employing intra-
+ and inter-chassis redundancy mechanisms. The focus of this document
+ is on the latter. This document defines an Inter-Chassis
+ Communication Protocol (ICCP) that allows synchronization of state
+ and configuration data between a set of two or more Provider Edge
+ nodes (PEs) forming a Redundancy Group (RG). The protocol supports
+ multi-chassis redundancy mechanisms that can be employed on either
+ the attachment circuits or pseudowires (PWs). A formal definition of
+ the term "chassis" can be found in [RFC2922]. For the purpose of
+ this document, a chassis is an L2VPN PE node.
+
+ This document assumes that it is normal to run the Label Distribution
+ Protocol (LDP) between the PEs in the RG, and that LDP components
+ will in any case be present on the PEs to establish and maintain
+ pseudowires. Therefore, ICCP is built as a secondary protocol
+ running within LDP and taking advantage of the LDP session mechanisms
+ as well as the underlying TCP transport mechanisms and TCP-based
+ security mechanisms already necessary for LDP operation.
+
+2. Specification of Requirements
+
+ 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 RFC 2119 [RFC2119].
+
+3. ICCP Overview
+
+3.1. Redundancy Model and Topology
+
+ The focus of this document is on PE node redundancy. It is assumed
+ that a set of two or more PE nodes are designated by the operator to
+ form an RG. Members of an RG fall under a single administration
+ (e.g., service provider) and employ a common redundancy mechanism
+ towards the access (attachment circuits or access pseudowires) and/or
+ towards the core (pseudowires) for any given service instance. It is
+ possible, however, for members of an RG to make use of disparate
+ redundancy mechanisms for disjoint services. The PE devices may be
+ offering any type of L2VPN service, i.e., Virtual Private Wire
+ Service (VPWS) or Virtual Private LAN Service (VPLS). As a matter of
+
+
+
+Martini, et al. Standards Track [Page 5]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ fact, the use of ICCP may even be applicable for Layer 3 service
+ redundancy, but this is considered to be outside the scope of this
+ document.
+
+ The PEs in an RG offer multi-homed connectivity to either individual
+ devices (e.g., Customer Edge (CE), Digital Subscriber Line Access
+ Multiplexer (DSLAM)) or entire networks (e.g., access network).
+ Figure 1 below depicts the model.
+
+ +=================+
+ | |
+ Multi-homed +----+ | +-----+ |
+ Node ------------> | CE |-------|--| PE1 ||<------|---Pseudowire-->|
+ | |--+ -|--| ||<------|---Pseudowire-->|
+ +----+ | / | +-----+ |
+ | / | || |
+ |/ | || ICCP |--> Towards Core
+ +-------------+ / | || |
+ | | /| | +-----+ |
+ | Access |/ +----|--| PE2 ||<------|---Pseudowire-->|
+ | Network |-------|--| ||<------|---Pseudowire-->|
+ | | | +-----+ |
+ | | | |
+ +-------------+ | Redundancy |
+ ^ | Group |
+ | +=================+
+ |
+ Multi-homed Network
+
+ Figure 1: Generic Multi-Chassis Redundancy Model
+
+ In the topology shown in Figure 1, the redundancy mechanism employed
+ towards the access node/network can be one of a multitude of
+ technologies, e.g., it could be IEEE 802.1AX Link Aggregation Groups
+ with the Link Aggregation Control Protocol (LACP) or Synchronous
+ Optical Network Automatic Protection Switching (SONET APS). The
+ specifics of the mechanism are outside the scope of this document.
+ However, it is assumed that the PEs in the RG are required to
+ communicate with each other in order for the access redundancy
+ mechanism to operate correctly. As such, it is required that an
+ inter-chassis communication protocol among the PEs in the RG be run
+ in order to synchronize configuration and/or running state data.
+
+ Furthermore, the presence of the inter-chassis communication channel
+ allows simplification of the pseudowire redundancy mechanism. This
+ is primarily because it allows the PEs within an RG to run some
+ arbitration algorithm to elect which pseudowire(s) should be in
+ active or standby mode for a given service instance. The PEs can
+
+
+
+Martini, et al. Standards Track [Page 6]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ then advertise the outcome of the arbitration to the remote-end
+ PE(s), as opposed to having to embed a handshake procedure into the
+ pseudowire redundancy status communication mechanism as well as every
+ other possible Layer 2 status communication mechanism.
+
+3.2. ICCP Interconnect Scenarios
+
+ When referring to "interconnect" in this section, we are concerned
+ with the links or networks over which Inter-Chassis Communication
+ Protocol messages are transported, and not normal data traffic
+ between PEs. The PEs that are members of an RG may be either
+ physically co-located or geo-redundant. Furthermore, the physical
+ interconnect between the PEs over which ICCP is to run may comprise
+ either dedicated back-to-back links or a shared connection through
+ the packet switched network (PSN), e.g., MPLS core network. This
+ gives rise to a matrix of four interconnect scenarios, as described
+ in the following subsections.
+
+3.2.1. Co-located Dedicated Interconnect
+
+ In this scenario, the PEs within an RG are co-located in the same
+ physical location, e.g., point of presence (POP) or central office
+ (CO). Furthermore, dedicated links provide the interconnect for ICCP
+ among the PEs.
+
+ +=================+ +-----------------+
+ |CO | | |
+ | +-----+ | | |
+ | | PE1 |________|_____| |
+ | | | | | |
+ | +-----+ | | |
+ | || | | |
+ | || ICCP | | Core |
+ | || | | Network |
+ | +-----+ | | |
+ | | PE2 |________|_____| |
+ | | | | | |
+ | +-----+ | | |
+ | | | |
+ +=================+ +-----------------+
+
+ Figure 2: ICCP Co-located PEs Dedicated Interconnect Scenario
+
+ Given that the PEs are connected back-to-back in this case, it is
+ possible to rely on Layer 2 redundancy mechanisms to guarantee the
+ robustness of the ICCP interconnect. For example, if the
+
+
+
+
+
+Martini, et al. Standards Track [Page 7]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ interconnect comprises IEEE 802.3 Ethernet links, it is possible to
+ provide link redundancy by means of IEEE 802.1AX Link Aggregation
+ Groups.
+
+3.2.2. Co-located Shared Interconnect
+
+ In this scenario, the PEs within an RG are co-located in the same
+ physical location (POP, CO). However, unlike the previous scenario,
+ there are no dedicated links between the PEs. The interconnect for
+ ICCP is provided through the core network to which the PEs are
+ connected. Figure 3 depicts this model.
+
+ +=================+ +-----------------+
+ |CO | | |
+ | +-----+ | | |
+ | | PE1 |________|_____| |
+ | | |<=================+ |
+ | +-----+ ICCP | | || |
+ | | | || |
+ | | | || Core |
+ | | | || Network |
+ | +-----+ | | || |
+ | | PE2 |________|_____| || |
+ | | |<=================+ |
+ | +-----+ | | |
+ | | | |
+ +=================+ +-----------------+
+
+ Figure 3: ICCP Co-located PEs Shared Interconnect Scenario
+
+ Given that the PEs in the RG are connected over the PSN, PSN Layer
+ mechanisms can be leveraged to ensure the resiliency of the
+ interconnect against connectivity failures. For example, it is
+ possible to employ RSVP Label Switched Paths (LSPs) with Fast Reroute
+ (FRR) and/or end-to-end backup LSPs.
+
+3.2.3. Geo-redundant Dedicated Interconnect
+
+ In this variation, the PEs within an RG are located in different
+ physical locations to provide geographic redundancy. This may be
+ desirable, for example, to protect against natural disasters or the
+ like. A dedicated interconnect is provided to link the PEs. This is
+ a costly option, especially when considering the possibility of
+ providing multiple such links for interconnect robustness. The
+ resiliency mechanisms for the interconnect are similar to those
+ highlighted in the co-located interconnect counterpart.
+
+
+
+
+
+Martini, et al. Standards Track [Page 8]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ +=================+ +-----------------+
+ |CO 1 | | |
+ | +-----+ | | |
+ | | PE1 |________|_____| |
+ | | | | | |
+ | +-----+ | | |
+ +=====||==========+ | |
+ || ICCP | Core |
+ +=====||==========+ | Network |
+ | +-----+ | | |
+ | | PE2 |________|_____| |
+ | | | | | |
+ | +-----+ | | |
+ |CO 2 | | |
+ +=================+ +-----------------+
+
+ Figure 4: ICCP Geo-redundant PEs Dedicated Interconnect Scenario
+
+3.2.4. Geo-redundant Shared Interconnect
+
+ In this scenario, the PEs of an RG are located in different physical
+ locations and the interconnect for ICCP is provided over the PSN
+ network to which the PEs are connected. This interconnect option is
+ more likely to be the one used for geo-redundancy, as it is more
+ economically appealing compared to the geo-redundant dedicated
+ interconnect option. The resiliency mechanisms that can be employed
+ to guarantee the robustness of the ICCP transport are PSN Layer
+ mechanisms, as described in Section 3.2.2 above.
+
+ +=================+ +-----------------+
+ |CO 1 | | |
+ | +-----+ | | |
+ | | PE1 |________|_____| |
+ | | |<=================+ |
+ | +-----+ ICCP | | || |
+ +=================+ | || |
+ | || Core |
+ +=================+ | || Network |
+ | +-----+ | | || |
+ | | PE2 |________|_____| || |
+ | | |<=================+ |
+ | +-----+ | | |
+ |CO 2 | | |
+ +=================+ +-----------------+
+
+ Figure 5: ICCP Geo-redundant PEs Shared Interconnect Scenario
+
+
+
+
+
+Martini, et al. Standards Track [Page 9]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+3.3. ICCP Requirements
+
+ The requirements for the Inter-Chassis Communication Protocol are as
+ follows:
+
+ i. ICCP MUST provide a control channel for communication between
+ PEs in a Redundancy Group (RG). PE nodes may be co-located or
+ remote (refer to Section 3.2 above). Client applications that
+ make use of ICCP services MUST only use this channel to
+ communicate control information and not data traffic. As such,
+ the protocol SHOULD provide relatively low bandwidth, low
+ delay, and highly reliable message transfer.
+
+ ii. ICCP MUST accommodate multiple client applications (e.g.,
+ multi-chassis LACP, PW redundancy, SONET APS). This implies
+ that the messages SHOULD be extensible (e.g., TLV-based), and
+ the protocol SHOULD provide a robust application registration
+ and versioning scheme.
+
+ iii. ICCP MUST provide reliable message transport and in-order
+ delivery between nodes in an RG with secure authentication
+ mechanisms built into the protocol. The redundancy
+ applications that are clients of ICCP expect reliable message
+ transfer and as such will assume that the protocol takes care
+ of flow control and retransmissions. Furthermore, given that
+ the applications will rely on ICCP to communicate data used to
+ synchronize state machines on disparate nodes, it is critical
+ that ICCP guarantees in-order message delivery. Loss of
+ messages or out-of-sequence messages would have adverse effects
+ on the operation of the client applications.
+
+ iv. ICCP MUST provide a common mechanism to actively monitor the
+ health of PEs in an RG. This mechanism will be used to detect
+ PE node failure (or isolation from the MPLS network in the case
+ of shared interconnect) and inform the client applications.
+ The applications require that the mechanism trigger failover
+ according to the procedures of the redundancy protocol employed
+ on the attachment circuit (AC) and PW. The solution SHOULD
+ achieve sub-second detection of loss of remote node
+ (~50-150 msec) in order to give the client applications
+ (redundancy mechanisms) enough reaction time to achieve
+ sub-second service restoration times.
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 10]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ v. ICCP SHOULD provide asynchronous event-driven state update,
+ independent of periodic messages, for immediate notification of
+ client applications' state changes. In other words, the
+ transmission of messages carrying application data SHOULD be
+ on-demand rather than timer-based to minimize inter-chassis
+ state synchronization delay.
+
+ vi. ICCP MUST accommodate multi-link and multi-hop interconnects
+ between nodes. When the devices within an RG are located in
+ different physical locations, the physical interconnect between
+ them will comprise a network rather than a link. As such, ICCP
+ MUST accommodate the case where the interconnect involves
+ multiple hops. Furthermore, it is possible to have multiple
+ (redundant) paths or interconnects between a given pair of
+ devices. This is true for both the co-located and
+ geo-redundant scenarios. ICCP MUST handle this as well.
+
+ vii. ICCP MUST ensure transport security between devices in an RG.
+ This is especially important in the scenario where the members
+ of an RG are located in different physical locations and
+ connected over a shared network (e.g., PSN). In particular,
+ ICCP MUST NOT accept connections arbitrarily from any device;
+ otherwise, the state of client applications might be
+ compromised. Furthermore, even if an ICCP connection request
+ appears to come from an eligible device, its source address may
+ have been spoofed. Therefore, some means of preventing source
+ address spoofing MUST be in place.
+
+ viii. ICCP MUST allow the operator to statically configure members of
+ an RG. Auto-discovery may be considered in the future.
+
+ ix. ICCP SHOULD allow for flexible RG membership. It is expected
+ that only two nodes in an RG will cover most of the redundancy
+ applications for common deployments. ICCP SHOULD NOT preclude
+ supporting more than two nodes in an RG by virtue of design.
+ Furthermore, ICCP MUST allow a single node to be a member of
+ multiple RGs simultaneously.
+
+4. ICC LDP Protocol Extension Specification
+
+ To address the requirements identified in the previous section, ICCP
+ is modeled to comprise three layers:
+
+ i. Application Layer: This provides the interface to the various
+ redundancy applications that make use of the services of ICCP.
+ ICCP is concerned with defining common connection management
+ procedures and the formats of the messages exchanged at this
+ layer; however, beyond that, it does not impose any restrictions
+
+
+
+Martini, et al. Standards Track [Page 11]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ on the procedures or state machines of the clients, as these are
+ deemed application specific and lie outside the scope of ICCP.
+ This guarantees implementation interoperability without placing
+ any unnecessary constraints on internal design specifics.
+
+ ii. Inter-Chassis Communication (ICC) Layer: This layer implements
+ the common set of services that ICCP offers to the client
+ applications. It handles protocol versioning, RG membership,
+ Redundant Object identification, PE node identification, and
+ ICCP connection management.
+
+ iii. Transport Layer: This layer provides the actual ICCP message
+ transport. It is responsible for addressing, route resolution,
+ flow control, reliable and in-order message delivery,
+ connectivity resiliency/redundancy, and, finally, PE node
+ failure detection. The Transport layer may differ, depending on
+ the Physical Layer of the interconnect.
+
+4.1. LDP ICCP Capability Advertisement
+
+ When an RG is enabled on a particular PE, an LDP session to every
+ remote PE in that RG MUST be created, if one does not already exist.
+ The capability of supporting ICCP MUST then be advertised to all of
+ those LDP peers in that RG. This is achieved by using the methods
+ described in [RFC5561] and advertising the "ICCP capability TLV". If
+ an LDP peer supports the dynamic capability advertisement, this can
+ be done by sending a new capability message with the S-bit set for
+ the "ICCP capability TLV" when the first RG is enabled on the PE. If
+ the peer does not support dynamic capability advertisements, then the
+ "ICCP TLV" MUST be included in the LDP initialization procedures in
+ the capability parameter [RFC5561].
+
+4.2. RG Membership Management
+
+ ICCP defines a mechanism that enables PE nodes to manage their RG
+ membership. When a PE is configured to be a member of an RG, it will
+ first advertise the ICCP capability to its peers. Subsequently, the
+ PE sends an "RG Connect" message to the peers that have also
+ advertised ICCP capability. The PE then waits for the peers to send
+ their own "RG Connect" messages, if they haven't done so already.
+ For a given RG, the ICCP connection between two devices is considered
+ to be operational only when both devices have sent and received ICCP
+ "RG Connect" messages for that RG.
+
+ If a PE that has sent a particular "RG Connect" message doesn't
+ receive a corresponding RG Connect (or a Notification message
+ rejecting the connection) from a destination, it will remain in a
+ state of expecting the corresponding "RG Connect" message (or
+
+
+
+Martini, et al. Standards Track [Page 12]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ Notification message). The RG will not become operational until the
+ corresponding "RG Connect" message has been received. If a PE that
+ has sent an "RG Connect" message receives a Notification message
+ rejecting the connection, with a NAK TLV (Negative Acknowledgement
+ TLV) (Section 6.4.1), it will stop attempting to bring up the ICCP
+ connection immediately.
+
+ A device MUST reject an incoming "RG Connect" message if at least one
+ of the following conditions is satisfied:
+
+ i. the PE is not a member of the RG;
+
+ ii. the maximum number of simultaneous ICCP connections that the PE
+ can handle is exceeded.
+
+ Otherwise, the PE MUST bring up the connection by responding to the
+ incoming "RG Connect" message with an appropriate RG Connect.
+
+ A PE sends an "RG Disconnect" message to tear down the ICCP
+ connection for a given RG. This is a unilateral operation and
+ doesn't require any acknowledgement from the other PEs. Note that
+ the ICCP connection for an RG MUST be operational before any client
+ application can make use of ICCP services in that RG.
+
+4.2.1. ICCP Connection State Machine
+
+ A PE maintains an ICCP Connection state machine instance for every
+ ICCP connection with a remote peer in the RG. This state machine is
+ separate from any Application Connection state machine
+ (Section 4.4.2). The ICCP Connection state machine reacts only to
+ "RG Connect", "RG Disconnect", and "RG Notification" messages that do
+ not contain any "Application TLVs". Actions and state transitions in
+ the Application Connection state machines have no effect on the ICCP
+ Connection state machine.
+
+ The ICCP Connection state machine is defined to have six states, as
+ follows:
+
+ - NONEXISTENT: This state is the starting point for the state
+ machine. It indicates that no ICCP connection exists and that
+ there's no LDP session established between the PEs.
+
+ - INITIALIZED: This state indicates that an LDP session exists
+ between the PEs but LDP ICCP capability information has not yet
+ been exchanged between them.
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 13]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ - CAPSENT: This state indicates that an LDP session exists between
+ the PEs and that the local PE has advertised LDP ICCP capability to
+ its peer.
+
+ - CAPREC: This state indicates that an LDP session exists between the
+ PEs and that the local PE has both received and advertised LDP ICCP
+ capability from/to its peer.
+
+ - CONNECTING: This state indicates that the local PE has initiated an
+ ICCP connection to its peer and is awaiting its response.
+
+ - OPERATIONAL: This state indicates that the ICCP connection is
+ operational.
+
+ The state transition table and state transition diagram follow.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 14]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ ICCP Connection State Transition Table
+
+ STATE EVENT NEW STATE
+ --------------------------------------------------------------------
+ NONEXISTENT LDP session established INITIALIZED
+
+ INITIALIZED Transmit LDP ICCP capability CAPSENT
+
+ Receive LDP ICCP capability CAPREC
+ Action: Transmit LDP ICCP capability
+
+ LDP session torn down NONEXISTENT
+
+ CAPSENT Receive LDP ICCP capability CAPREC
+
+ LDP session torn down NONEXISTENT
+
+ CAPREC Transmit RG Connect message CONNECTING
+
+ Receive acceptable RG Connect message OPERATIONAL
+ Action: Transmit RG Connect message
+
+ Receive any other ICCP message CAPREC
+ Action: Transmit NAK TLV in RG
+ Notification message
+
+ LDP session torn down NONEXISTENT
+
+ CONNECTING Receive acceptable RG Connect message OPERATIONAL
+
+ Receive any other ICCP message CAPREC
+ Action: Transmit NAK TLV in RG
+ Notification message
+
+ LDP session torn down NONEXISTENT
+
+ OPERATIONAL Receive acceptable RG Disconnect message CAPREC
+
+ Transmit RG Disconnect message CAPREC
+
+ LDP session torn down NONEXISTENT
+
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 15]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ ICCP Connection State Transition Diagram
+
+ +------------+
+ | |
+ +------------------>|NONEXISTENT | LDP session torn down
+ | | |<--------------------------+
+ | +------------+ |
+ | LDP session | ^ LDP session |
+ | established | | torn down |
+ | V | |
+ | +-----------+ |
+ LDP | | | Tx LDP ICCP |
+ session| |INITIALIZED| capability |
+ torn | +---| |---------------+ |
+ down | Rx other | +-----------+ | |
+ | ICCP msg/ |Rx LDP ICCP | |
+ | Tx NAK TLV | capability/ | |
+ | +---+ |Tx LDP ICCP capability | |
+ | | | | | |
+ | V | V V |
+ | +-----------+ Rx LDP ICCP +--------+ |
+ +---| | capability | | |
+ |CAPREC |<----------------------|CAPSENT |---------->+
+ +---| |-------------------+ | | |
+ | +-----------+ | +--------+ |
+ | ^ ^ | |
+ Tx | | | | |
+ RG | | |Rx RG Disconnect msg | |
+ Connect| | | or |Rx RG Connect msg/ |
+ msg | | |Tx RG Disconnect msg | Tx RG Connect msg |
+ | | | V |
+ | | | +------------+ |
+ | | +--------------------| | |
+ | | |OPERATIONAL |------------>+
+ | | | | |
+ | |Rx other ICCP msg/ +------------+ |
+ | | Tx NAK TLV ^ |
+ | | | |
+ | +----------+ Rx RG Connect msg | |
+ | | |---------------------+ |
+ +----->|CONNECTING| |
+ | |----------------------------------------->+
+ +----------+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 16]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+4.3. Redundant Object Identification
+
+ ICCP offers its client applications a uniform mechanism for
+ identifying links, ports, forwarding constructs, and, more generally,
+ objects (e.g., interfaces, pseudowires, VLANs) that are being
+ protected in a redundant setup. These are referred to as Redundant
+ Objects (ROs). An example of an RO is a multi-chassis link-
+ aggregation group that spans two PEs. ICCP introduces a 64-bit
+ opaque identifier to uniquely identify ROs in an RG. This
+ identifier, referred to as the Redundant Object ID (ROID), MUST match
+ between RG members for the protected object in question; this allows
+ separate systems in an RG to use a common handle to reference the
+ protected entity, irrespective of its nature (e.g., physical or
+ virtual) and in a manner that is agnostic to implementation
+ specifics. Client applications that need to synchronize state
+ pertaining to a particular RO SHOULD embed the corresponding ROID in
+ their TLVs.
+
+4.4. Application Connection Management
+
+ ICCP provides a common set of procedures by which applications on one
+ PE can connect to their counterparts on another PE, for the purpose
+ of inter-chassis communication in the context of a given RG. The
+ prerequisite for establishing an Application Connection is to have an
+ operational ICCP RG connection between the two endpoints. It is
+ assumed that the association of applications with RGs is known
+ a priori, e.g., by means of device configuration. ICCP then sends an
+ "Application Connect TLV" (carried in an "RG Connect" message), on
+ behalf of each client application, to each remote PE within the RG.
+ The client may piggyback application-specific information in that
+ "Connect TLV", which, for example, can be used to negotiate
+ parameters or attributes prior to bringing up the actual Application
+ Connection. The procedures for bringing up the Application
+ Connection are similar to those of the ICCP connection: an
+ Application Connection between two nodes is up only when both nodes
+ have sent and received "RG Connect" messages with the proper
+ "Application Connect TLVs". A PE MUST send a Notification message to
+ reject an Application Connection request if one of the following
+ conditions is encountered:
+
+ i. the application doesn't exist or is not configured for that RG;
+
+ ii. the Application Connection count exceeds the PE's capabilities.
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 17]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ When a PE receives such a rejection notification, it MUST stop
+ attempting to bring up the Application Connection until it receives a
+ new Application Connection request from the remote PE. This is done
+ by responding to the incoming "RG Connect" message (carrying an
+ "Application Connect TLV") with an appropriate "RG Connect" message
+ (carrying a corresponding "Application Connect TLV").
+
+ When an application is stopped on a device or it is no longer
+ associated with an RG, it MUST signal ICCP to trigger sending an
+ "Application Disconnect TLV" (in the "RG Disconnect" message). This
+ is a unilateral notification to the other PEs within an RG and as
+ such doesn't trigger any response.
+
+4.4.1. Application Versioning
+
+ During Application Connection setup, a given application on one PE
+ can negotiate with its counterpart on a peer PE the proper
+ application version to use for communication. If no common version
+ is agreed upon, then the Application Connection is not brought up.
+ This is achieved through the following set of rules:
+
+ - If an application receives an "Application Connect TLV" with a
+ version number that is higher than its own, it MUST send a
+ Notification message with a "NAK TLV" indicating status code
+ "Incompatible Protocol Version" and supplying the version that is
+ locally supported by the PE.
+
+ - If an application receives an "Application Connect TLV" with a
+ version number that is lower than its own, it MAY respond with an
+ RG Connect that has an "Application Connect TLV" using the same
+ version that was received. Alternatively, the application MAY
+ respond with a Notification message to reject the request using the
+ "Incompatible Protocol Version" code and supply the version that is
+ supported. This allows an application to operate in either
+ backwards-compatible or incompatible mode.
+
+ - If an application receives an "Application Connect TLV" with a
+ version that is equal to its own, then the application MUST honor
+ or reject the request based on whether the application is
+ configured for the RG in question, and whether or not the
+ Application Connection count has been exceeded.
+
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 18]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+4.4.2. Application Connection State Machine
+
+ A PE maintains one Application Connection state machine instance per
+ ICCP application for every ICCP connection with a remote PE in the
+ RG. Each application's state machine reacts only to the "RG
+ Connect", "RG Disconnect", and "RG Notification" messages that
+ contain an "Application TLV" specifying that particular application.
+
+ The Application Connection state machine has six states, as follows:
+
+ - NONEXISTENT: This state indicates that the Application Connection
+ does not exist, since there is no ICCP connection between the PEs.
+
+ - RESET: This state indicates that an ICCP connection is operational
+ between the PEs but that the Application Connection has not been
+ initialized yet or has been resent.
+
+ - CONNSENT: This state indicates that the local PE has requested
+ initiation of an Application Connection with its peer but has not
+ received a response yet.
+
+ - CONNREC: This state indicates that the local PE has received a
+ request to initiate an Application Connection from its peer but has
+ not responded yet.
+
+ - CONNECTING: This state indicates that the local PE has transmitted
+ to its peer an "Application Connection" message with the A-bit set
+ to 1 and is awaiting the peer's response.
+
+ - OPERATIONAL: This state indicates that the Application Connection
+ is operational.
+
+ The state transition table and state transition diagram follow.
+
+ ICCP Application Connection State Transition Table
+
+ STATE EVENT NEW STATE
+ -------------------------------------------------------------------
+ NONEXISTENT ICCP connection established RESET
+
+ RESET ICCP connection torn down NONEXISTENT
+
+ Transmit Application Connect TLV CONNSENT
+
+ Receive Application Connect TLV CONNREC
+
+ Receive any other Application TLV RESET
+ Action: Transmit NAK TLV
+
+
+
+Martini, et al. Standards Track [Page 19]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ CONNSENT Receive NAK TLV RESET
+
+ Receive Application Connect TLV OPERATIONAL
+ with A-bit=1
+ Action: Transmit Application Connect
+ TLV with A-bit=1
+
+ Receive any other Application TLV RESET
+ Action: Transmit NAK TLV
+
+ ICCP connection torn down NONEXISTENT
+
+ CONNREC Transmit NAK TLV RESET
+
+ Transmit Application Connect TLV CONNECTING
+ with A-bit=1
+
+ Receive Application Connect TLV CONNREC
+
+ Receive any Application TLV except RESET
+ Connect
+ Action: Transmit NAK TLV
+
+ ICCP connection torn down NONEXISTENT
+
+ CONNECTING Receive Application Connect TLV OPERATIONAL
+ with A-bit=1
+
+ Receive any other Application TLV RESET
+ Action: Transmit NAK TLV
+
+ ICCP connection torn down NONEXISTENT
+
+ OPERATIONAL Receive Application Disconnect TLV RESET
+
+ Transmit Application Disconnect TLV RESET
+
+ ICCP connection torn down NONEXISTENT
+
+
+
+
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 20]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ ICCP Application Connection State Transition Diagram
+
+ +------------+
+ | |
+ +---------------->|NONEXISTENT | ICCP connection torn down
+ | | |<--------------------------+
+ | +------------+ |
+ | ICCP connection| ^ ICCP connection |
+ | established | | torn down |
+ | | | |
+ | V | Rx other App TLV/ |
+ | +-----------+<-----+ Tx NAK TLV |
+ ICCP | Rx App | | | |
+ connect| Connect TLV | RESET |------+ |
+ torn | +-------------| |---------------+ |
+ down | | +-----------+ Tx App | |
+ | | ^ ^ ^ ^ Connect TLV| |
+ | | Tx NAK | | | | | |
+ | | or | | | | | |
+ | | Rx non- | | | | | |
+ | | Connect | | | | | |
+ | V TLV/Tx NAK | | |Rx NAK TLV V |
+ | +-----------+ | | | |or +--------+ |
+ +-| |---+ | | +---------| | |
+ |CONNREC | | | Rx other |CONNSENT|---------->+
+ +-| |-+ | | App TLV/ | | |
+ | +-----------+ | | | Tx NAK +--------+ |
+ | ^---+ | | |Rx App Connect |
+ | Rx App | | |TLV (A=1)/ |
+ | Connect TLV | |Rx App Disconn | Tx App |
+ | | |or | Connect TLV |
+ | Tx App Connect | |Tx App Disconn V (A=1) |
+ | TLV (A=1) | | +------------+ |
+ | | +------| | |
+ | Rx other App | |OPERATIONAL |------------>+
+ | TLV/Tx NAK | | | |
+ | +------+ +------------+ |
+ | | ^ Rx App Connect |
+ | +----------+ | TLV (A=1) |
+ | | |---------------------+ |
+ +--->|CONNECTING| |
+ | |----------------------------------------->+
+ +----------+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 21]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+4.5. Application Data Transfer
+
+ When an application has information to transfer over ICCP, it
+ triggers the transmission of an "Application Data" message. ICCP
+ guarantees in-order and lossless delivery of data. An application
+ may reject a message or a set of one or more TLVs within a message by
+ using the Notification message with a "NAK TLV". Furthermore, an
+ application may implement its own ACK mechanism, if deemed required,
+ by defining an application-specific TLV to be transported in an
+ "Application Data" message. Note that this document does not define
+ a common ACK mechanism for applications.
+
+ It is left up to the application to define the procedures to handle
+ the situation where a PE receives a "NAK TLV" in response to a
+ transmitted "Application Data" message. Depending on the specifics
+ of the application, it may be favorable to have the PE that sent the
+ NAK explicitly request retransmission of data. On the other hand,
+ for certain applications it may be more suitable to have the original
+ sender of the "Application Data" message handle retransmissions in
+ response to a NAK. ICCP supports both models.
+
+4.6. Dedicated Redundancy Group LDP Session
+
+ For certain ICCP applications, it is required that a fairly large
+ amount of RG information be exchanged in a very short period of time.
+ In order to better distribute the load in a multiple-processor
+ system, and to avoid head-of-line blocking to other LDP applications,
+ initiating a separate TCP/IP session between the two LDP speakers may
+ be required.
+
+ This procedure is OPTIONAL and does not change the operation of LDP
+ or ICCP.
+
+ A PE that requires a separate LDP session will advertise a separate
+ LDP adjacency with a non-zero label space identifier. This will
+ cause the remote peer to open a separate LDP session for this label
+ space. No labels need to be advertised in this label space, as it is
+ only used for one or a set of ICCP RGs. All relevant LDP and ICCP
+ procedures still apply as described in [RFC5036] and this document.
+
+5. ICCP PE Node Failure / Isolation Detection Mechanism
+
+ ICCP provides its client applications a notification when a remote PE
+ that is a member of the RG is no longer reachable. In the case of a
+ dedicated interconnect, this indicates that the remote PE node has
+ failed, whereas in the case of a shared interconnect this indicates
+ that the remote PE node has either failed or become isolated from the
+ MPLS network. This information is used by the client applications to
+
+
+
+Martini, et al. Standards Track [Page 22]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ trigger failover according to the procedures of the redundancy
+ protocol employed on the AC and PW. To that end, ICCP does not
+ define its own Keep-Alive mechanism for the purpose of monitoring the
+ health of remote PE nodes but rather reuses existing fault detection
+ mechanisms. The following mechanisms may be used by ICCP to detect
+ PE node failure:
+
+ - Bidirectional Forwarding Detection (BFD)
+
+ Run a BFD session [RFC5880] between the PEs that are members of a
+ given RG, and use that to detect PE node failure. This assumes
+ that resiliency mechanisms are in place to protect connectivity to
+ the remote PE nodes, and hence loss of BFD periodic messages from a
+ given PE node can only mean that the node itself has failed.
+
+ - IP Reachability Monitoring
+
+ It is possible for a PE to monitor IP-layer connectivity to other
+ members of an RG that are participating in IGP/BGP. When
+ connectivity to a given PE is lost, the local PE interprets that to
+ mean loss of the remote PE node. This technique assumes that
+ resiliency mechanisms are in place to protect the route to the
+ remote PE nodes, and hence loss of IP reachability to a given node
+ can only mean that the node itself has failed.
+
+ It is worth noting here that loss of the LDP session with a PE in an
+ RG is not a reliable indicator that the remote PE itself is down. It
+ is possible, for example, that the remote PE could encounter a local
+ event that would lead to resetting the LDP session, while the PE node
+ would remain operational for traffic forwarding purposes.
+
+6. ICCP Message Formats
+
+ This section defines the messages exchanged at the Application and
+ ICC layers.
+
+6.1. Encoding ICC into LDP Messages
+
+ ICCP requires reliable, in-order, stateful message delivery, as well
+ as capability negotiation between PEs. LDP offers all of these
+ features and is already in wide use in the applications that would
+ also require the ICCP protocol extensions. For these reasons, ICCP
+ takes advantage of the already-defined LDP protocol infrastructure.
+
+ [RFC5036], Section 3.5 defines a generic LDP message structure. A
+ new set of LDP message types is defined to communicate the ICCP
+ information. LDP message types in the range 0x0700 to 0x070F will be
+ used for ICCP.
+
+
+
+Martini, et al. Standards Track [Page 23]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ Message types have been allocated by IANA; see Section 12 below for
+ details.
+
+6.1.1. ICC Header
+
+ Every ICCP message comprises an ICC-specific LDP Header followed by
+ message data. The format of the ICC Header is as follows:
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U| Message Type | Message Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Message ID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type = 0x0005 (ICC RG ID) | Length=4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ICC RG ID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ + +
+ | Mandatory ICC Parameters |
+ ~ ~
+ + +
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ + +
+ | Optional ICC Parameters |
+ ~ ~
+ + +
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit
+
+ Unknown message bit. Upon receipt of an unknown message, if U is
+ clear (=0), a notification is returned to the message originator;
+ if U is set (=1), the unknown message is silently ignored.
+ Subsequent sections that define messages specify a value for the
+ U-bit.
+
+ - Message Type
+
+ Identifies the type of the ICCP message. Must be in the range
+ 0x0700 to 0x070F.
+
+
+
+
+
+Martini, et al. Standards Track [Page 24]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ - Message Length
+
+ 2-octet integer specifying the total length of this message in
+ octets, excluding the "U-bit", "Message Type", and "Length" fields.
+
+ - Message ID
+
+ 4-octet value used to identify this message. Used by the sending
+ PE to facilitate identifying "RG Notification" messages that may
+ apply to this message. A PE sending an "RG Notification" message
+ in response to this message SHOULD include this Message ID in the
+ "NAK TLV" of the "RG Notification" message; see Section 6.4.
+
+ - ICC RG ID TLV
+
+ A TLV of type 0x0005, length 4, containing a 4-octet unsigned
+ integer designating the Redundancy Group of which the sending
+ device is a member. RG ID value 0x00000000 is reserved by the
+ protocol.
+
+ - Mandatory ICC Parameters
+
+ Variable-length set of required message parameters. Some messages
+ have no required parameters.
+
+ For messages that have required parameters, the required parameters
+ MUST appear in the order specified by the individual message
+ specifications in the sections that follow.
+
+ - Optional ICC Parameters
+
+ Variable-length set of optional message parameters. Many messages
+ have no optional parameters.
+
+ For messages that have optional parameters, the optional parameters
+ may appear in any order.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 25]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+6.1.2. ICC Parameter Encoding
+
+ The generic format of an ICC parameter is as follows:
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | TLV(s) |
+ ~ ~
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit
+
+ Unknown TLV bit. Upon receipt of an unknown TLV, if U is clear
+ (=0), a notification MUST be returned to the message originator and
+ the entire message MUST be ignored; if U is set (=1), the unknown
+ TLV MUST be silently ignored and the rest of the message processed
+ as if the unknown TLV did not exist. Subsequent sections that
+ define TLVs specify a value for the U-bit.
+
+ - F-bit
+
+ Forward unknown TLV bit. This bit applies only when the U-bit is
+ set and the LDP message containing the unknown TLV is to be
+ forwarded. If F is clear (=0), the unknown TLV is not forwarded
+ with the LDP message; if F is set (=1), the unknown TLV is
+ forwarded with the LDP message. Subsequent sections that define
+ TLVs specify a value for the F-bit. By setting both the U- and
+ F-bits, a TLV can be propagated as opaque data through nodes that
+ do not recognize the TLV.
+
+ - Type
+
+ 14 bits indicating the ICC Parameter type.
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+ - TLV(s): A set of 0 or more TLVs. Contents will vary according to
+ the message type.
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 26]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+6.1.3. Redundant Object Identifier Encoding
+
+ The Redundant Object Identifier (ROID) is a generic opaque handle
+ that uniquely identifies a Redundant Object (e.g., link, bundle,
+ VLAN) that is being protected in an RG. It is encoded as follows:
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ROID |
+ + +
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ where the ROID is an 8-octet field encoded as an unsigned integer.
+ The ROID value of 0 is reserved.
+
+ The ROID is carried within application-specific TLVs.
+
+6.2. RG Connect Message
+
+ The "RG Connect" message is used to establish the ICCP RG connection
+ in addition to individual Application Connections between PEs in an
+ RG. An "RG Connect" message with no "Application Connect TLV"
+ signals establishment of the ICCP RG connection, whereas an "RG
+ Connect" message with a valid "Application Connect TLV" signals the
+ establishment of an Application Connection in addition to the ICCP RG
+ connection if the latter is not already established.
+
+ An implementation MAY send a dedicated "RG Connect" message to set up
+ the ICCP RG connection and a separate "RG Connect" message for each
+ client application. However, all implementations MUST support the
+ receipt of an "RG Connect" message that triggers the setup of the
+ ICCP RG connection as well as a single Application Connection
+ simultaneously.
+
+ A PE sends an "RG Connect" message to declare its membership in a
+ Redundancy Group. One such message should be sent to each PE that is
+ a member of the same RG. The set of PEs to which "RG Connect"
+ messages should be transmitted is known via configuration or an auto-
+ discovery mechanism that is outside the scope of this specification.
+ If a device is a member of multiple RGs, it MUST send separate "RG
+ Connect" messages for each RG even if the receiving device(s) happens
+ to be the same.
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 27]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ The format of the "RG Connect" message is as follows:
+
+ i. ICC Header with Message type = "RG Connect Message" (0x0700)
+
+ ii. ICC Sender Name TLV
+
+ iii. Zero or one "Application Connect TLV"
+
+ The currently defined "Application Connect TLVs" are as follows:
+
+ - PW-RED Connect TLV (Section 7.1.1)
+
+ - mLACP Connect TLV (Section 7.2.1)
+
+ The details of these TLVs are discussed in Section 7.
+
+ The "RG Connect" message can contain zero or one "Application Connect
+ TLV".
+
+6.2.1. ICC Sender Name TLV
+
+ The "ICC Sender Name TLV" carries the hostname of the sender, encoded
+ in UTF-8 [RFC3629] format. This is used primarily for the purpose of
+ management of the RG and easing network operations. The specific
+ format is shown below:
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type = 0x0001 | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Sender Name |
+ + +-+-+-+-+-+-+-+-+-+
+ ~ ~
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U=F=0
+
+ - Type
+
+ Set to 0x0001 (from the ICC parameter name space).
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+
+
+
+Martini, et al. Standards Track [Page 28]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ - Sender Name
+
+ An administratively assigned name of the sending device, encoded in
+ UTF-8 format and limited to a maximum of 80 octets. This field
+ does not include a terminating null character.
+
+6.3. RG Disconnect Message
+
+ The "RG Disconnect" message serves a dual purpose: to signal that a
+ particular Application Connection is being closed within an RG or
+ that the ICCP RG connection itself is being disconnected because the
+ PE wishes to leave the RG. The format of this message is as follows:
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U| Message Type = 0x0701 | Message Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Message ID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type = 0x0005 (ICC RG ID) | Length=4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ICC RG ID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Disconnect Code TLV |
+ + +
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Optional Application Disconnect TLV |
+ ~ ~
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Optional Parameter TLVs |
+ + +
+ | |
+ ~ ~
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit
+
+ U=0
+
+ - Message Type
+
+ The message type for the "RG Disconnect" message is set to 0x0701.
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 29]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "Message Type",
+ and "Message Length" fields.
+
+ - Message ID
+
+ Defined in Section 6.1.1 above.
+
+ - ICC RG ID
+
+ Defined in Section 6.1.1 above.
+
+ - Disconnect Code TLV
+
+ The format of this TLV is as follows:
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type = 0x0004 | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ICCP Status Code |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit and F-bit
+
+ Both are set to 0.
+
+ - Type
+
+ Set to "Disconnect Code TLV" (0x0004).
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+ - ICCP Status Code
+
+ A status code that reflects the reason for the disconnect
+ message. Allowed values are "ICCP RG Removed" and "ICCP
+ Application Removed from RG".
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 30]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ - Optional Application Disconnect TLV
+
+ Zero or one "Application Disconnect TLV" (defined in Sections 7.1.2
+ and 7.2.2). If the "RG Disconnect" message has a status code of
+ "RG Removed", then it MUST NOT contain any "Application Disconnect
+ TLVs", as the sending PE is signaling that it has left the RG and
+ thus is disconnecting the ICCP RG connection with all associated
+ client Application Connections. If the message has a status code
+ of "Application Removed from RG", then it MUST contain exactly one
+ "Application Disconnect TLV", as the sending PE is only tearing
+ down the connection for the specified application. Other
+ applications, and the ICCP RG connection, are not to be affected.
+
+ - Optional Parameter TLVs
+
+ None are defined for this message in this document. This is
+ specified to allow for future extensions.
+
+6.4. RG Notification Message
+
+ A PE sends an "RG Notification" message to indicate one of the
+ following: to reject an ICCP connection, to reject an Application
+ Connection, to reject an entire message, or to reject one or more
+ TLVs within a message. The Notification message MUST only be sent to
+ a PE that is already part of an RG.
+
+ The "RG Notification" message MUST only be used to reject messages or
+ TLVs corresponding to a single ICCP application. In other words,
+ there is a limit of at most a single ICCP application per "RG
+ Notification" message.
+
+ The format of the "RG Notification" message is as follows:
+
+ i. ICC Header with Message type = "RG Notification Message" (0x0702)
+
+ ii. Notification Message TLVs
+
+ The currently defined Notification message TLVs are as follows:
+
+ i. ICC Sender Name TLV
+
+ ii. Negative Acknowledgement (NAK) TLV
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 31]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+6.4.1. Notification Message TLVs
+
+ The "ICC Sender Name TLV" uses the same format as the format used in
+ the "RG Connect" message and was described above.
+
+ The "NAK TLV" is defined as follows:
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type = 0x0002 | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ICCP Status Code |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Rejected Message ID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Optional TLV(s) |
+ + +
+ | |
+ ~ ~
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit and F-bit
+
+ Both are set to 0.
+
+ - Type
+
+ Set to "NAK TLV" (0x0002).
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+ - ICCP Status Code
+
+ A status code that reflects the reason for the "NAK TLV". Allowed
+ values are as follows:
+
+ i. Unknown ICCP RG (0x00010001)
+
+ This code is used to reject a new incoming ICCP connection for
+ an RG that is not configured on the local PE. When this code
+ is used, the "Rejected Message ID" field MUST contain the
+ message ID of the rejected "RG Connect" message.
+
+
+
+
+
+Martini, et al. Standards Track [Page 32]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ ii. ICCP Connection Count Exceeded (0x00010002)
+
+ This is used to reject a new incoming ICCP connection that
+ would cause the local PE's ICCP connection count to exceed its
+ capabilities. When this code is used, the "Rejected Message
+ ID" field MUST contain the message ID of the rejected "RG
+ Connect" message.
+
+ iii. ICCP Application Connection Count Exceeded (0x00010003)
+
+ This is used to reject a new incoming Application Connection
+ that would cause the local PE's ICCP connection count to
+ exceed its capabilities. When this code is used, the
+ "Rejected Message ID" field MUST contain the message ID of the
+ rejected "RG Connect" message and the corresponding
+ "Application Connect TLV" MUST be included in the "Optional
+ TLV".
+
+ iv. ICCP Application not in RG (0x00010004)
+
+ This is used to reject a new incoming Application Connection
+ when the local PE doesn't support the application or the
+ application is not configured in the RG. When this code is
+ used, the "Rejected Message ID" field MUST contain the message
+ ID of the rejected "RG Connect" message and the corresponding
+ "Application Connect TLV" MUST be included in the "Optional
+ TLV".
+
+ v. Incompatible ICCP Protocol Version (0x00010005)
+
+ This is used to reject a new incoming Application Connection
+ when the local PE has an incompatible version of the
+ application. When this code is used, the "Rejected Message
+ ID" field MUST contain the message ID of the rejected "RG
+ Connect" message and the corresponding "Application Connect
+ TLV" MUST be included in the "Optional TLV".
+
+ vi. ICCP Rejected Message (0x00010006)
+
+ This is used to reject an "RG Application Data" message, or
+ one or more TLVs within the message. When this code is used,
+ the "Rejected Message ID" field MUST contain the message ID of
+ the rejected "RG Application Data" message.
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 33]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ vii. ICCP Administratively Disabled (0x00010007)
+
+ This is used to reject any ICCP messages from a peer from
+ which the PE is not allowed to exchange ICCP messages due to
+ local administrative policy.
+
+ - Rejected Message ID
+
+ If non-zero, a 4-octet value that identifies the peer message to
+ which the "NAK TLV" refers. If zero, no specific peer message is
+ being identified.
+
+ - Optional TLV(s)
+
+ A set of one or more optional TLVs. If the status code is
+ "Rejected Message", then this field contains the TLV or TLVs that
+ were rejected. If the entire message is rejected, all of its TLVs
+ MUST be present in this field; otherwise, the subset of TLVs that
+ were rejected MUST be echoed in this field.
+
+ If the status code is "Incompatible Protocol Version", then this
+ field contains the original "Application Connect TLV" sent by the
+ peer, in addition to the "Requested Protocol Version TLV" defined
+ below:
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type = 0x0003 | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Connection Reference | Requested Version |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit and F-bit
+
+ Both are set to 0.
+
+ - Type
+
+ Set to 0x0003 for "Requested Protocol Version TLV".
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 34]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ - Connection Reference
+
+ Set to the "Type" field of the "Application Connect TLV" that was
+ rejected because of incompatible version.
+
+ - Requested Version
+
+ The version of the application supported by the transmitting
+ device. For this version of the protocol, it is set to 0x0001.
+
+6.5. RG Application Data Message
+
+ The "RG Application Data" message is used to transport application
+ data between PEs within an RG. A single message can be used to carry
+ data from only one application. Multiple Application TLVs are
+ allowed in a single message, as long as all of these TLVs belong to
+ the same application. The format of the "Application Data" message
+ is as follows:
+
+ i. ICC Header with Message type = "RG Application Data Message"
+ (0x0703)
+
+ ii. Application-specific TLVs
+
+ The details of these TLVs are discussed in Section 7. All
+ application-specific TLVs in one "RG Application Data" message MUST
+ belong to a single application but MAY reference different ROs.
+
+7. Application TLVs
+
+7.1. Pseudowire Redundancy (PW-RED) Application TLVs
+
+ This section discusses the "ICCP TLVs" for the Pseudowire Redundancy
+ application.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 35]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+7.1.1. PW-RED Connect TLV
+
+ This TLV is included in the "RG Connect" message to signal the
+ establishment of a PW-RED Application Connection.
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type = 0x0010 | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Protocol Version |A| Reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Optional Sub-TLVs |
+ ~ ~
+ | |
+ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit and F-bit
+
+ Both are set to 0.
+
+ - Type
+
+ Set to 0x0010 for "PW-RED Connect TLV".
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+ - Protocol Version
+
+ The version of this particular protocol for the purposes of ICCP.
+ This is set to 0x0001.
+
+ - A-bit
+
+ Acknowledgement bit. Set to 1 if the sender has received a "PW-RED
+ Connect TLV" from the recipient. Otherwise, set to 0.
+
+ - Reserved
+
+ Reserved for future use.
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 36]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ - Optional Sub-TLVs
+
+ There are no optional sub-TLVs defined for this version of the
+ protocol. This document does not impose any restrictions on the
+ length of the sub-TLVs.
+
+7.1.2. PW-RED Disconnect TLV
+
+ This TLV is used in an "RG Disconnect" message to indicate that the
+ connection for the PW-RED application is to be terminated.
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type = 0x0011 | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Optional Sub-TLVs |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit and F-bit
+
+ Both are set to 0.
+
+ - Type
+
+ Set to 0x0011 for "PW-RED Disconnect TLV".
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+ - Optional Sub-TLVs
+
+ The only optional sub-TLV defined for this version of the protocol
+ is the "PW-RED Disconnect Cause TLV" defined in Section 7.1.2.1.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 37]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+7.1.2.1. PW-RED Disconnect Cause TLV
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type = 0x0019 | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Disconnect Cause String |
+ ~ ~
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit and F-bit
+
+ Both are set to 0.
+
+ - Type
+
+ Set to 0x0019 for "PW-RED Disconnect Cause TLV".
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+ - Disconnect Cause String
+
+ Variable-length string specifying the reason for the disconnect,
+ encoded in UTF-8 format. The string does not include a terminating
+ null character. Used for network management.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 38]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+7.1.3. PW-RED Config TLV
+
+ The "PW-RED Config TLV" is used in the "RG Application Data" message
+ and has the following format:
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type = 0x0012 | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ROID |
+ + +
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | PW Priority | Flags |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Service Name TLV |
+ ~ ~
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | PW ID TLV or Generalized PW ID TLV |
+ ~ ~
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit and F-bit
+
+ Both are set to 0.
+
+ - Type
+
+ Set to 0x0012 for "PW-RED Config TLV".
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+ - ROID
+
+ As defined in Section 6.1.3.
+
+ - PW Priority
+
+ 2 octets. Pseudowire Priority. Used to indicate which PW has
+ better priority to go into active state. Numerically lower numbers
+ are better priority. In case of a tie, the PE with the numerically
+ lower identifier (i.e., IP Address) has better priority.
+
+
+
+
+Martini, et al. Standards Track [Page 39]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ - Flags
+
+ Valid values are as follows:
+
+ i. Synchronized (0x01)
+
+ Indicates that the sender has concluded transmitting all
+ pseudowire configuration for a given service.
+
+ ii. Purge Configuration (0x02)
+
+ Indicates that the pseudowire is no longer configured for
+ PW-RED operation.
+
+ iii. Independent Mode (0x04)
+
+ Indicates that the pseudowire is configured for redundancy
+ using the Independent Mode of operation, per Section 5.1 of
+ [RFC6870].
+
+ iv. Independent Mode with Request Switchover (0x08)
+
+ Indicates that the pseudowire is configured for redundancy
+ using the Independent Mode of operation with the use of the
+ "Request Switchover" bit, per Section 6.3 of [RFC6870].
+
+ v. Master Mode (0x10)
+
+ Indicates that the pseudowire is configured for redundancy
+ using the Master/Slave Mode of operation, with the advertising
+ PE acting as Master, per Section 5.2 of [RFC6870].
+
+ vi. Slave Mode (0x20)
+
+ Indicates that the pseudowire is configured for redundancy
+ using the Master/Slave Mode of operation, with the advertising
+ PE acting as Slave, per Section 5.2 of [RFC6870].
+
+ - Sub-TLVs
+
+ The "PW-RED Config TLV" includes the following two sub-TLVs:
+
+ i. Service Name TLV
+
+ ii. One of the following: PW ID TLV or Generalized PW ID TLV
+
+ The format of the sub-TLVs is defined in Sections 7.1.3.1 through
+ 7.1.3.3.
+
+
+
+Martini, et al. Standards Track [Page 40]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+7.1.3.1. Service Name TLV
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type = 0x0013 | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Service Name |
+ ~ ~
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit and F-bit
+
+ Both are set to 0.
+
+ - Type
+
+ Set to 0x0013 for "Service Name TLV".
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+ - Service Name
+
+ The name of the L2VPN service instance, encoded in UTF-8 format and
+ up to 80 octets in length. The string does not include a
+ terminating null character.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 41]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+7.1.3.2. PW ID TLV
+
+ This TLV is used to communicate the configuration of PWs for VPWS.
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type = 0x0014 | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Peer ID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Group ID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | PW ID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit and F-bit
+
+ Both are set to 0.
+
+ - Type
+
+ Set to 0x0014 for "PW ID TLV".
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+ - Peer ID
+
+ 4-octet LDP Router ID of the peer at the far end of the PW.
+
+ - Group ID
+
+ Same as Group ID in [RFC4447], Section 5.2.
+
+ - PW ID
+
+ Same as PW ID in [RFC4447], Section 5.2.
+
+
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 42]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+7.1.3.3. Generalized PW ID TLV
+
+ This TLV is used to communicate the configuration of PWs for VPLS.
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type = 0x0015 | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | AGI Type | Length | Value |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ~ AGI Value (continued) ~
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | AII Type | Length | Value |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ~ SAII Value (continued) ~
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | AII Type | Length | Value |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ~ TAII Value (continued) ~
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit and F-bit
+
+ Both are set to 0.
+
+ - Type
+
+ Set to 0x0015 for "Generalized PW ID TLV".
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+ - AGI, AII, SAII, and TAII
+
+ Defined in [RFC4447], Section 5.3.2.
+
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 43]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+7.1.4. PW-RED State TLV
+
+ The "PW-RED State TLV" is used in the "RG Application Data" message.
+ This TLV is used by a device to report its PW status to other members
+ in the RG.
+
+ The format of this TLV is as follows:
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type = 0x0016 | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ROID |
+ + +
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Local PW State |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Remote PW State |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit and F-bit
+
+ Both are set to 0.
+
+ - Type
+
+ Set to 0x0016 for "PW-RED State TLV".
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+ - ROID
+
+ As defined in Section 6.1.3.
+
+ - Local PW State
+
+ The status of the PW as determined by the sending PE, encoded in
+ the same format as the "Status Code" field of the "PW Status TLV"
+ defined in [RFC4447] and extended in [RFC6870].
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 44]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ - Remote PW State
+
+ The status of the PW as determined by the remote peer of the
+ sending PE. Encoded in the same format as the "Status Code" field
+ of the "PW Status TLV" defined in [RFC4447] and extended in
+ [RFC6870].
+
+7.1.5. PW-RED Synchronization Request TLV
+
+ The "PW-RED Synchronization Request TLV" is used in the "RG
+ Application Data" message. This TLV is used by a device to request
+ that its peer retransmit configuration or operational state. The
+ following information can be requested:
+
+ - configuration and/or state for one or more pseudowires
+
+ - configuration and/or state for all pseudowires
+
+ - configuration and/or state for all pseudowires in a given service
+
+ The format of the TLV is as follows:
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type = 0x0017 | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Request Number |C|S| Request Type |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Optional Sub-TLVs |
+ ~ ~
+ | |
+ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit and F-bit
+
+ Both are set to 0.
+
+ - Type
+
+ Set to 0x0017 for "PW-RED Synchronization Request TLV".
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+
+
+Martini, et al. Standards Track [Page 45]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ - Request Number
+
+ 2 octets. Unsigned integer uniquely identifying the request. Used
+ to match the request with a response. The value of 0 is reserved
+ for unsolicited synchronization and MUST NOT be used in the "PW-RED
+ Synchronization Request TLV". Given the use of TCP, there are no
+ issues associated with the wrap-around of the Request Number.
+
+ - C-bit
+
+ Set to 1 if the request is for configuration data. Otherwise,
+ set to 0.
+
+ - S-bit
+
+ Set to 1 if the request is for running state data. Otherwise,
+ set to 0.
+
+ - Request Type
+
+ 14 bits specifying the request type, encoded as follows:
+
+ 0x00 Request Data for specified pseudowire(s)
+ 0x01 Request Data for all pseudowires in specified service(s)
+ 0x3FFF Request All Data
+
+ - Optional Sub-TLVs
+
+ A set of zero or more TLVs, as follows:
+
+ If the "Request Type" field is set to 0x00, then this field
+ contains one or more "PW ID TLVs" or "Generalized PW ID TLVs". If
+ the "Request Type" field is set to 0x01, then this field contains
+ one or more "Service Name TLVs". If the "Request Type" field is
+ set to 0x3FFF, then this field MUST be empty. This document does
+ not impose any restrictions on the length of the sub-TLVs.
+
+7.1.6. PW-RED Synchronization Data TLV
+
+ The "PW-RED Synchronization Data TLV" is used in the "RG Application
+ Data" message. A pair of these TLVs is used by a device to delimit a
+ set of TLVs that are sent in response to a "PW-RED Synchronization
+ Request TLV". The delimiting TLVs signal the start and end of the
+ synchronization data and associate the response with its
+ corresponding request via the "Request Number" field.
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 46]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ The "PW-RED Synchronization Data TLVs" are also used for unsolicited
+ advertisements of complete PW-RED configuration and operational state
+ data. In this case, the "Request Number" field MUST be set to 0.
+
+ This TLV has the following format:
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type = 0x0018 | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Request Number | Flags |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit and F-bit
+
+ Both are set to 0.
+
+ - Type
+
+ Set to 0x0018 for "PW-RED Synchronization Data TLV".
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+ - Request Number
+
+ 2 octets. Unsigned integer identifying the Request Number from the
+ "PW-RED Synchronization Request TLV" that solicited this
+ synchronization data response.
+
+ - Flags
+
+ 2 octets. Response flags encoded as follows:
+
+ 0x00 Synchronization Data Start
+ 0x01 Synchronization Data End
+
+
+
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 47]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+7.2. Multi-Chassis LACP (mLACP) Application TLVs
+
+ This section discusses the "ICCP TLVs" for Ethernet attachment
+ circuit redundancy using the multi-chassis LACP (mLACP) application.
+
+7.2.1. mLACP Connect TLV
+
+ This TLV is included in the "RG Connect" message to signal the
+ establishment of an mLACP Application Connection.
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type = 0x0030 | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Protocol Version |A| Reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Optional Sub-TLVs |
+ ~ ~
+ | |
+ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit and F-bit
+
+ Both are set to 0.
+
+ - Type
+
+ Set to 0x0030 for "mLACP Connect TLV".
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+ - Protocol Version
+
+ The version of this particular protocol for the purposes of ICCP.
+ This is set to 0x0001.
+
+ - A-bit
+
+ Acknowledgement bit. Set to 1 if the sender has received an "mLACP
+ Connect TLV" from the recipient. Otherwise, set to 0.
+
+
+
+
+
+Martini, et al. Standards Track [Page 48]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ - Reserved
+
+ Reserved for future use.
+
+ - Optional Sub-TLVs
+
+ There are no optional sub-TLVs defined for this version of the
+ protocol.
+
+7.2.2. mLACP Disconnect TLV
+
+ This TLV is used in an "RG Disconnect" message to indicate that the
+ connection for the mLACP application is to be terminated.
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type = 0x0031 | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Optional Sub-TLVs |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit and F-bit
+
+ Both are set to 0.
+
+ - Type
+
+ Set to 0x0031 for "mLACP Disconnect TLV".
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+ - Optional Sub-TLVs
+
+ The only optional sub-TLV defined for this version of the protocol
+ is the "mLACP Disconnect Cause TLV" defined in Section 7.2.2.1.
+
+
+
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 49]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+7.2.2.1. mLACP Disconnect Cause TLV
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type = 0x003A | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Disconnect Cause String |
+ ~ ~
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit and F-bit
+
+ Both are set to 0.
+
+ - Type
+
+ Set to 0x003A for "mLACP Disconnect Cause TLV".
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+ - Disconnect Cause String
+
+ Variable-length string specifying the reason for the disconnect.
+ Used for network management.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 50]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+7.2.3. mLACP System Config TLV
+
+ The "mLACP System Config TLV" is sent in the "RG Application Data"
+ message. This TLV announces the local node's LACP system parameters
+ to the RG peers.
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type = 0x0032 | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | System ID |
+ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | | System Priority |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Node ID |
+ +-+-+-+-+-+-+-+-+
+
+ - U-bit and F-bit
+
+ Both are set to 0.
+
+ - Type
+
+ Set to 0x0032 for "mLACP System Config TLV".
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+ - System ID
+
+ 6-octet field encoding the System ID used by LACP, as specified in
+ [IEEE-802.1AX], Section 5.3.2.
+
+ - System Priority
+
+ 2 octets encoding the LACP System Priority, as defined in
+ [IEEE-802.1AX], Section 5.3.2.
+
+
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 51]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ - Node ID
+
+ 1 octet. LACP Node ID. Used to ensure that the LACP Port Numbers
+ are unique across all devices in an RG. Valid values are in the
+ range 0-7. Uniqueness of the LACP Port Numbers across RG members
+ is ensured by encoding the Port Numbers as follows:
+
+ - Most significant bit always set to 1
+
+ - The next 3 most significant bits set to Node ID
+
+ - Remaining 12 bits freely assigned by the system
+
+7.2.4. mLACP Aggregator Config TLV
+
+ The "mLACP Aggregator Config TLV" is sent in the "RG Application
+ Data" message. This TLV is used to notify RG peers about the local
+ configuration state of an Aggregator.
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type = 0x0036 | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ROID |
+ + +
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Aggregator ID | MAC Address |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Actor Key | Member Ports Priority |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Flags | Agg Name Len | Aggregator Name |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
+ ~ ~
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit and F-bit
+
+ Both are set to 0.
+
+ - Type
+
+ Set to 0x0036 for "mLACP Aggregator Config TLV".
+
+
+
+
+Martini, et al. Standards Track [Page 52]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+ - ROID
+
+ Defined in Section 6.1.3 above.
+
+ - Aggregator ID
+
+ 2 octets. LACP Aggregator Identifier, as specified in
+ [IEEE-802.1AX], Section 5.4.6.
+
+ - MAC Address
+
+ 6 octets encoding the Aggregator Media Access Control (MAC)
+ address.
+
+ - Actor Key
+
+ 2 octets. LACP Actor Key for the corresponding Aggregator, as
+ specified in [IEEE-802.1AX], Section 5.3.5.
+
+ - Member Ports Priority
+
+ 2 octets. LACP administrative port priority associated with all
+ interfaces bound to the Aggregator. This field is valid only when
+ the "Flags" field has "Priority Set" asserted.
+
+ - Flags
+
+ Valid values are as follows:
+
+ i. Synchronized (0x01)
+
+ Indicates that the sender has concluded transmitting all
+ Aggregator configuration information.
+
+ ii. Purge Configuration (0x02)
+
+ Indicates that the Aggregator is no longer configured for
+ mLACP operation.
+
+ iii. Priority Set (0x04)
+
+ Indicates that the "Member Ports Priority" field is valid.
+
+
+
+
+Martini, et al. Standards Track [Page 53]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ - Agg Name Len
+
+ 1 octet. Length of the "Aggregator Name" field in octets.
+
+ - Aggregator Name
+
+ Aggregator name, encoded in UTF-8 format, up to a maximum of
+ 20 octets. Used for ease of management. The string does not
+ include a terminating null character.
+
+7.2.5. mLACP Port Config TLV
+
+ The "mLACP Port Config TLV" is sent in the "RG Application Data"
+ message. This TLV is used to notify RG peers about the local
+ configuration state of a port.
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type = 0x0033 | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Port Number | MAC Address |
+ +-------------------------------+ +
+ | |
+ +---------------------------------------------------------------+
+ | Actor Key | Port Priority |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Port Speed |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Flags | Port Name Len | Port Name |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
+ ~ ~
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit and F-bit
+
+ Both are set to 0.
+
+ - Type
+
+ Set to 0x0033 for "mLACP Port Config TLV".
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+
+
+
+Martini, et al. Standards Track [Page 54]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ - Port Number
+
+ 2 octets. LACP Port Number for the corresponding interface, as
+ specified in [IEEE-802.1AX], Section 5.3.4. The Port Number MUST
+ be encoded with the Node ID, as discussed above.
+
+ - MAC Address
+
+ 6 octets encoding the port MAC address.
+
+ - Actor Key
+
+ 2 octets. LACP Actor Key for the corresponding interface, as
+ specified in [IEEE-802.1AX], Section 5.3.5.
+
+ - Port Priority
+
+ 2 octets. LACP administrative port priority for the corresponding
+ interface, as specified in [IEEE-802.1AX], Section 5.3.4. This
+ field is valid only when the "Flags" field has "Priority Set"
+ asserted.
+
+ - Port Speed
+
+ 4-octet integer encoding the port's current bandwidth in units of
+ 1,000,000 bits per second. This field corresponds to the
+ ifHighSpeed object of the IF-MIB [RFC2863].
+
+ - Flags
+
+ Valid values are as follows:
+
+ i. Synchronized (0x01)
+
+ Indicates that the sender has concluded transmitting all
+ member link port configurations for a given Aggregator.
+
+ ii. Purge Configuration (0x02)
+
+ Indicates that the port is no longer configured for mLACP
+ operation.
+
+ iii. Priority Set (0x04)
+
+ Indicates that the "Port Priority" field is valid.
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 55]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ - Port Name Len
+
+ 1 octet. Length of the "Port Name" field in octets.
+
+ - Port Name
+
+ Corresponds to the ifName object of the IF-MIB [RFC2863]. Encoded
+ in UTF-8 format and truncated to 20 octets. Port Name does not
+ include a terminating null character.
+
+7.2.6. mLACP Port Priority TLV
+
+ The "mLACP Port Priority TLV" is sent in the "RG Application Data"
+ message. This TLV is used by a device to either advertise its
+ operational Port Priority to other members in the RG or
+ authoritatively request that a particular member of an RG change its
+ port priority.
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type = 0x0034 | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | OpCode | Port Number |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Aggregator ID | Last Port Priority |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Current Port Priority |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit and F-bit
+
+ Both are set to 0.
+
+ - Type
+
+ Set to 0x0034 for "mLACP Port Priority TLV".
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 56]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ - OpCode
+
+ 2 octets identifying the operational code point for the TLV,
+ encoded as follows:
+
+ 0x00 Local Priority Change Notification
+ 0x01 Remote Request for Priority Change
+
+ - Port Number
+
+ 2-octet field representing the LACP Port Number, as specified in
+ [IEEE-802.1AX], Section 5.3.4. When the value of this field is 0,
+ it denotes all ports bound to the Aggregator specified in the
+ "Aggregator ID" field. When non-zero, the Port Number MUST be
+ encoded with the Node ID, as discussed above.
+
+ - Aggregator ID
+
+ 2 octets. LACP Aggregator Identifier, as specified in
+ [IEEE-802.1AX], Section 5.4.6.
+
+ - Last Port Priority
+
+ 2 octets. LACP port priority for the corresponding interface, as
+ specified in [IEEE-802.1AX], Section 5.3.4. For local ports, this
+ field encodes the previous operational value of port priority. For
+ remote ports, this field encodes the operational port priority last
+ known to the PE via notifications received from its peers in the
+ RG.
+
+ - Current Port Priority
+
+ 2 octets. LACP port priority for the corresponding interface, as
+ specified in [IEEE-802.1AX], Section 5.3.4. For local ports, this
+ field encodes the new operational value of port priority being
+ advertised by the PE. For remote ports, this field specifies the
+ new port priority being requested by the PE.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 57]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+7.2.7. mLACP Port State TLV
+
+ The "mLACP Port State TLV" is used in the "RG Application Data"
+ message. This TLV is used by a device to report its LACP port status
+ to other members in the RG.
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type = 0x0035 | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Partner System ID |
+ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | | Partner System Priority |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Partner Port Number | Partner Port Priority |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Partner Key | Partner State | Actor State |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Actor Port Number | Actor Key |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Selected | Port State | Aggregator ID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit and F-bit
+
+ Both are set to 0.
+
+ - Type
+
+ Set to 0x0035 for "mLACP Port State TLV".
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+ - Partner System ID
+
+ 6 octets. The LACP Partner System ID for the corresponding
+ interface, encoded as a MAC address as specified in [IEEE-802.1AX],
+ Section 5.4.2.2, item r.
+
+ - Partner System Priority
+
+ 2-octet field specifying the LACP Partner System Priority, as
+ specified in [IEEE-802.1AX], Section 5.4.2.2, item q.
+
+
+
+
+Martini, et al. Standards Track [Page 58]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ - Partner Port Number
+
+ 2 octets encoding the LACP Partner Port Number, as specified in
+ [IEEE-802.1AX], Section 5.4.2.2, item u. The Port Number MUST be
+ encoded with the Node ID, as discussed above.
+
+ - Partner Port Priority
+
+ 2-octet field encoding the LACP Partner Port Priority, as specified
+ in [IEEE-802.1AX], Section 5.4.2.2, item t.
+
+ - Partner Key
+
+ 2-octet field representing the LACP Partner Key, as defined in
+ [IEEE-802.1AX], Section 5.4.2.2, item s.
+
+ - Partner State
+
+ 1-octet field encoding the LACP Partner State Variable, as defined
+ in [IEEE-802.1AX], Section 5.4.2.2, item v.
+
+ - Actor State
+
+ 1 octet encoding the LACP Actor State Variable for the port, as
+ specified in [IEEE-802.1AX], Section 5.4.2.2, item m.
+
+ - Actor Port Number
+
+ 2-octet field representing the LACP Actor Port Number, as specified
+ in [IEEE-802.1AX], Section 5.3.4. The Port Number MUST be encoded
+ with the Node ID, as discussed above.
+
+ - Actor Key
+
+ 2-octet field encoding the LACP Actor Operational Key, as specified
+ in [IEEE-802.1AX], Section 5.3.5.
+
+ - Selected
+
+ 1 octet encoding the LACP "Selected" variable, defined in
+ [IEEE-802.1AX], Section 5.4.8 as follows:
+
+ 0x00 SELECTED
+ 0x01 UNSELECTED
+ 0x02 STANDBY
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 59]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ - Port State
+
+ 1 octet encoding the operational state of the port as follows:
+
+ 0x00 Up
+ 0x01 Down
+ 0x02 Administratively Down
+ 0x03 Test (e.g., IEEE 802.3ah OAM Intrusive Loopback mode)
+
+ - Aggregator ID
+
+ 2 octets. LACP Aggregator Identifier to which this port is bound
+ based on the outcome of the LACP selection logic.
+
+7.2.8. mLACP Aggregator State TLV
+
+ The "mLACP Aggregator State TLV" is used in the "RG Application Data"
+ message. This TLV is used by a device to report its Aggregator
+ status to other members in the RG.
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type = 0x0037 | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Partner System ID |
+ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | | Partner System Priority |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Partner Key | Aggregator ID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Actor Key | Agg State |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit and F-bit
+
+ Both are set to 0.
+
+ - Type
+
+ Set to 0x0037 for "mLACP Aggregator State TLV".
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+
+
+
+
+Martini, et al. Standards Track [Page 60]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ - Partner System ID
+
+ 6 octets. The LACP Partner System ID for the corresponding
+ interface, encoded as a MAC address as specified in [IEEE-802.1AX],
+ Section 5.4.2.2, item r.
+
+ - Partner System Priority
+
+ 2-octet field specifying the LACP Partner System Priority, as
+ specified in [IEEE-802.1AX], Section 5.4.2.2, item q.
+
+ - Partner Key
+
+ 2-octet field representing the LACP Partner Key, as defined in
+ [IEEE-802.1AX], Section 5.4.2.2, item s.
+
+ - Aggregator ID
+
+ 2 octets. LACP Aggregator Identifier, as specified in
+ [IEEE-802.1AX], Section 5.4.6.
+
+ - Actor Key
+
+ 2-octet field encoding the LACP Actor Operational Key, as specified
+ in [IEEE-802.1AX], Section 5.3.5.
+
+ - Agg State
+
+ 1 octet encoding the operational state of the Aggregator as
+ follows:
+
+ 0x00 Up
+ 0x01 Down
+ 0x02 Administratively Down
+ 0x03 Test (e.g., IEEE 802.3ah OAM Intrusive Loopback mode)
+
+7.2.9. mLACP Synchronization Request TLV
+
+ The "mLACP Synchronization Request TLV" is used in the "RG
+ Application Data" message. This TLV is used by a device to request
+ that its peer retransmit configuration or operational state. The
+ following information can be requested:
+
+ - system configuration and/or state
+
+ - configuration and/or state for a specific port
+
+ - configuration and/or state for all ports with a specific LACP Key
+
+
+
+Martini, et al. Standards Track [Page 61]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ - configuration and/or state for all mLACP ports
+
+ - configuration and/or state for a specific Aggregator
+
+ - configuration and/or state for all Aggregators with a specific LACP
+ Key
+
+ - configuration and/or state for all mLACP Aggregators
+
+ The format of the TLV is as follows:
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type = 0x0038 | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Request Number |C|S| Request Type |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Port Number / Aggregator ID | Actor Key |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit and F-bit
+
+ Both are set to 0.
+
+ - Type
+
+ Set to 0x0038 for "mLACP Synchronization Request TLV".
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+ - Request Number
+
+ 2 octets. Unsigned integer uniquely identifying the request. Used
+ to match the request with a response. The value of 0 is reserved
+ for unsolicited synchronization and MUST NOT be used in the "mLACP
+ Synchronization Request TLV".
+
+ - C-bit
+
+ Set to 1 if the request is for configuration data. Otherwise,
+ set to 0.
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 62]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ - S-bit
+
+ Set to 1 if the request is for running state data. Otherwise,
+ set to 0.
+
+ - Request Type
+
+ 14 bits specifying the request type, encoded as follows:
+
+ 0x00 Request System Data
+ 0x01 Request Aggregator Data
+ 0x02 Request Port Data
+ 0x3FFF Request All Data
+
+ - Port Number / Aggregator ID
+
+ 2 octets. When the "Request Type" field is set to "Request Port
+ Data", this field encodes the LACP Port Number for the requested
+ port. When the "Request Type" field is set to "Request Aggregator
+ Data", this field encodes the Aggregator ID of the requested
+ Aggregator. When the value of this field is 0, it denotes that
+ information for all ports (or Aggregators) whose LACP Key is
+ specified in the "Actor Key" field is being requested.
+
+ - Actor Key
+
+ 2 octets. LACP Actor Key for the corresponding port or Aggregator.
+ When the value of this field is 0 (and the
+ Port Number / Aggregator ID field is 0 as well), it denotes that
+ information for all ports or Aggregators in the system is being
+ requested.
+
+7.2.10. mLACP Synchronization Data TLV
+
+ The "mLACP Synchronization Data TLV" is used in the "RG Application
+ Data" message. A pair of these TLVs is used by a device to delimit a
+ set of TLVs that are being transmitted in response to an "mLACP
+ Synchronization Request TLV". The delimiting TLVs signal the start
+ and end of the synchronization data and associate the response with
+ its corresponding request via the "Request Number" field.
+
+ The "mLACP Synchronization Data TLVs" are also used for unsolicited
+ advertisements of complete mLACP configuration and operational state
+ data. The "Request Number" field MUST be set to 0 in this case. For
+ such unsolicited synchronization, the PE MUST advertise all system,
+ Aggregator, and port information, as done during the initialization
+ sequence.
+
+
+
+
+Martini, et al. Standards Track [Page 63]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ This TLV has the following format:
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| Type = 0x0039 | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Request Number | Flags |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit and F-bit
+
+ Both are set to 0.
+
+ - Type
+
+ Set to 0x0039 for "mLACP Synchronization Data TLV".
+
+ - Length
+
+ Length of the TLV in octets, excluding the "U-bit", "F-bit",
+ "Type", and "Length" fields.
+
+ - Request Number
+
+ 2 octets. Unsigned integer identifying the Request Number from the
+ "mLACP Synchronization Request TLV" that solicited this
+ synchronization data response.
+
+ - Flags
+
+ 2 octets. Response flags, encoded as follows:
+
+ 0x00 Synchronization Data Start
+ 0x01 Synchronization Data End
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 64]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+8. LDP Capability Negotiation
+
+ As required in [RFC5561], the following TLV is defined to indicate
+ the ICCP capability:
+
+ 0 1 2 3
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |U|F| TLV Code Point = 0x0700 | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |S| Reserved | Reserved | Ver/Maj | Ver/Min |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ - U-bit
+
+ SHOULD be 1 (ignore if not understood).
+
+ - F-bit
+
+ SHOULD be 0 (don't forward if not understood).
+
+ - TLV Code Point
+
+ The TLV type, which identifies a specific capability. The ICCP
+ code point is listed in Section 12 below.
+
+ - S-bit
+
+ State bit. Indicates whether the sender is advertising or
+ withdrawing the ICCP capability. The State bit is used as follows:
+
+ 1 - The TLV is advertising the capability specified by the TLV Code
+ Point.
+
+ 0 - The TLV is withdrawing the capability specified by the TLV Code
+ Point.
+
+ - Ver/Maj
+
+ The major version revision of ICCP. This document specifies 1.0,
+ and so this field is set to 1.
+
+ - Ver/Min
+
+ The minor version revision of ICCP. This document specifies 1.0,
+ and so this field is set to 0.
+
+
+
+
+
+Martini, et al. Standards Track [Page 65]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ ICCP capability is advertised to an LDP peer if there is at least one
+ RG enabled on the local PE.
+
+9. Client Applications
+
+9.1. Pseudowire Redundancy Application Procedures
+
+ This section defines the procedures for the Pseudowire Redundancy
+ (PW-RED) application.
+
+ It should be noted that the PW-RED application SHOULD NOT be enabled
+ together with an AC redundancy application for the same service
+ instance. This simplifies the operation of the multi-chassis
+ redundancy solution (Figure 1) and eliminates the possibility of
+ deadlock conditions between the AC and PW redundancy mechanisms.
+
+9.1.1. Initial Setup
+
+ When an RG is configured on a system and multi-chassis pseudowire
+ redundancy is enabled in that RG, the PW-RED application MUST send an
+ "RG Connect" message with a "PW-RED Connect TLV" to each PE that is a
+ member of the same RG. The sending PE MUST set the A-bit to 1 if it
+ has already received a "PW-RED Connect TLV" from its peer; otherwise,
+ the PE MUST set the A-bit to 0. If a PE that has sent the TLV with
+ the A-bit set to 0 receives a "PW-RED Connect TLV" from a peer, it
+ MUST repeat its advertisement with the A-bit set to 1. The PW-RED
+ Application Connection is considered to be operational when both PEs
+ have sent and received "PW-RED Connect TLVs" with the A-bit set to 1.
+ Once the Application Connection becomes operational, the two devices
+ can start exchanging "RG Application Data" messages for the PW-RED
+ application.
+
+ If a system receives an "RG Connect" message with a "PW-RED Connect
+ TLV" that has a different Protocol Version, it must follow the
+ procedures outlined in Section 4.4.1 above.
+
+ When the PW-RED application is disabled on the device or is
+ unconfigured for the RG in question, the system MUST send an "RG
+ Disconnect" message with a "PW-RED Disconnect TLV".
+
+9.1.2. Pseudowire Configuration Synchronization
+
+ A system MUST advertise its local PW configuration to other PEs that
+ are members of the same RG. This allows the PEs to build a view of
+ the redundant nodes and pseudowires that are protecting the same
+ service instances. The advertisement MUST be initiated when the
+ PW-RED Application Connection first comes up. To that end, the
+ system sends "RG Application Data" messages with "PW-RED Config TLVs"
+
+
+
+Martini, et al. Standards Track [Page 66]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ as part of an unsolicited synchronization. A PE MUST use a pair of
+ "PW-RED Synchronization Data TLVs" to delimit the set of TLVs that
+ are being sent as part of this unsolicited advertisement.
+
+ In the case of a configuration change, a PE MUST re-advertise the
+ most up-to-date information for the affected pseudowires.
+
+ As part of the configuration synchronization, a PE advertises the
+ ROID associated with the pseudowire. This is used to correlate the
+ pseudowires that are protecting each other on different PEs. A PE
+ also advertises the configured PW redundancy mode. This can be one
+ of the following four options: Master Mode, Slave Mode, Independent
+ Mode, or Independent Mode with Request Switchover. If the received
+ redundancy mode does not match the locally configured mode for the
+ same ROID, then the PE MUST respond with an "RG Notification" message
+ to reject the "PW-RED Config TLV". The PE MUST disable the
+ associated local pseudowire until a satisfactory "PW-RED Config TLV"
+ is received from the peer. This guarantees that device
+ misconfiguration does not lead to network-wide problems (e.g., by
+ creating forwarding loops). The PE SHOULD also raise an alarm to
+ alert the operator. If a PE receives a "NAK TLV" for an advertised
+ "PW-RED Config TLV", it MUST disable the associated pseudowire and
+ SHOULD raise an alarm to alert the operator.
+
+ Furthermore, a PE advertises in its "PW-RED Config TLVs" a priority
+ value that is used to determine the precedence of a given pseudowire
+ to assume the active role in a redundant setup. A PE also advertises
+ a Service Name that is global in the context of an RG and is used to
+ identify which pseudowires belong to the same service. Finally, a PE
+ also advertises the pseudowire identifier as part of this
+ synchronization.
+
+9.1.3. Pseudowire Status Synchronization
+
+ PEs that are members of an RG synchronize pseudowire status for the
+ purpose of identifying, on a per-ROID basis, which pseudowire will be
+ actively used for forwarding and which pseudowire(s) will be placed
+ in standby state.
+
+ Synchronization of pseudowire status is done by sending the "PW-RED
+ State TLV" whenever the pseudowire state changes on a PE. This
+ includes changes to the local end as well as the remote end of the
+ pseudowire.
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 67]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ A PE may request that its peer retransmit previously advertised
+ PW-RED state. This is useful, for instance, when the PE is
+ recovering from a soft failure. To request such a retransmission, a
+ PE MUST send a set of one or more "PW-RED Synchronization Request
+ TLVs".
+
+ A PE MUST respond to a "PW-RED Synchronization Request TLV" by
+ sending the requested data in a set of one or more "PW-RED TLVs"
+ delimited by a pair of "PW-RED Synchronization Data TLVs". The TLVs
+ comprising the response MUST be ordered such that the
+ "Synchronization Response TLV" with the "Synchronization Data Start"
+ flag precedes the various other "PW-RED TLVs" encoding the requested
+ data. These, in turn, MUST precede the "Synchronization Data TLV"
+ with the "Synchronization Data End" flag. It is worth noting that
+ the response may span multiple "RG Application Data" messages;
+ however, the above TLV ordering MUST be retained across messages, and
+ only a single pair of "Synchronization Data TLVs" must be used to
+ delimit the response across all "Application Data" messages.
+
+ A PE MAY re-advertise its PW-RED state in an unsolicited manner.
+ This is done by sending the appropriate Config and State TLVs
+ delimited by a pair of "PW-RED Synchronization Data TLVs" and using a
+ "Request Number" of 0.
+
+ While a PE has a pending synchronization request for a pseudowire or
+ a service, it SHOULD silently ignore all TLVs for said pseudowire or
+ service that are received prior to the synchronization response and
+ that carry the same type of information being requested. This saves
+ the system from the burden of updating state that will ultimately be
+ overwritten by the synchronization response. Note that TLVs
+ pertaining to other pseudowires or services are to continue to be
+ processed per normal procedures in the interim.
+
+ If a PE receives a synchronization request for a pseudowire or
+ service that doesn't exist or is not known to the PE, then it MUST
+ trigger an unsolicited synchronization of all pseudowire information
+ (i.e., replay the initialization sequence).
+
+ In the subsections that follow, we describe the details of pseudowire
+ status synchronization for each of the PW redundancy modes defined in
+ [RFC6870].
+
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 68]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+9.1.3.1. Independent Mode
+
+ This section covers the operation in Independent Mode with or without
+ Request Switchover capability.
+
+ In this mode, the operator must ensure that for a given RO the PW
+ Priority values configured for all associated pseudowires on a given
+ PE are collectively higher (or lower) than those configured on other
+ PEs in the same RG. If this condition is not satisfied after the PEs
+ have exchanged "PW-RED State TLVs", a PE MUST disable the associated
+ pseudowire(s) and SHOULD raise an alarm to alert the operator. Note
+ that the PW Priority MAY be the same as the PW Precedence as defined
+ in [RFC6870].
+
+ For a given RO, after all of the PEs in an RG have exchanged their
+ "PW-RED State TLVs", the PE with the best PW Priority (i.e., least
+ numeric value) advertises active Preferential Forwarding status in
+ LDP on all of its associated pseudowires, whereas all other PEs in
+ the RG advertise standby Preferential Forwarding status in LDP on
+ their associated pseudowires.
+
+ If the service is VPWS, then only a single pseudowire per service
+ will be selected for forwarding. This is the pseudowire that is
+ independently advertised with active Preferential Forwarding status
+ on both endpoints, as described in [RFC6870].
+
+ If the service is VPLS, then one or multiple pseudowires per service
+ will be selected for forwarding. These are the pseudowires that are
+ independently advertised with active Preferential Forwarding status
+ on both PW endpoints, as described in [RFC6870].
+
+9.1.3.2. Master/Slave Mode
+
+ In this mode, the operator must ensure that for a given RO the PW
+ Priority values configured for all associated pseudowires on a given
+ PE are collectively higher (or lower) than those configured on other
+ PEs in the same RG. If this condition is not satisfied after the PEs
+ have exchanged "PW-RED State TLVs", a PE MUST disable the associated
+ pseudowire(s) and SHOULD raise an alarm to alert the operator. Note
+ that the PW Priority MAY be the same as the PW Precedence as defined
+ in [RFC6870]. In addition, the operator must ensure that for a given
+ RO all of the PEs in the RG are consistently configured as Master or
+ Slave.
+
+ In the context of a given RO, if the PEs in the RG are acting as
+ Master, then the PE with the best PW Priority (i.e., least numeric
+ value) advertises active Preferential Forwarding status in LDP on
+
+
+
+
+Martini, et al. Standards Track [Page 69]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ only a single pseudowire, following the procedures in Sections 5.2
+ and 6.2 of [RFC6870], whereas all of the other pseudowires on other
+ PEs in the RG are advertised with standby Preferential Forwarding
+ status in LDP.
+
+9.1.4. PE Node Failure or Isolation
+
+ When a PE node detects that a remote PE that is a member of the same
+ RG is no longer reachable (using the mechanisms described in
+ Section 5), the local PE determines if it has redundant PWs for the
+ affected services. If the local PE has the highest priority (after
+ the failed PE), then it becomes the active node for the services in
+ question and subsequently activates its associated PW(s).
+
+9.2. Attachment Circuit Redundancy Application Procedures
+
+9.2.1. Common AC Procedures
+
+ This section describes generic procedures for AC redundancy
+ applications, independent of the type of the AC (ATM, FR, or
+ Ethernet).
+
+9.2.1.1. AC Failure
+
+ When the AC redundancy mechanism on the active PE detects a failure
+ of the AC, it should send an ICCP "Application Data" message to
+ inform the redundant PEs of the need to take over. The AC failures
+ can be categorized into the following scenarios:
+
+ - Failure of CE interface connecting to PE
+
+ - Failure of CE uplink to PE
+
+ - Failure of PE interface connecting to CE
+
+9.2.1.2. Remote PE Node Failure or Isolation
+
+ When a PE node detects that a remote PE that is a member of the same
+ RG is no longer reachable (using the mechanisms described in
+ Section 5), the local PE determines if it has redundant ACs for the
+ affected services. If the local PE has the highest priority (after
+ the failed PE), then it becomes the active node for the services in
+ question and subsequently activates its associated ACs.
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 70]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+9.2.1.3. Local PE Isolation
+
+ When a PE node detects that it has been isolated from the core
+ network (i.e., all core-facing interfaces/links are not operational),
+ then it should ensure that its AC redundancy mechanism will change
+ the status of any active ACs to standby. The AC redundancy
+ application SHOULD then send ICCP "Application Data" messages in
+ order to trigger failover to a standby PE. Note that this works only
+ in the case of dedicated interconnect (Sections 3.2.1 and 3.2.3),
+ since ICCP will still have a path to the peer, even though the PE is
+ isolated from the MPLS core network.
+
+9.2.1.4. Determining Pseudowire State
+
+ If the PEs in an RG are running an AC redundancy application over
+ ICCP, then the Independent Mode of PW redundancy, as defined in
+ [RFC6870], MUST be used. On a given PE, the Preferential Forwarding
+ status of the PW (active or standby) is derived from the state of the
+ associated AC(s). This simplifies the operation of the multi-chassis
+ redundancy solution (Figure 1) and eliminates the possibility of
+ deadlock conditions between the AC and PW redundancy mechanisms. The
+ rules by which the PW status is derived from the AC status are as
+ follows:
+
+ - VPWS
+
+ For VPWS, there's a single AC per service instance. If the AC is
+ active, then the PW status should be active. If the AC is standby,
+ then the PW status should be standby.
+
+ - VPLS
+
+ For VPLS, there could be multiple ACs per service instance (i.e.,
+ Virtual Switch Instance (VSI) [RFC4026]). If AT LEAST ONE AC is
+ active, then the PW status should be active. If ALL ACs are
+ standby, then the PW status should be standby.
+
+ In this case, the PW-RED application is not used to synchronize PW
+ status between PEs. Rather, the AC redundancy application should
+ synchronize AC status between PEs, in order to establish which AC
+ (and subsequently which PE) is active or standby for a given service.
+ When that is determined, each PE will then derive its local PW's
+ state according to the rules described above. The Preferential
+ Forwarding status bit, described in [RFC6870], is used to advertise
+ PW status to the remote peers.
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 71]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+9.2.2. Multi-Chassis LACP (mLACP) Application Procedures
+
+ This section defines the procedures that are specific to the
+ multi-chassis LACP (mLACP) application, which is applicable for
+ Ethernet ACs.
+
+9.2.2.1. Initial Setup
+
+ When an RG is configured on a system and mLACP is enabled in that RG,
+ the mLACP application MUST send an "RG Connect" message with an
+ "mLACP Connect TLV" to each PE that is a member of the same RG. The
+ sending PE MUST set the A-bit to 1 in said TLV if it has received a
+ corresponding "mLACP Connect TLV" from its peer PE; otherwise, the
+ sending PE MUST set the A-bit to 0. If a PE receives an "mLACP
+ Connect TLV" from its peer after sending said TLV with the A-bit set
+ to 0, it MUST resend the TLV with the A-bit set to 1. A system
+ considers the mLACP Application Connection to be operational when it
+ has sent and received "mLACP Connect TLVs" with the A-bit set to 1.
+ When the mLACP Application Connection between a pair of PEs is
+ operational, the two devices can start exchanging "RG Application
+ Data" messages for the mLACP application. This involves having each
+ PE advertise its mLACP configuration and operational state in an
+ unsolicited manner. A PE SHOULD use the following sequence when
+ advertising its mLACP state upon initial Application Connection
+ setup:
+
+ - Advertise system configuration
+
+ - Advertise Aggregator configuration
+
+ - Advertise port configuration
+
+ - Advertise Aggregator state
+
+ - Advertise port state
+
+ A PE MUST use a pair of "mLACP Synchronization Data TLVs" to delimit
+ the entire set of TLVs that are being sent as part of this
+ unsolicited advertisement.
+
+ If a system receives an "RG Connect" message with an "mLACP Connect
+ TLV" that has a different Protocol Version, it MUST follow the
+ procedures outlined in Section 4.4.1 above.
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 72]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ After the mLACP Application Connection has been established, every PE
+ MUST communicate its system-level configuration to its peers via the
+ use of the "mLACP System Config TLV". This allows every PE to
+ discover the Node ID and the locally configured System ID and System
+ Priority values of its peers.
+
+ If a PE receives an "mLACP System Config TLV" from a remote peer
+ advertising the same Node ID value as the local system, then the PE
+ MUST respond with an "RG Notification" message to reject the "mLACP
+ System Config TLV". The PE MUST suspend the mLACP application until
+ a satisfactory "mLACP System Config TLV" is received from the peer.
+ It SHOULD also raise an alarm to alert the operator. Furthermore, if
+ a PE receives a "NAK TLV" for an "mLACP System Config TLV" that it
+ has advertised, the PE MUST suspend the mLACP application and SHOULD
+ raise an alarm to alert the network operator of potential device
+ misconfiguration.
+
+ If a PE receives an "mLACP System Config TLV" from a new peer
+ advertising the same Node ID value as another existing peer with
+ which the local system has an established mLACP Application
+ Connection, then the PE MUST respond to the new peer with an "RG
+ Notification" message to reject the "mLACP System Config TLV" and
+ MUST ignore the offending TLV.
+
+ If the Node ID of a particular PE changes due to administrative
+ configuration action, the PE MUST then inform its peers to purge the
+ configuration of all previously advertised ports and/or Aggregators
+ and MUST replay the initialization sequence by sending an unsolicited
+ synchronization of the system configuration, Aggregator
+ configuration, port configuration, Aggregator state, and port state.
+
+ It is necessary for all PEs in an RG to agree upon the System ID and
+ System Priority values to be used ubiquitously. To achieve this,
+ every PE MUST use the values for the two parameters that are supplied
+ by the PE with the numerically lowest value (among RG members) of
+ System Aggregation Priority. This guarantees that the PEs always
+ agree on uniform values that yield the highest System Priority.
+
+ When the mLACP application is disabled on the device or is
+ unconfigured for the RG in question, the system MUST send an "RG
+ Disconnect" message with an "mLACP Disconnect TLV".
+
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 73]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+9.2.2.2. mLACP Aggregator and Port Configuration
+
+ A system MUST synchronize the configuration of its mLACP-enabled
+ Aggregators and ports with other RG members. This is achieved via
+ the use of "mLACP Aggregator Config TLVs" and "mLACP Port Config
+ TLVs", respectively. An implementation MUST advertise the
+ configuration of Aggregators prior to advertising the configuration
+ of any of their associated member ports.
+
+ The PEs in an RG MUST all agree on the MAC address to be associated
+ with a given Aggregator. It is possible to achieve this via
+ consistent configuration on member PEs. However, in order to protect
+ against possible misconfiguration, a system MUST use, for any given
+ Aggregator, the MAC address supplied by the PE with the numerically
+ lowest System Aggregation Priority in the RG.
+
+ A system that receives an "mLACP Aggregator Config TLV" with an ROID-
+ to-Key association that is different from its local association MUST
+ reject the corresponding TLV and disable the Aggregator with the same
+ ROID. Furthermore, it SHOULD raise an alarm to alert the operator.
+ Similarly, a system that receives a "NAK TLV" in response to a
+ transmitted "mLACP Aggregator Config TLV" MUST disable the associated
+ Aggregator and SHOULD raise an alarm to alert the network operator.
+
+ A system MAY enforce a restriction that all ports that are to be
+ bundled together on a given PE share the same Port Priority value.
+ If so, the system MUST advertise this common priority in the "mLACP
+ Aggregator Config TLV" and assert the "Priority Set" flag in that
+ TLV. Furthermore, the system in this case MUST NOT advertise
+ individual Port Priority values in the associated "mLACP Port Config
+ TLVs" (i.e., the "Priority Set" flag in these TLVs should be 0).
+
+ A system MAY support individual Port Priority values to be configured
+ on ports that are to be bundled together on a PE. If so, the system
+ MUST advertise the individual Port Priority values in the appropriate
+ "mLACP Port Config TLVs" and MUST NOT assert the "Priority Set" flag
+ in the corresponding "mLACP Aggregator Config TLV".
+
+ When the configurations of all ports for member links associated with
+ a given Aggregator have been sent by a device, it asserts that fact
+ by setting the "Synchronized" flag in the last port's "mLACP Port
+ Config TLV". If an Aggregator doesn't have any candidate member
+ ports configured, this is indicated by asserting the "Synchronized"
+ flag in its "mLACP Aggregator Config TLV".
+
+ Furthermore, for a given port/Aggregator, an implementation MUST
+ advertise the port/Aggregator configuration prior to advertising its
+ state (via the "mLACP Port State TLV" or "mLACP Aggregator State
+
+
+
+Martini, et al. Standards Track [Page 74]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ TLV"). If a PE receives an "mLACP Port State TLV" or "mLACP
+ Aggregator State TLV" for a port or Aggregator that it had not
+ previously learned via an appropriate "Port Config TLV" or
+ "Aggregator Config TLV", then the PE MUST request synchronization of
+ the configuration and state of all mLACP ports as well as all mLACP
+ Aggregators from its respective peer. During a synchronization
+ (solicited or unsolicited), if a PE receives a "State TLV" for a port
+ or Aggregator that it has not learned before, then the PE MUST send a
+ "NAK TLV" for the offending TLV. The PE MUST NOT request
+ resynchronization in this case.
+
+ When mLACP is unconfigured on a port/Aggregator, a PE MUST send a
+ "Port/Aggregator Config TLV" with the "Purge Configuration" flag
+ asserted. This allows receiving PEs to purge any state maintained
+ for the decommissioned port/Aggregator. If a PE receives a
+ "Port/Aggregator Config TLV" with the "Purge Configuration" flag
+ asserted and the PE is not maintaining any state for that
+ port/Aggregator, then it MUST silently discard the TLV.
+
+9.2.2.3. mLACP Aggregator and Port Status Synchronization
+
+ PEs within an RG need to synchronize their state machines for proper
+ mLACP operation with a multi-homed device. This is achieved by
+ having each system advertise its Aggregators and ports running state
+ in "mLACP Aggregator State TLVs" and "mLACP Port State TLVs",
+ respectively. Whenever any LACP parameter for an Aggregator or a
+ port -- whether on the Partner (i.e., multi-homed device) side or the
+ Actor (i.e., PE) side -- is changed, a system MUST transmit an
+ updated TLV for the affected Aggregator and/or port. Moreover, when
+ the administrative or operational state of an Aggregator or port
+ changes, the system MUST transmit an updated Aggregator or Port State
+ TLV to its peers.
+
+ If a PE receives an Aggregator or Port State TLV where the Actor Key
+ doesn't match what was previously received in a corresponding
+ "Aggregator Config TLV" or "Port Config TLV", the PE MUST then
+ request synchronization of the configuration and state of the
+ affected Aggregator or port. If such a mismatch occurs between the
+ Config and State TLVs as part of a synchronization (solicited or
+ unsolicited), then the PE MUST send a "NAK TLV" for the "State TLV".
+ Furthermore, if a PE receives a "Port State TLV" with the "Aggregator
+ ID" set to a value that doesn't map to some Aggregator that the PE
+ had learned via a previous "Aggregator Config TLV", then the PE MUST
+ request synchronization of the configuration and state of all
+ Aggregators and ports. If the above anomaly occurs during a
+ synchronization, then the PE MUST send a "NAK TLV" for the offending
+ "Port State TLV".
+
+
+
+
+Martini, et al. Standards Track [Page 75]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ A PE MAY request that its peer retransmit previously advertised
+ state. This is useful, for example, when the PE is recovering from a
+ soft failure and attempting to relearn state. To request such
+ retransmissions, a PE MUST send a set of one or more "mLACP
+ Synchronization Request TLVs".
+
+ A PE MUST respond to an "mLACP Synchronization Request TLV" by
+ sending the requested data in a set of one or more mLACP TLVs
+ delimited by a pair of "mLACP Synchronization Data TLVs". The TLVs
+ comprising the response MUST be ordered in the "RG Application Data"
+ message(s) such that the "Synchronization Response TLV" with the
+ "Synchronization Data Start" flag precedes the various other mLACP
+ TLVs encoding the requested data. These, in turn, MUST precede the
+ "Synchronization Data TLV" with the "Synchronization Data End" flag.
+ Note that the response may span multiple "RG Application Data"
+ messages -- for example, when MTU limits are exceeded; however, the
+ above ordering MUST be retained across messages, and only a single
+ pair of "Synchronization Data TLVs" MUST be used to delimit the
+ response across all "Application Data" messages.
+
+ A PE device MAY re-advertise its mLACP state in an unsolicited
+ manner. This is done by sending the appropriate Config and State
+ TLVs delimited by a pair of "mLACP Synchronization Data TLVs" and
+ using a "Request Number" of 0.
+
+ While a PE has a pending synchronization request for a system,
+ Aggregator, or port, it SHOULD silently ignore all TLVs for said
+ system, Aggregator, or port that are received prior to the
+ synchronization response and that carry the same type of information
+ being requested. This saves the system from the burden of updating
+ state that will ultimately be overwritten by the synchronization
+ response. Note that TLVs pertaining to other systems, Aggregators,
+ or ports are to continue to be processed per normal procedures in
+ this case.
+
+ If a PE receives a synchronization request for an Aggregator, port,
+ or key that doesn't exist or is not known to the PE, then it MUST
+ trigger an unsolicited synchronization of all system, Aggregator, and
+ port information (i.e., replay the initialization sequence).
+
+ If a PE learns, as part of a synchronization operation from its peer,
+ that the latter is advertising a Node ID value that is different from
+ the value previously advertised, then the PE MUST purge all
+ Port/Aggregator data previously learned from that peer prior to the
+ last synchronization.
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 76]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+9.2.2.4. Failure and Recovery
+
+ When a PE that is active for a multi-chassis link aggregation group
+ encounters a core isolation fault, it SHOULD attempt to fail over to
+ a peer PE that hosts the same RO. The default failover procedure is
+ to have the failed PE bring down the link or links towards the
+ multi-homed CE (e.g., by bringing down the line protocol). This will
+ cause the CE to fail over to the other member link or links of the
+ bundle that are connected to the other PE(s) in the RG. Other
+ procedures for triggering failover are possible; such procedures are
+ outside the scope of this document.
+
+ Upon recovery from a previous fault, a PE MAY reclaim the active role
+ for a multi-chassis link aggregation group if configured for
+ revertive protection. Otherwise, the recovering PE may assume the
+ standby role when configured for non-revertive protection. In the
+ revertive scenario, a PE SHOULD assume the active role within the RG
+ by sending an "mLACP Port Priority TLV" to the currently active PE,
+ requesting that the latter change its port priority to a value that
+ is lower (i.e., numerically larger) for the Aggregator in question.
+
+ If a system is operating in a mode where different ports of a bundle
+ are configured with different Port Priorities, then the system MUST
+ NOT advertise or request changes of Port Priority values for
+ aggregated ports collectively (i.e., by using a "Port Number" of 0 in
+ the "mLACP Port Priority TLV"). This is to avoid ambiguity in the
+ interpretation of the "Last Port Priority" field.
+
+ If a PE receives an "mLACP Port Priority TLV" requesting a priority
+ change for a port or Aggregator that is not local to the device, then
+ the PE MUST re-advertise the local configuration of the system, as
+ well as the configuration and state of all of its mLACP ports and
+ Aggregators.
+
+ If a PE receives an "mLACP Port Priority TLV" in which the remote
+ system is advertising priority change for a port or Aggregator that
+ the local PE had not previously learned via an appropriate "Port
+ Config TLV" or "Aggregator Config TLV", then the PE MUST request
+ synchronization of the configuration and state of all mLACP ports as
+ well as all mLACP Aggregators from its respective peer.
+
+
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 77]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+10. Security Considerations
+
+ ICCP SHOULD only be used in well-managed and highly monitored
+ networks. It ought not be deployed on or over the public Internet.
+ ICCP is not intended to be applicable when the Redundancy Group spans
+ PEs in different administrative domains.
+
+ The security considerations described in [RFC5036] and [RFC4447] that
+ apply to the base LDP specification and to the PW LDP control
+ protocol extensions apply to the capability mechanism described in
+ this document. In particular, ICCP implementations MUST provide a
+ mechanism to select to which LDP peers the ICCP capability will be
+ advertised, and from which LDP peers the ICCP messages will be
+ accepted. Therefore, an incoming ICCP connection request MUST NOT be
+ accepted unless its source IP address is known to be the source of an
+ "eligible" ICCP peer. The set of eligible peers could be
+ preconfigured (as a list of either IP addresses or address/mask
+ combinations), or it could be discovered dynamically via some secure
+ discovery protocol. The TCP Authentication Option (TCP-AO), as
+ defined in [RFC5925], SHOULD be used. This provides integrity and
+ authentication for the ICCP messages and eliminates the possibility
+ of source address spoofing. However, for backwards compatibility
+ and/or to accommodate the ease of migration, the LDP MD5
+ authentication key option, as described in Section 2.9 of [RFC5036],
+ MAY be used instead.
+
+ The security framework and considerations for MPLS in general, and
+ LDP in particular, as described in [RFC5920] apply to this document.
+ Moreover, the recommendations of [RFC6952] and mechanisms of
+ [LDP-CRYPTO] aimed at addressing LDP's vulnerabilities are applicable
+ as well.
+
+ Furthermore, activity on the attachment circuits may cause security
+ threats or be exploited to create denial-of-service attacks. For
+ example, a malicious CE implementation may trigger continuously
+ varying LACP messages that lead to excessive ICCP exchanges. Also,
+ excessive link bouncing of the attachment circuits may lead to the
+ same effect. Similar arguments apply to the inter-PE MPLS links.
+ Implementations SHOULD provide mechanisms to perform control-plane
+ policing and mitigate these types of attacks.
+
+
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 78]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+11. Manageability Considerations
+
+ Implementations SHOULD generally minimize the number of parameters
+ required to configure ICCP in order to help make ICCP easier to use.
+ Implementations SHOULD allow the user to control the RGID via
+ configuration, as this is required to support flexible grouping of
+ PEs in RGs. Furthermore, implementations SHOULD provide mechanisms
+ to troubleshoot the correct operation of ICCP; this includes
+ providing mechanisms to diagnose ICCP connections as well as
+ Application Connections. Implementations MUST provide a means for
+ the user to indicate the IP addresses of remote PEs that are to be
+ members of a given RG. Automatic discovery of RG membership MAY be
+ supported; this topic is outside the scope of this specification.
+
+12. IANA Considerations
+
+12.1. Message Type Name Space
+
+ This document uses several new LDP message types. IANA maintains the
+ "Message Type Name Space" registry as defined by [RFC5036]. The
+ following values have been assigned:
+
+ Message Type Description
+ ------------- ----------------------------
+ 0x0700 RG Connect Message
+ 0x0701 RG Disconnect Message
+ 0x0702 RG Notification Message
+ 0x0703 RG Application Data Message
+ 0x0704-0x070F Reserved for future ICCP use
+
+12.2. TLV Type Name Space
+
+ This document uses a new LDP TLV type. IANA maintains the "TLV Type
+ Name Space" registry as defined by [RFC5036]. The following value
+ has been assigned:
+
+ TLV Type Description
+ -------- -------------------
+ 0x0700 ICCP capability TLV
+
+
+
+
+
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 79]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+12.3. ICC RG Parameter Type Space
+
+ IANA has created a registry called "ICC RG Parameter Types", within
+ the "Pseudowire Name Spaces (PWE3)" registry. ICC RG parameter types
+ are 14-bit values. Parameter Type values 1 through 0x003A are
+ specified in this document. Parameter Type values 0x003B through
+ 0x1FFF are to be assigned by IANA, using the "Expert Review" policy
+ defined in [RFC5226]. Parameter Type values 0x2000 through 0x2FFF,
+ 0x3FFF, and 0 are to be allocated using the "IETF Review" policy
+ defined in [RFC5226]. Parameter Type values 0x3000 through 0x3FFE
+ are reserved for vendor proprietary extensions and are to be assigned
+ by IANA, using the "First Come First Served" policy defined in
+ [RFC5226].
+
+ Initial ICC parameter type space value allocations are specified
+ below:
+
+ Parameter Type Description
+ -------------- ----------------------------------
+ 0x0001 ICC Sender Name
+ 0x0002 NAK TLV
+ 0x0003 Requested Protocol Version TLV
+ 0x0004 Disconnect Code TLV
+ 0x0005 ICC RG ID TLV
+ 0x0006-0x000F Reserved
+ 0x0010 PW-RED Connect TLV
+ 0x0011 PW-RED Disconnect TLV
+ 0x0012 PW-RED Config TLV
+ 0x0013 Service Name TLV
+ 0x0014 PW ID TLV
+ 0x0015 Generalized PW ID TLV
+ 0x0016 PW-RED State TLV
+ 0x0017 PW-RED Synchronization Request TLV
+ 0x0018 PW-RED Synchronization Data TLV
+ 0x0019 PW-RED Disconnect Cause TLV
+ 0x001A-0x002F Reserved
+ 0x0030 mLACP Connect TLV
+ 0x0031 mLACP Disconnect TLV
+ 0x0032 mLACP System Config TLV
+ 0x0033 mLACP Port Config TLV
+ 0x0034 mLACP Port Priority TLV
+ 0x0035 mLACP Port State TLV
+ 0x0036 mLACP Aggregator Config TLV
+ 0x0037 mLACP Aggregator State TLV
+ 0x0038 mLACP Synchronization Request TLV
+ 0x0039 mLACP Synchronization Data TLV
+ 0x003A mLACP Disconnect Cause TLV
+
+
+
+
+Martini, et al. Standards Track [Page 80]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+12.4. Status Code Name Space
+
+ This document uses several new Status codes. IANA maintains the
+ "Status Code Name Space" registry as defined by [RFC5036]. The
+ following values have been assigned; the "E" column is the required
+ setting of the Status Code E-bit.
+
+ Range/Value E Description
+ ------------ ----- ------------------------------------------
+ 0x00010001 0 Unknown ICCP RG
+ 0x00010002 0 ICCP Connection Count Exceeded
+ 0x00010003 0 ICCP Application Connection Count Exceeded
+ 0x00010004 0 ICCP Application not in RG
+ 0x00010005 0 Incompatible ICCP Protocol Version
+ 0x00010006 0 ICCP Rejected Message
+ 0x00010007 0 ICCP Administratively Disabled
+ 0x00010010 0 ICCP RG Removed
+ 0x00010011 0 ICCP Application Removed from RG
+
+13. Acknowledgments
+
+ The authors wish to acknowledge the important contributions of Dennis
+ Cai, Neil McGill, Amir Maleki, Dan Biagini, Robert Leger, Sami
+ Boutros, Neil Ketley, and Mark Christopher Sains.
+
+ The authors also thank Daniel Cohn, Lizhong Jin, and Ran Chen for
+ their valuable input, discussions, and comments.
+
+14. References
+
+14.1. Normative References
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119, March 1997.
+
+ [RFC5036] Andersson, L., Ed., Minei, I., Ed., and B. Thomas, Ed.,
+ "LDP Specification", RFC 5036, October 2007.
+
+ [RFC5561] Thomas, B., Raza, K., Aggarwal, S., Aggarwal, R., and JL.
+ Le Roux, "LDP Capabilities", RFC 5561, July 2009.
+
+ [RFC4447] Martini, L., Ed., Rosen, E., El-Aawar, N., Smith, T., and
+ G. Heron, "Pseudowire Setup and Maintenance Using the
+ Label Distribution Protocol (LDP)", RFC 4447, April 2006.
+
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 81]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+ [IEEE-802.1AX]
+ IEEE Std. 802.1AX-2008, "IEEE Standard for Local and
+ metropolitan area networks--Link Aggregation", IEEE
+ Computer Society, November 2008.
+
+ [RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group
+ MIB", RFC 2863, June 2000.
+
+ [RFC6870] Muley, P., Ed., and M. Aissaoui, Ed., "Pseudowire
+ Preferential Forwarding Status Bit", RFC 6870,
+ February 2013.
+
+ [RFC5920] Fang, L., Ed., "Security Framework for MPLS and GMPLS
+ Networks", RFC 5920, July 2010.
+
+ [RFC6952] Jethanandani, M., Patel, K., and L. Zheng, "Analysis of
+ BGP, LDP, PCEP, and MSDP Issues According to the Keying
+ and Authentication for Routing Protocols (KARP) Design
+ Guide", RFC 6952, May 2013.
+
+ [RFC5925] Touch, J., Mankin, A., and R. Bonica, "The TCP
+ Authentication Option", RFC 5925, June 2010.
+
+14.2. Informative References
+
+ [RFC2922] Bierman, A. and K. Jones, "Physical Topology MIB",
+ RFC 2922, September 2000.
+
+ [RFC4026] Andersson, L. and T. Madsen, "Provider Provisioned Virtual
+ Private Network (VPN) Terminology", RFC 4026, March 2005.
+
+ [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection
+ (BFD)", RFC 5880, June 2010.
+
+ [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
+ IANA Considerations Section in RFCs", BCP 26, RFC 5226,
+ May 2008.
+
+ [RFC3629] Yergeau, F., "UTF-8, a transformation format of
+ ISO 10646", STD 63, RFC 3629, November 2003.
+
+ [LDP-CRYPTO]
+ Zheng, L., Chen, M., and M. Bhatia, "LDP Hello
+ Cryptographic Authentication", Work in Progress,
+ June 2014.
+
+
+
+
+
+
+Martini, et al. Standards Track [Page 82]
+
+RFC 7275 ICCP for L2VPN PE Redundancy June 2014
+
+
+Authors' Addresses
+
+ Luca Martini
+ Cisco Systems, Inc.
+ 9155 East Nichols Avenue, Suite 400
+ Englewood, CO 80112
+ United States
+ EMail: lmartini@cisco.com
+
+
+ Samer Salam
+ Cisco Systems, Inc.
+ 595 Burrard Street, Suite 2123
+ Vancouver, BC V7X 1J1
+ Canada
+ EMail: ssalam@cisco.com
+
+
+ Ali Sajassi
+ Cisco Systems, Inc.
+ 170 West Tasman Drive
+ San Jose, CA 95134
+ United States
+ EMail: sajassi@cisco.com
+
+
+ Matthew Bocci
+ Alcatel-Lucent
+ Voyager Place
+ Shoppenhangers Road
+ Maidenhead
+ Berks, SL6 2PJ
+ UK
+ EMail: matthew.bocci@alcatel-lucent.com
+
+
+ Satoru Matsushima
+ Softbank Telecom
+ 1-9-1, Higashi-Shinbashi, Minato-ku
+ Tokyo 105-7304
+ Japan
+ EMail: satoru.matsushima@g.softbank.co.jp
+
+
+ Thomas Nadeau
+ Brocade
+ EMail: tnadeau@brocade.com
+
+
+
+
+Martini, et al. Standards Track [Page 83]
+