Mobile Ad hoc Networks Working Group S. Ratliff Internet-Draft VT iDirect Intended status: Standards Track B. Berry Expires:November 14, 2015January 7, 2016 S. Jury Cisco Systems D. Satterwhite Broadcom R. Taylor Airbus Defence & SpaceMay 13,July 6, 2015 Dynamic Link Exchange Protocol (DLEP)draft-ietf-manet-dlep-14draft-ietf-manet-dlep-15 Abstract When routing devices rely on modems to effect communications over wireless links, they need timely and accurate knowledge of the characteristics of the link (speed, state, etc.) in order to make routing decisions. In mobile or other environments where these characteristics change frequently, manual configurations or the inference of state through routing or transport protocols does not allow the router to make the best decisions. A bidirectional, event- driven communication channel between the router and the modem is necessary. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire onNovember 14, 2015.January 7, 2016. Copyright Notice Copyright (c) 2015 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. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 1.1. Protocol Overview . . . . . . . . . . . . . . . . . . . . 7 1.2. Requirements . . . . . . . . . . . . . . . . . . . . . . 8 2. Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . 8 3. Core Features andOptionalExtensions . . . . . . . . . . . .10 3.1. Negotiation of Optional Extensions . . . . . . .. . . . 103.2. Protocol Extensions . . . . . . .3.1. Experiments . . . . . . . . . . . .11 3.3. Experimental Signals and Data Items. . . . . . . . . . .1110 4. Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.1. Mandatory Metrics . . . . . . . . . . . . . . . . . . . . 12 5. DLEP Session Flow . . . . . . . . . . . . . . . . . . . . . . 12 5.1.DLEP Router session flow -Peer DiscoverycaseState . . . . . . . .13 5.2. DLEP Router session flow - Configured case. . . . . . .13 5.3. DLEP Modem session flow. . . 12 5.2. Session Initialization State . . . . . . . . . . . . . .14 5.4. Common Session Flow13 5.3. In-Session State . . . . . . . . . . . . . . . . . . .15 6. DLEP Signal Structure and Processing .. 14 5.4. Session Termination State . . . . . . . . . .16 6.1. DLEP Signal Header. . . . . . 16 6. DLEP Signal and Message Processing . . . . . . . . . . . . . 166.2.7. DLEPGeneric Data Item . . .Signal and Message Structure . . . . . . . . . . . . . . 177.7.1. DLEPSignals . . . .Signal Header . . . . . . . . . . . . . . . . . . . 18 7.2. DLEP Message Header .17 7.1. Peer Discovery Signal. . . . . . . . . . . . . . . . . . 187.2. Peer Offer Signal7.3. DLEP Generic Data Item . . . . . . . . . . . . . . . . . 19 8. DLEP Signals and Messages . . .19 7.3. Peer Initialization Signal. . . . . . . . . . . . . . . 197.4.8.1. PeerInitialization ACKDiscovery Signal . . . . . . . . . . . . .20 7.5. Peer Update Signal. . . . . 20 8.2. Peer Offer Signal . . . . . . . . . . . . . .22 7.6. Peer Update ACK Signal. . . . . . 21 8.3. Session Initialization Message . . . . . . . . . . .23 7.7. Peer Termination Signal. . 21 8.4. Session Initialization Response Message . . . . . . . . . 22 8.5. Session Update Message . . . . . .24 7.8. Peer Termination ACK Signal. . . . . . . . . . . 24 8.6. Session Update Response Message . . . .25 7.9. Destination Up Signal. . . . . . . . . 25 8.7. Session Termination Message . . . . . . . . .25 7.10. Destination Up ACK Signal. . . . . . 25 8.8. Session Termination Response Message . . . . . . . . . . 267.11.8.9. DestinationDown SignalUp Message . . . . . . . . . . . . . . . . .27 7.12.26 8.10. DestinationDown ACK Signal . .Up Response Message . . . . . . . . . . . . . 277.13.8.11. DestinationUpdate SignalDown Message . . . . . . . . . . . . . . . . 287.14. Heartbeat Signal8.12. Destination Down Response Message . . . . . . . . . . . . 28 8.13. Destination Update Message . . . . . . . .29 7.15. Link Characteristics Request Signal. . . . . . . 29 8.14. Heartbeat Message . . . .29 7.16. Link Characteristics ACK Signal. . . . . . . . . . . . .30 8. DLEP Data Items. . . 30 8.15. Link Characteristics Request Message . . . . . . . . . . 30 8.16. Link Characteristics Response Message . . . . . . . . . . 318.1.9. DLEPVersionData Items . . . . . . . . . . . . . . . . . . . . . . . 328.2.9.1. Status . . . . . . . . . . . . . . . . . . . . . . . . . 338.3.9.2. IPv4 Connection Point . . . . . . . . . . . . . . . . . .34 8.4.35 9.3. IPv6 Connection Point . . . . . . . . . . . . . . . . . .35 8.5.36 9.4. Peer Type . . . . . . . . . . . . . . . . . . . . . . . .36 8.6.37 9.5. Heartbeat Interval . . . . . . . . . . . . . . . . . . .36 8.7.38 9.6. Extensions Supported . . . . . . . . . . . . . . . . . .37 8.8. Experimental Definition . . . . . . . . . . . . . . . . . 38 8.9.39 9.7. MAC Address . . . . . . . . . . . . . . . . . . . . . . .38 8.10.39 9.8. IPv4 Address . . . . . . . . . . . . . . . . . . . . . .39 8.11.40 9.9. IPv6 Address . . . . . . . . . . . . . . . . . . . . . .40 8.12.41 9.10. IPv4 Attached Subnet . . . . . . . . . . . . . . . . . .40 8.13.42 9.11. IPv6 Attached Subnet . . . . . . . . . . . . . . . . . .41 8.14.42 9.12. Maximum Data Rate (Receive) . . . . . . . . . . . . . . .42 8.15.43 9.13. Maximum Data Rate (Transmit) . . . . . . . . . . . . . .43 8.16.44 9.14. Current Data Rate (Receive) . . . . . . . . . . . . . . .43 8.17.44 9.15. Current Data Rate (Transmit) . . . . . . . . . . . . . .44 8.18.45 9.16. Latency . . . . . . . . . . . . . . . . . . . . . . . . .45 8.19.46 9.17. Resources (Receive) . . . . . . . . . . . . . . . . . . .46 8.20.47 9.18. Resources (Transmit) . . . . . . . . . . . . . . . . . .46 8.21.47 9.19. Relative Link Quality (Receive) . . . . . . . . . . . . .47 8.22.48 9.20. Relative Link Quality (Transmit) . . . . . . . . . . . .48 8.23.49 9.21. Link CharacteristicsACKResponse Timer . . . . . . . . . . .. . 48 9.49 10. Credit-Windowing . . . . . . . . . . . . . . . . . . . . . .49 9.1.50 10.1. Credit-WindowingSignals .Messages . . . . . . . . . . . . . . .49 9.1.1.51 10.1.1. Destination UpSignalMessage . . . . . . . . . . . . . . .. 49 9.1.2.51 10.1.2. Destination UpACK Signal . .Response Message . . . . . . . . . .. . 50 9.1.3.51 10.1.3. Destination UpdateSignal .Message . . . . . . . . . . . . .50 9.2.51 10.2. Credit-Windowing Data Items . . . . . . . . . . . . . .. 50 9.2.1.52 10.2.1. Credit Grant . . . . . . . . . . . . . . . . . . . .51 9.2.2.52 10.2.2. Credit Window Status . . . . . . . . . . . . . . . .52 9.2.3.53 10.2.3. Credit Request . . . . . . . . . . . . . . . . . . .52 10.54 11. Security Considerations . . . . . . . . . . . . . . . . . . .53 11.55 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . .53 11.1.55 12.1. Registrations . . . . . . . . . . . . . . . . . . . . .53 11.2.55 12.2. Expert Review: Evaluation Guidelines . . . . . . . . . .54 11.3. Signal56 12.3. Signal/Message Type Registration . . . . . . . . . . . .. . . . 54 11.4.56 12.4. DLEP Data Item Registrations . . . . . . . . . . . . . .55 11.5.56 12.5. DLEP Status Code Registrations . . . . . . . . . . . . . 5611.6.12.6. DLEP Extensions Registrations . . . . . . . . . . . . . 5611.7.12.7. DLEP Well-known Port . . . . . . . . . . . . . . . . . . 5711.8.12.8. DLEP Multicast Address . . . . . . . . . . . . . . . . . 5712.13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 5713.14. References . . . . . . . . . . . . . . . . . . . . . . . . . 5713.1.14.1. Normative References . . . . . . . . . . . . . . . . . . 5713.2.14.2. Informative References . . . . . . . . . . . . . . . . . 57 Appendix A.Peer LevelDiscovery Signal Flows . . . . . . . . . . . . . .57 A.1. Discovery . . . . . . . . .. 58 Appendix B. Peer Level Message Flows . . . . . . . . . . . . . .57 A.2.58 B.1. Session Initialization . . . . . . . . . . . . . . . . . 58A.3.B.2. Session Initialization - Refused . . . . . . . . . . . . 59A.4.B.3. Router Changes IP Addresses . . . . . . . . . . . . . . . 59A.5.B.4. Modem Changes Session-wide Metrics . . . . . . . . . . . 59A.6.B.5. Router Terminates Session . . . . . . . . . . . . . . . . 60A.7.B.6. Modem Terminates Session . . . . . . . . . . . . . . . . 60A.8.B.7. Session Heartbeats . . . . . . . . . . . . . . . . . . . 61A.9.B.8. Router Detects a Heartbeat timeout . . . . . . . . . . . 62A.10.B.9. Modem Detects a Heartbeat timeout . . . . . . . . . . . . 63 AppendixB.C. Destination Specific Signal Flows . . . . . . . . . 63B.1.C.1. Common Destination Signaling . . . . . . . . . . . . . . 63B.2.C.2. Multicast Destination Signaling . . . . . . . . . . . . . 64B.3.C.3. Link Characteristics Request . . . . . . . . . . . . . . 64 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 65 1. Introduction There exist today a collection of modem devices that control links of variable datarate and quality. Examples of these types of links include line-of-sight (LOS) terrestrial radios, satellite terminals, and cable/DSL modems. Fluctuations in speed and quality of these links can occur due to configuration, or on a moment-to-moment basis, due to physical phenomena like multipath interference, obstructions, rain fade, etc. It is also quite possible that link quality and datarate vary with respect to individual destinations on a link, and with the type of traffic being sent. As an example, consider the case of an 802.11 access point, serving 2 associated laptop computers. In this environment, the answer to the question "What is the datarate on the 802.11 link?" is "It depends on which associated laptop we're talking about, and on what kind of traffic is being sent." While the first laptop, being physically close to the access point, may have a datarate of 54Mbps for unicast traffic, the other laptop, being relatively far away, or obstructed by some object, can simultaneously have a datarate of only 32Mbps for unicast. However, for multicast traffic sent from the access point, all traffic is sent at the base transmission rate (which is configurable, but depending on the model of the access point, is usually 24Mbps or less). In addition to utilizing variable datarate links, mobile networks are challenged by the notion that link connectivity will come and go over time, without an effect on a router's interface state (Up or Down). Effectively utilizing a relatively short-lived connection is problematic in IP routed networks, as routing protocols tend to rely on interface state and independent timers at OSI Layer 3 to maintain network convergence (e.g., HELLO messages and/or recognition of DEAD routing adjacencies). These dynamic connections can be better utilized with an event-driven paradigm, where acquisition of a new neighbor (or loss of an existing one) is signaled, as opposed to a paradigm driven by timers and/or interface state. Another complicating factor for mobile networks are the different methods of physically connecting the modem devices to the router. Modems can be deployed as an interface card in a router's chassis, or as a standalone device connected to the router via Ethernet or serial link. In the case of Ethernet attachment, with existing protocols and techniques, routing software cannot be aware of convergence events occurring on the radio link (e.g., acquisition or loss of a potential routing neighbor), nor can the router be aware of the actual capacity of the link. This lack of awareness, along with the variability in datarate, leads to a situation where finding the (current) best route through the network to a given destination is difficult to establish and properly maintain. This is especially true of demand-based access schemes such as Demand Assigned Multiple Access (DAMA) implementations used on some satellite systems. With a DAMA-based system, additional datarate may be available, but will not be used unless the network devices emit traffic at a rate higher than the currently established rate. Increasing the traffic rate does not guarantee additional datarate will be allocated; rather, it may result in data loss and additional retransmissions on the link. Addressing the challenges listed above, the co-authors have developed the Dynamic Link Exchange Protocol, or DLEP. The DLEP protocol runs between a router and its attached modem devices, allowing the modem to communicate link characteristics as they change, and convergence events (acquisition and loss of potential routing destinations). The following diagrams are used to illustrate the scope of DLEP packets. |-------Local Node-------| |-------Remote Node------| | | | | +--------+ +-------+ +-------+ +--------+ | Router |=======| Modem |{~~~~~~~~}| Modem |=======| Router | | | | Device| | Device| | | +--------+ +-------+ +-------+ +--------+ | | | Link | | | |-DLEP--| | Protocol | |-DLEP--| | | | (e.g. | | | | | | 802.11) | | | Figure 1: DLEP Network In Figure 1, when the local modem detects the presence of a remote node, it (the local modem) sends asignalmessage to its router via the DLEP protocol. Thesignalmessage consists of an indication of what change has occurred on the link (e.g., presence of a remote node detected), along with a collection of DLEP-defined Data Items that further describe the change. Upon receipt of thesignal,message, the local router may take whatever action it deems appropriate, such as initiating discovery protocols, and/or issuing HELLO messages to converge the network. On a continuing, as-needed basis, the modem devices use DLEP to report any characteristics of the link (datarate, latency, etc.) that have changed. DLEP is independent of the link type and topology supported by the modem. Note that the DLEP protocol is specified to run only on the local link between router and modem. Some over the air signaling may be necessary between the local and remote modem in order to provide some parameters in DLEPsignalsmessages between the local modem and local router, but DLEP does not specify how such over the air signaling is carried out. Over the air signaling is purely a matter for the modem implementer. Figure 2 shows how DLEP can support a configuration where routers are connected with different link types. In this example, Modem A implements a point-to-point link, and Modem B is connected via a shared medium. In both cases, the DLEP protocol is used to report the characteristics of the link (datarate, latency, etc.) to routers. The modem is also able to use the DLEP session to notify the router when the remote node is lost, shortening the time required to re- converge the network. +--------+ +--------+ +----+ Modem A| | Modem A+---+ | | Device | <===== // ======> | Device | | | +--------+ P-2-P Link +--------+ | +---+----+ +---+----+ | Router | | Router | | | | | +---+----+ +---+----+ | +--------+ +--------+ | +-----+ Modem B| | Modem B| | | Device | o o o o o o o o | Device +--+ +--------+ o Shared o +--------+ o Medium o o o o o o o o +--------+ | Modem B| | Device | +---+----+ | | +---+----+ | Router | | | +--------+ Figure 2: DLEP Network with Multiple Modem Devices 1.1. Protocol Overview As mentioned earlier, DLEP defines a set ofsignalsmessages used by modems and their attached routers. Thesignalsmessages are used to communicate events that occur on the physical link(s) managed by the modem: for example, a remote node entering or leaving the network, or that the link has changed. Associated with thesesignalsmessages are a set of data items - information that describes the remote node (e.g., address information), and/or the characteristics of the link to the remote node. The protocol is defined as a collection of type-length-value (TLV) based formats, specifying thesignalsmessages that are exchanged between a router and a modem, and the data items associated with thesignal.message. This document specifies transport of DLEPsignalsmessages and data items via the TCP transport, with a UDP-based discovery mechanism. Other transports for the protocol are possible, but are outside the scope of this document. DLEP uses a session-oriented paradigm between the modem device and its associated router. If multiple modem devices are attached to a router (as in Figure 2), or the modem supports multiple connections (via multiple logical or physical interfaces), then separate DLEP sessions exist for each modem or connection. This router/modem session provides a carrier for information exchange concerning 'destinations' that are available via the modem device. A 'destination' can be either physical (as in the case of a specific far-end router), or a logical destination (as in a Multicast group). As such, all of the destination-level exchanges in DLEP can be envisioned as building an information base concerning the remote nodes, and the link characteristics to those nodes. Multicast traffic destined for the variable-quality network (the network accessed via the DLEP modem) is handled in IP networks by deriving a Layer 2 MAC address based on the Layer 3 address. Leveraging on this scheme, multicast traffic is supported in DLEP simply by treating the derived MAC address as any other 'destination' (albeit a logical one) in the network. To support these logical destinations, one of the DLEP participants (typically, the router) informs the other as to the existence of the logical destination. The modem, once it is aware of the existence of this logical destination, reports link characteristics just as it would for any other destination in the network. The specific algorithms a modem would use to derive metrics on multicast (or logical) destinations are outside the scope of this specification, and is left to specific implementations to decide. 1.2. Requirements The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14, RFC 2119 [RFC2119]. 2. Assumptions Routers and modems that exist as part of the same node (e.g., that are locally connected) can use a discovery technique to locate each other, thus avoiding a priori configuration. The router is responsible for initializing the discovery process, using the Peer Discovery signal (Section7.1).8.1). DLEP uses a session-oriented paradigm. A router and modem form a session by completing the discovery and initialization process. This router-modem session persists unless or until it either (1) times out, based on the timeout values supplied, or (2) is explicitly torn down by one of the participants. Note that while use of timers in DLEP is optional, it is strongly RECOMMENDED that implementations choose to run with timers enabled. DLEP assumes that the MAC address for delivering data traffic is the MAC specified in the Destination Upsignalmessage (Section7.9).8.9). No manipulation or substitution is performed; the MAC address supplied in Destination Up is used as the OSI Layer 2 Destination MAC address. DLEP also assumes that MAC addresses MUST be unique within the context of a router-modem session. Additionally, DLEP can support MAC addresses in either EUI-48 or EUI-64 format, with the restriction that ALL MAC addresses for a given DLEP session MUST be in the same format, and MUST be consistent with the MAC address format of the connected modem (e.g., if the modem is connected to the router with an EUI-48 MAC, all destination addresses via that modem MUST be expressed in EUI-48 format). DLEP uses UDP multicast for single-hopdiscovery,discovery signalling, and TCP for transport of the controlsignals.messages. Therefore, DLEP assumes that the modem and router have topologically consistent IP addresses assigned. It is RECOMMENDED that DLEP implementations utilize IPv6 link-local addresses to reduce the administrative burden of address assignment. Destinations can be identified by either the router or the modem, and represent a specific destination (e.g., an address) that exists on the link(s) managed by the modem. A destination MUST contain a MAC address, it MAY optionally include a Layer 3 address (or addresses). Note that since a destination is a MAC address, the MAC could reference a logical destination, as in a derived multicast MAC address, as well as a physical device. As destinations are discovered, DLEP routers and modems build an information base on destinations accessible via the modem. The DLEPsignalsmessages concerning destinations thus become the way for routers and modems to maintain, and notify each other about, an information base representing the physical and logical (e.g., multicast) destinations accessible via the modem device. The information base would contain addressing information (i.e. MAC address, and OPTIONALLY, Layer 3 addresses), link characteristics (metrics), and OPTIONALLY, flow control information (credits). DLEP assumes that anysignalmessage not understood by a receiver MUST result in an error indication being sent to the originator, and also MUST result in termination of the session between the DLEP peers. Any DLEP data item not understood by a receiver MUST also result in termination of the session. DLEP assumes that security on the session (e.g., authentication of session partners, encryption of traffic, or both) is dealt with by the underlying transport mechanism (e.g., by using a transport such as TLS [RFC5246]). This document specifies an implementation of the DLEPsignals and data itemsmessages running over the TCP transport. It is assumed that DLEP running over other transport mechanisms would be documented separately. 3. Core Features andOptionalExtensions DLEP has a core set ofsignalssignals, messages and data items that MUST beprocessedparsed without error by an implementation in order to guarantee interoperability and therefore make the implementation DLEP compliant. This document definesthe corethis set ofsignalssignals, messages and data items, listing them as'mandatory'.'core'. It should be noted that some coresignalssignals, messages and data items might not be used during the lifetime of a single DLEP session, but a compliant implementation MUST support them. While this document represents the best efforts of the working group to be functionally complete, it is recognized that extensions to DLEP will in all likelihood be necessary as more link types are used.To support future extension of DLEP, this document describes an extension negotiation capability to be used during session initialization via the Extensions Supported data item, documented in Section 8.7 of this document. All extensions are considered OPTIONAL. Only the DLEP functionality listed as 'mandatory' is required by implementation in order to be DLEP compliant. This specification defines one extension, Credit windowing, exposed via the Extensions Supported mechanism that implementations MAY choose to implement, or to omit. 3.1. Negotiation of Optional Extensions Optional extensions supported by an implementation MUST be declared to potential DLEP peers using the Extensions Supported data item (Section 8.7) during the session initialization sequence. Once both peers have exchanged initialization signals, an implementation MUST NOT emit any signal or data item associated with an optional extension that was not specified in the received initialization signal from its peer. 3.2. Protocol Extensions If/whenIf interoperable protocol extensions are required, theyshouldMUST be standardized either as an update to this document, or as an additional stand-alone specification. The requests forIANA-controlledIANA- controlled registries in this document contain sufficientreservedReserved space,bothin terms of DLEPsignals and DLEPsignals, messages, dataitems,items and status codes, to accommodate future extensions to the protocol and the data transferred.3.3. Experimental Signals and Data ItemsAll extensions are considered OPTIONAL. Extensions may be negotiated on a per-session basis during session initialization via the Extensions Supported mechanism. Only the DLEP functionality listed as 'core' is required by an implementation in order to be DLEP compliant. This specification defines one extension, Credit Windowing, that devices MAY choose to implement. 3.1. Experiments This document requests Private Use numbering space inboththe DLEPsignal andsignal/message, data item and status code registries for experimental items. The intent is to allow for experimentation witheither (1)new signals,(2) new data items, or (3) both new signals and newmessages, data items, and/or status codes, while still retaining the documented DLEP behavior.If a given experiment proves successful, it SHOULD be documented as an update to this document, or as a stand- alone specification.Use of the experimental signals, messages, data items, status codes, or behaviors MUST be announcedby inclusion of an Experimental Definition data item (Section 8.8)as Extensions, using extension identifiers from the Private Use space in the Extensions Supported registry (Table 4), during session initialization with a value agreed upon (a priori) between the participating peers.The exact mechanism for a priori communication of the experimental definition formats is beyond the scope of this document.MultipleExperimental Definition data itemsexperiments MAYappearbe announced in thePeer Initialization/PeerSession InitializationACK sequence.messages. However, use of multiple experiments in a singlepeersession could lead to interoperability issues or unexpected results (e.g.,redefinitionclashes of experimentalsignals and/orsignals, messages, dataitems),items and/or status code types), and is therefore discouraged. It is left to implementations to determine the correct processing path (e.g., a decision on whether to terminate thepeersession, or to establish a precedence of the conflicting definitions) if such conflicts arise. 4. Metrics DLEP includes the ability for the router and modem to communicate metrics that reflect the characteristics (e.g., datarate, latency) of the variable-quality link in use. DLEP doesNOTnot specify how a given metric value is to be calculated, rather, the protocol assumes that metrics have been calculated with a 'best effort', incorporating all pertinent data that is available to the modem device. DLEP allows for metrics to be sent within two contexts - metrics for a specific destination within the network (e.g., a specific router), and'modem-wide'per-session (those that apply to all destinations accessed via the modem). Most metrics can be further subdivided into transmit and receive metrics.Metrics supplied on DLEP Peer signals are, by definition, modem-wide;In cases where metricssupplied on Destination signals are, by definition, usedare provided at session level, the receiver MUST propagate the metrics to all entries in its information base for destinations that are accessed via thespecific logical destination only.originator. DLEP modem implementations MUST announce allsupportedmetricitems,items that will be reported during the session, and provide default values for those metrics, in thePeerSession InitializationACK signalResponse message (Section7.4).8.4). In order tointroduceuse anewmetrictype, DLEPtype that was not included in the Session Initialization Response message, modem implementations MUST terminate the session with the router (via thePeerSession Terminatesignalmessage (Section7.7)),8.7)), andallow for session re-establishment.establish a new session. It is left to implementations to choose sensible default values based on their specific characteristics. Modems having static (non- changing) link metric characteristics MAY report metrics only once for a given destination (or once on a modem-wide basis, if all connections via the modem are of this static nature).The approach of allowing for different contexts for metric data increasesA DLEP participant MAY send metrics both in a session context (via theflexibilitySession Update message) andthe complexity of using metric data. This document details the mechanism whereby the data is transmitted, however, thea specificalgorithms (precedence, etc.)destination context (via Destination Update) at any time. The heuristics forutilizing the dual-contextapplying received metricsare out of scope and not addressed by this document.is left to implementations. 4.1. Mandatory Metrics As mentioned above, DLEP modem implementations MUST announce all supported metric items duringsession initialization.the Session Initialization state. However,an implementationa modem MUST include the following list ofmetrics:metrics in the Session Initialization Response message (Section 8.4): o Maximum Data Rate (Receive) (Section8.14)9.12) o Maximum Data Rate (Transmit) (Section8.15)9.13) o Current Data Rate (Receive) (Section8.16)9.14) o Current Data Rate (Transmit) (Section8.17)9.15) o Latency (Section8.18)9.16) 5. DLEP Session FlowFor routers supporting DLEP, support of Discovery is optional. Discovery is initiated in theAll DLEPmodem by sendingpeers transition through four (4) distinct states during the lifetime of a DLEP session: o Peer DiscoverySignal (Section 7.1)o Session Initialization o In-Session o Session Termination The Peer Discovery state is OPTIONAL toa well-known multicast address. However, supportimplement forreceipt and processing of the signalrouters. If it is used, this state isoptional in the router (see Appendix A for flow diagrams of the discovery signal). Due to the optional (ontherouter) support for discovery, normal session flowinitial state. If it isdescribed for bothnot used, then one or more preconfigured address/port combinations SHOULD be provided to the'Discovery case',router, and the'Configured case'. Again, for modem implementations of DLEP,device starts in the Session Initialization state. Modems MUST supportof Discovery is mandatory; therefore, that istheonly case to be described.Peer Discovery state. 5.1.DLEP Router session flow -Peer Discoverycase If the DLEP router implementation is utilizing the optional discovery mechanism, thenState In theimplementation will initialize a UDP socket, binding it to an arbitrary port. This UDP socket is used toPeer Discovery state, routers sendtheUDP packets containing a Peer Discovery signal (Section7.1)8.1) to the DLEPlink-localwell-known multicast address (Section 12.8) and port(TBD). The implementationnumber (Section 12.7) then await a unicast UDP packet containing a Peer Offer signal (Section 8.2) from a modem. While in the Peer Discovery state, Peer Discovery signals MUST be sent repeatedly by a router, at regular intervals; every three (3) seconds is RECOMMENDED. In the Peer Discovery state, the modem waits for incoming Peer Discovery signals on the DLEP well-known multicast address and port. On receipt of a valid signal, it MUST unicast a Peer Offer signal(Section 7.2), whichto the source address of the received UDP packet. Peer Offer signals MAY contain the unicast address and port for TCP-based communication with aDLEPmodem, via the IPv4 Connection Point data item (Section8.3)9.2) or the IPv6 Connection Point data item (Section8.4).9.3), on which it is prepared to accept an incoming TCP connection. The modem then begins listening for incoming TCP connections, and, having accepted one, enters the Session Initialization state. Anything other than Peer Discovery signals received on the UDP socket MUST be silently dropped. Modems SHOULD be prepared to accept a TCP connection from a router that is not using the Discovery mechanism, i.e. a connection attempt that occurs without a preceeding Peer Discovery signal. The modem MUST accept a TCP connection on only one (1) address/port combination per session. Routers MUST use one or more of the modem address/port combinations from the Peer Offer signalMAY contain multiple IP Connection Point data items.or from a priori configuration to establish a new TCP connection to the modem. If more than oneIP Connection Point data itemsmodem address/port combinations isin the Peer Offer,available, router implementations MAY use their own heuristics to determine thebestorder in which they are tried. If a TCP connection cannot be achieved using any of the address/portcombination.combinations and the Discovery mechanism is in use, then the router SHOULD resume issuing Peer Discovery signals. If no IP Connection Point data items are included in the Peer Offer signal, thereceiverrouter MUST use the origin address of the signal as the IP address, and the DLEP well-known portnumber (Section 11.7) to establish thenumber. Once a TCPconnection. At this point,connection has been established with the modem, the routerimplementation MAY either destroybegins a new session and enters theUDP socket, or continueSession Initialization state. It is up toissuethe router implementation if Peer Discovery signals continue to be sent after thelink-local address/port combination. In either case, the TCP session initialization occurs as in the configured case. 5.2. DLEP Router session flow - Configured case When a DLEP router implementationdevice hasthe address and port information for a TCP connectiontransitioned toa modem (obtained either via configuration or via the discovery process described above),therouter will initialize and bind a TCP socket. This socket is used to connect toSession Initialization state. 5.2. Session Initialization State On entering theDLEP modem software. After a successful TCP connect,Session Initialization state, the routerimplementationMUSTissuesend aPeerSession Initializationsignalmessage (Section7.3)8.3) to theDLEPmodem.After sending the Peer Initialization, theThe routerimplementationMUST then wait for receipt of aPeerSession InitializationACK signalResponse message (Section7.4)8.4) from the modem. Receipt of thePeerSession InitializationACK signalResponse message containing a Status data item (Section8.2)9.1) with value 'Success', see Table 3, indicates that the modem has received and processed thePeer Initialization,Session Initialization message, and thesessionrouter MUST transition to the'in session'In-Session state.At this point, signals regarding destinations inOn entering thenetwork, and/or Peer Update signals (Section 7.5), can flow onSession Initialization state, theDLEP session betweenmodem MUST wait for receipt of a Session Initialization message from the router. Upon receipt androuter, and Heartbeat signals can begin to flow, if Heartbeats are used. The 'in session' state is maintained until onesuccessful parsing of a Session Initialization message, thefollowing conditions occur: o The session is explicitly terminated (using Peer Termination), or o The session times out, based on supplied timeout values. 5.3. DLEP Modem session flow DLEPmodemimplementationsMUSTsupport the discovery mechanism. Therefore, the normal flow is as follows: The implementation will initializesend aUDP socket, binding that socketSession Initialization Response message, and the session MUST transition to the In-Session state. As mentioned before, DLEPlink-local multicast address (TBD) andprovides an extension negotiation capability to be used in theDLEP well- known port number (also TBD). TheSession Initialization state. Extensions supported by an implementationwill then initialize a TCP socket, on a unicast address and port. This socket is usedMUST be declared tolisten for incoming TCP connection requests. Whenpotential DLEP peers using themodemExtensions Supported data item (Section 9.6). Once both peers have exchanged initialization messages, an implementation MUST NOT emit any message, signal, data item or status code associated with an extension that was not specified in the received initialization message from its peer. If the router receives any message other than aPeer Discovery signal (Section 7.1) on the UDP socket,valid Session Initialization Response, itresponds by issuingMUST send aPeer Offer signalSession Termination message (Section7.2)8.7) with a relevant status code, e.g. 'Unexpected Message', see Table 3, and transition to thesender of the Peer Discovery signal. The Peer Offer signal MAY contain the unicast address and port ofSession Termination state. If thelistening TCP socket, as described above. A DLEPmodemimplementation MAY respond with ALL address/port combinations that have an active TCP listen posted. Anythingreceives any message other thanPeer Discovery signals received on the UDP socket MUST be silently dropped. WhenSession Initialization, or it fails to parse theDLEP modem implementation accepts a connection via TCP,received message, it MUSTwait for receipt of a Peer Initialization signal (Section 7.3), sent by the router. Upon receiptNOT send any message, andsuccessful parsing of a Peer Initialization signal, the modemMUSTrespond with a Peer Initialization ACK signal (Section 7.4). Theterminate the TCP connection, then restart at the Peer Discovery state. As mentioned before, the Session InitializationACK signalResponse message MUST contain metric data items for ALLsupported metrics.metrics that will be used during the session. If an additional metric is to beintroduced,introduced after the session has started, theDLEPsession between router and modem MUST be terminated and restarted, and the new metric described ina Peer Initialization ACK signal. OncethePeer Initialization signal (Section 7.3) and Peernext Session InitializationACK signal (Section 7.4) have been exchanged,Response message. 5.3. In-Session State In thesession is transitionedIn-Session state, messages can flow in both directions between peers, indicating changes to the'in session' state. As insession state, therouter case, whenarrival or departure of reachable destinations, or changes of the'in session'stateis reached, signals regarding destinations in the network, and/or Peer Update signals (Section 7.5), can flow onof theDLEP session between modem and router, and Heartbeat signals can beginlinks toflow, if Heartbeats are used. The 'in session' state persists untilthesession is explicitly terminated (using Peer Termination), or it times out (based on timeout values). 5.4. Common Session Flowdestinations. In order to maintain thesession between router and modem,In-Session state, periodic Heartbeatsignalsmessages (Section7.14)8.14) MAY beexchanged.exchanged between router and modem. Thesesignalsmessages are intended to keep the session alive, and to verify bidirectional connectivity between the two participants.If heartbeat signals are exchanged, they do not begin until the DLEP peer session has entered the 'in session' state.Each DLEP peer is responsible for the creation of heartbeatsignals.messages. Receipt of any valid DLEPsignal SHOULDmessage MUST reset the heartbeat interval timer (i.e., valid DLEPsignalsmessages take the place of, and obviate the need for, Heartbeatsignals).messages). DLEPalsoprovides aPeerSession Updatesignalmessage (Section7.5),8.5), intended to communicate some change in status (e.g., a change of layer 3 address parameters, or a modem-wide link change). In addition to thelocal (Peer level) signals above,session messages, the participants will transmitDLEP signalsmessages concerning destinations in the network. Thesesignalsmessages trigger creation/maintenance/deletion of destinations in the information base of the recipient. For example, a modem will inform its attached router of the presence of a new destination via the Destination Upsignalmessage (Section7.9).8.9). Receipt of a Destination Up causes the router to allocate the necessary resources, creating an entry in the information base with the specifics (i.e. MAC Address, Latency, Data Rate, etc.) of the destination. The loss of a destination is communicated via the Destination Downsignalmessage (Section7.11),8.11), and changes in status to the destination (e.g., varying link quality, or addressing changes) are communicated via the Destination Updatesignalmessage (Section7.13).8.13). The information on a given destination will persist in the router's information base until (1) a Destination Downsignalmessage is received, indicating that the modem has lost contact with the remote node, or (2) the router/modemsession terminates, indicating that the router has lost contact with its own local modem. Metrics can be expressed within the context of a specific destination via the Destination Update signal, or on a modem-wide basis via the Peer Update signal. In cases where metrics are provided at peer level, the receiver MUST propagate the metricstransitions toall entries in its information base for destinations that are accessed viatheoriginator. A DLEP participant MAY send metrics both in a router/ modem session context (via the Peer Update signal) and a specific destination context (via Destination Update) at any time. The heuristics for applying received metrics is left to implementations.Session Termination state. In addition to receiving metrics about the link, DLEP provides asignalmessage allowing a router to request a different datarate, or latency, from the modem. Thissignalmessage is referred to as the Link Characteristics Requestsignalmessage (Section7.15),8.15), and gives the router the ability to deal with requisite increases (or decreases) of allocated datarate/latency in demand-based schemes in a more deterministic manner. The In-Session state is maintained until one of the following conditions occur: o The implementation terminates the session by sending a Session Termination message (Section 8.7)), or o The DLEP peer terminates the session, indicated by receiving a Session termination message. The implementation MUST then transition to the Session Termination state. 5.4. Session Termination State When a DLEP implementation enters the Session Termination state after sending a Session Termination message (Section 8.7) as the result of an invalid message or error, it MUST wait for a Session Termination Response message (Section 8.8) from its peer. If Heartbeat messages (Section 8.14) are in use, senders SHOULD allow four (4) heartbeat intervals to expire before assuming that the peer is unresponsive, and continuing with session termination. If Heartbeat messages are not in use, then if is RECOMMENDED that an interval of eight (8) seconds be used. When a DLEP implementation enters the Session Termination state having received a Session Termination message from its peer, it MUST immediately send a Session Termination Response. The sender and receiver of a Session Termination message MUST release all resources allocated for the session, and MUST eliminate all destinations in the information base accessible via the peer represented by the session. No Destination Down messages (Section 8.11) are sent. Any messages received after either sending or receiving a Session Termination message MUST be silently ignored. Once Session Termination messages have been exchanged, or timed out, the device MUST terminate the TCP connection to the peer, and return to the relevant initial state. 6. DLEP SignalStructureand Message ProcessingCommunication betweenMost messages in DLEPpeers consistsare members of abidirectional streamrequest/response pair, e.g. Destination Up message (Section 8.9), and Destination Up Response message (Section 8.10). These pairs of messages define an implicit transaction model for both session messages and destination messages. As mentioned before, session message pairs control the flow of the session through the various states, e.g. an implementation MUST NOT leave the Session Initialization state until a Session Initialization message (Section 8.3) and Session Initialization Response message (Section 8.4) have been exchanged. Destination message pairs describe the arrival and departure of logical destinations, and control the flow of information about the destinations in the several ways. Prior to the exchange of a pair of Destination Up and Destination Up Response messages, no messages concerning the logical destination identified by the MAC Address data item (Section 9.7) may be sent. An implementation receiving a message with such an unannounced destination MUST terminate the session by issuing a Session Termination message (Section 8.7) with a status code of 'Invalid Destination', see Table 3, and transition to the Session Termination state. The receiver of a Destination Up message MAY decline further messages concerning a given destination by sending a Destination Up Response with a status code of 'Not Interested', see Table 3. Receivers of such responses MUST NOT send further messages concerning that destination to the peer. After exchanging a pair of Destination Down (Section 8.11) and Destination Down Response (Section 8.12) messages, no messages concerning the logical destination identified by the MAC Address data item may be a sent without a previously sending a new Destination Up message. An implementation receiving a message about a down destination MUST terminate the session by issuing a Session Termination message with a status code of 'Invalid Destination' and transition to the Session Termination state. 7. DLEP Signal and Message Structure DLEP defines two protocol units used in two different ways: Signals and Messages. Signals are only used in the Discovery mechanism and are carried in UDP datagrams. Messages are used bi-directionally over a TCP connection between two peers, in the Session Initialization, In-Session and Session Termination states. Both signals(messages), each signal consistingand messages consist of asignalheaderandfollowed by an unordered list of data items.Signal headersHeaders consist of Type and Length information, while data items are encoded as TLV(Type-Length- Value)(Type-Length-Value) structures. In this document, the data items followingthea signal or message header are described as being 'contained in' thesignal. All integer values structures MUST be in network byte-order.signal or message. There is no restriction on the order of data items following asignal,header, and the multiplicity of duplicate data items is defined by the definition of the signal or message declared by the type in thesignalheader. All integers in header fields and values MUST be in network byte- order. 7.1. DLEP Signal Header The DLEP signal header contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 'D' | 'L' | 'E' | 'P' | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Signal Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 3: DLEP Signal Header "DLEP": Every signal MUST start with the characters: U+44, U+4C, U+45, U+50. Signal Type: An 16-bit unsigned integer containing one of the DLEP Signal/Message Type values defined in this document. Length: The length in octets, expressed as a 16-bit unsigned integer, of all of the DLEP data items associated with this signal. This length SHALL NOT include the length of the header itself. The DLEP signal header is immediately followed by one or more DLEP data items, encoded in TLVs, as defined in this document. If an unrecognized, or unexpected signal is received, or a received signal contains unrecognized, invalid, or disallowed duplicate data items, the receiving peer MUSTterminate the session by issuing a Peer Termination signal (Section 7.7) with a Status data item (Section 8.2) containing the most relevant status code, and then closeignore theTCP connection. 6.1.signal. 7.2. DLEPSignalMessage Header The DLEPsignalmessage header contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |SignalMessage Type | Length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure3:4: DLEPSignalMessage HeaderSignalMessage Type: An8-bit16-bit unsigned integer containing one of the DLEPSignalSignal/Message Type values defined in this document. Length: Thelength,length in octets, expressed as a 16-bit unsigned integer, of all of the DLEP data items associated with thissignal.message. This lengthdoes notSHALL NOT include the length of the headeritselfitself. The DLEPSignal Headermessage header is immediately followed by one or more DLEP data items, encoded in TLVs, as defined in this document.6.2.If an unrecognized, or unexpected message is received, or a received message contains unrecognized, invalid, or disallowed duplicate data items, the receiving peer MUST issue a Session Termination message (Section 8.7) with a Status data item (Section 9.1) containing the most relevant status code, and transition to the Session Termination state. 7.3. DLEP Generic Data Item All DLEP data items contain the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ItemType|Type | Length |Value...+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Value... : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure4:5: DLEP Generic Data Item Data Item Type: An8-bit16-bit unsigned integer field specifying the type of data item being sent. Length: Thelength,length in octets, expressed as an8-bit16-bit unsigned integer, of the value field of the data item. This length SHALL NOT include the length of the header itself. Value: A field oflength<Length> octets, which contains data specific to a particular data item.7.8. DLEP Signals and Messages As mentioned above, all DLEP signals begin with the DLEP signalheader structure.header, and all DLEP messages begin with the DLEP message header. Therefore, in the following descriptions of specificsignals,signals and messages, this headerstructureis assumed, and will not be replicated. Following is the set ofMANDATORYcore signals and messages thatmustMUST be recognized by a DLEP compliant implementation. As mentioned before, not allsignalsmessages may be used during a session, but an implementation MUST correctly process thesesignalsmessages when received. Themandatorycore DLEP signals and messages are:+--------+--------------------+----------------------+--------------++-------------+-----------------------------------------------------+ |SignalType Code | Description |Mnemonic+-------------+-----------------------------------------------------+ |Section0 |+--------+--------------------+----------------------+--------------+Reserved |TBD| 1 | Peer Discovery| DLEP_PEER_DISCOVERY | Section 7.1signal (Section 8.1) | |TBD2 | Peer Offer| DLEP_PEER_OFFER | Section 7.2 | | TBD | Peer | DLEP_PEER_INIT | Section 7.3signal (Section 8.2) | | 3 | Session Initialization message (Section 8.3) | | 4 || TBD | Peer | DLEP_PEER_INIT_ACK | Section 7.4 | | |Session InitializationACKResponse message (Section | | | 8.4) |TBD|Peer Update | DLEP_PEER_UPDATE5 |Section 7.5Session Update message (Section 8.5) | |TBD6 |PeerSession UpdateACK | DLEP_PEER_UPDATE_ACK | Section 7.6Response message (Section 8.6) | |TBD7 |PeerSession Termination| DLEP_PEER_TERM | Section 7.7message (Section 8.7) | |TBD8 |PeerSession Termination| DLEP_PEER_TERM_ACK | Section 7.8 | | | ACK | |Response message (Section 8.8) | |TBD9 | Destination Up| DLEP_DEST_UP | Section 7.9message (Section 8.9) | |TBD10 | Destination UpACK | DLEP_DEST_UP_ACK | Section 7.10Response message (Section 8.10) | |TBD11 | Destination Down| DLEP_DEST_DOWN | Section 7.11message (Section 8.11) | |TBD12 | Destination Down| DLEP_DEST_DOWN_ACK | Section 7.12 | | | ACK | |Response message (Section 8.12) | |TBD13 | Destination Update| DLEP_DEST_UPDATE | Section 7.13message (Section 8.13) | |TBD14 | Heartbeat| DLEP_PEER_HEARTBEAT | Section 7.14message (Section 8.14) | |TBD15 | Link| DLEP_LINK_CHAR_REQ | Section 7.15 | | |Characteristics| | | | |Request message (Section 8.15) | || | TBD16 | Link Characteristics Response message (Section |DLEP_LINK_CHAR_ACK|Section 7.16| 8.16) | |Characteristics17-65519 | Reserved for future extensions | | 65520-65534 | Private Use. Available for experiments |ACK| 65535 | Reserved |+--------+--------------------+----------------------+--------------++-------------+-----------------------------------------------------+ Table 1: DLEPSignal Values 7.1.Signal/Message types 8.1. Peer Discovery Signal A Peer Discovery signal SHOULD be sent by a router to discover DLEP modems in the network. The Peer Offer signal (Section7.2)8.2) is required to complete the discovery process. Implementations MAY implement their own retry heuristics in cases where it is determined the Peer Discovery signal has timed out. To construct a Peer Discovery signal, the Signal Type value in the signal header is set toDLEP_PEER_DISCOVERY in1, from Table 1. The Peer Discovery signalMUST contain the following data item: o DLEP Version (Section 8.1) The Peer Discovery signalMAY contain the following data item: o Peer Type (Section8.5) 7.2.9.4) 8.2. Peer Offer Signal A Peer Offer signal MUST be sent by a DLEP modem in response to a valid Peer Discovery signal (Section7.1).8.1). The Peer Offer signal MUST be sent to the unicast address of the originator of the Peer Discovery signal. To construct a Peer Offer signal, the Signal Type value in the signal header is set toDLEP_PEER_OFFER in2, from Table 1. The Peer Offer signalMUST contain the following data item: o DLEP Version (Section 8.1) The Peer Offer signalMAY contain the following data item: o Peer Type (Section8.5)9.4) The Peer Offer signal MAY contain one or more of any of the following data items, with different values: o IPv4 Connection Point (Section8.3)9.2) o IPv6 Connection Point (Section8.4)9.3) The IP Connection Point data items indicate the unicast address the receiver of Peer Offer MUST use when connecting the DLEP TCP session. If multiple IP Connection Point data items are present in the Peer Offer signal, implementations MAY use their own heuristics to select the address to connect to. If no IP Connection Point data items are included in the Peer Offer signal, the receiver MUST use the origin address of the signal as the IP address, and the DLEP well-known port number (Section11.7)12.7) to establish the TCP connection.7.3. Peer8.3. Session InitializationSignalMessage APeerSession Initializationsignalmessage MUST be sent by a router as the firstsignalmessage of the DLEP TCP session. It is sent by the router after a TCP connect to an address/port combination that was obtained either via receipt of a Peer Offer, or from a priori configuration. If any optional extensions are supported by the implementation, they MUST be enumerated in the Extensions Supported data item. If an Extensions Supported data item does not exist in aPeerSession Initializationsignal,message, the receiver of thesignalmessage MUST conclude that there isNOno support for extensions in the sender.If any experimental signals or data items are used by the implementation, they MUST be enumerated in one or more Experimental Definition data items. If there are no Experimental Definition data items in a Peer Initialization signal, the receiver of the signal MUST conclude that no experimental definitions are in use by the sender.Implementations supporting the Heartbeat Interval (Section8.6)9.5) should understand that heartbeats are not fully established until receipt ofPeerSession InitializationACK SignalResponse message (Section7.4),8.4), and should therefore implement their own timeout and retry heuristics for thissignal.message. To construct aPeerSession Initializationsignal,message, theSignalMessage Type value in thesignalmessage header is set toDLEP_PEER_INIT in3, from Table 1. ThePeerSession Initializationsignalmessage MUST contain one of each of the following data items: oDLEP Version (Section 8.1) oHeartbeat Interval (Section8.6)9.5) ThePeerSession Initializationsignalmessage MAY contain one of each of the following data items: o Peer Type (Section8.5)9.4) o Extensions Supported (Section8.7) The Peer Initialization signal MAY contain one or more of any of the following data items, with different values: o Experimental Definition (Section 8.8)9.6) APeerSession Initializationsignalmessage MUST be acknowledged by the receiver issuing aPeerSession InitializationACK signalResponse message (Section7.4). 7.4. Peer8.4). 8.4. Session InitializationACK SignalResponse Message APeerSession InitializationACK signalResponse message MUST be sent in response to a receivedPeerSession Initializationsignalmessage (Section7.3).8.3). ThePeerSession InitializationACK signalResponse message completes the DLEP session establishment; the sender of thesignalmessage should transition toan 'in-session'the In- Session state when thesignalmessage is sent, and the receiver should transition to the'in-session'In-Session state upon receipt (and successful parsing) of an acceptablePeerSession InitializationACK signal.Response message. All supported metric data items MUST be included in thePeerSession InitializationACK signal,Response message, with default values to be used on a 'modem-wide' basis. This can be viewed as the modem 'declaring' all supported metrics at DLEP session initialization. Receipt of any DLEPsignalmessage containing a metric data itemNOTnot included in thePeerSession InitializationACK signalResponse message MUST be treated as an error, resulting in the termination of the DLEP session between router and modem. If any optional extensions are supported by the modem, they MUST be enumerated in the Extensions Supported data item. If an Extensions Supported data item doesNOTnot exist in aPeerSession InitializationACK signal,Response message, the receiver of thesignalmessage MUST conclude that there isNOno support for extensions in the sender.If any experimental signals or data items are used by the implementation, they MUST be enumerated in one or more Experimental Definition data items. If there are no Experimental Definition data items in a Peer Initialization ACK signal, the receiver of the signal MUST conclude that NO experimental definitions are in use by the sender.After thePeer Initialization/PeerSession Initialization/Session InitializationACK signalsResponse messages have been successfully exchanged, implementations MUST only use extensionsand experimental definitionsthat are supported by BOTH peers. To construct aPeerSession InitializationACK signal,Response message, theSignalMessage Type value in thesignalmessage header is set toDLEP_PEER_INIT_ACK in4, from Table 1. ThePeerSession InitializationACK signalResponse message MUST contain one of each of the following data items: oDLEP Version (Section 8.1) oHeartbeat Interval (Section8.6)9.5) o Maximum Data Rate (Receive) (Section8.14)9.12) o Maximum Data Rate (Transmit) (Section8.15)9.13) o Current Data Rate (Receive) (Section8.16)9.14) o Current Data Rate (Transmit) (Section8.17)9.15) o Latency (Section8.18)9.16) ThePeerSession InitializationACK signalResponse message MUST contain one of each of the following data items, if the data item will be used during the lifetime of the session: o Resources (Receive) (Section8.19)9.17) o Resources (Transmit) (Section8.20)9.18) o Relative Link Quality (Receive) (Section8.21)9.19) o Relative Link Quality (Transmit) (Section8.22)9.20) ThePeerSession InitializationACK signalResponse message MAY contain one of each of the following data items: o Status (Section8.2)9.1) o Peer Type (Section8.5)9.4) o Extensions Supported (Section8.7) The Peer Initialization ACK signal MAY contain one or more of any9.6) A receiver ofthe followinga Session Initialization Response message without a Status dataitems,item MUST behave as if a Status data item withdifferent values: o Experimental Definition (Section 8.8) 7.5. Peercode 'Success' had been received. 8.5. Session UpdateSignalMessage APeerSession Updatesignalmessage MAY be sent by a DLEP peer to indicate local Layer 3 address changes, or metric changes on a modem-wide basis. For example, addition of an IPv4 address to the router MAY prompt aPeerSession Updatesignalmessage to its attached DLEP modems. Also, for example, a modem that changes its Maximum Data Rate (Receive) for all destinations MAY reflect that change via aPeerSession Updatesignalmessage to its attached router(s). Concerning Layer 3 addresses, if the modem is capable of understanding and forwarding this information (via proprietary mechanisms), the address update would prompt any remote DLEP modems (DLEP-enabled modems in a remote node) to issue a Destination Updatesignalmessage (Section7.13)8.13) to their local routers with the new (or deleted) addresses. Modems that do not track Layer 3 addresses SHOULD silently parse and ignore Layer 3 data items. ThePeerSession UpdateSignalmessage MUST be acknowledged with aPeerSession UpdateACK signalResponse message (Section7.6).8.6). If metrics are supplied with thePeerSession Updatesignalmessage (e.g., Maximum Data Rate), these metrics are considered to be modem-wide, and therefore MUST be applied to all destinations in the information base associated with the router/modem session. Supporting implementations are free to employ heuristics to retransmitPeerSession Updatesignals.messages. The sending ofPeerSession Updatesignalsmessages for Layer 3 address changes SHOULD cease when either participant (router or modem) determines that the other implementation doesNOTnot support Layer 3 address tracking. To construct aPeerSession Updatesignal,message, theSignalMessage Type value in thesignalmessage header is set toDLEP_PEER_UPDATE in5, from Table 1. ThePeerSession Updatesignalmessage MAY contain one of each of the following data items: o Maximum Data Rate (Receive) (Section8.14)9.12) o Maximum Data Rate (Transmit) (Section8.15)9.13) o Current Data Rate (Receive) (Section8.16)9.14) o Current Data Rate (Transmit) (Section8.17)9.15) o Latency (Section8.18)9.16) o Resources (Receive) (Section8.19)9.17) o Resources (Transmit) (Section8.20)9.18) o Relative Link Quality (Receive) (Section8.21)9.19) o Relative Link Quality (Transmit) (Section8.22)9.20) ThePeerSession Updatesignalmessage MAY contain one or more of the following data items, with different values: o IPv4 Address (Section8.10)9.8) o IPv6 Address (Section8.11)9.9) APeerSession Updatesignalmessage MUST be acknowledged by the receiver issuing aPeerSession UpdateACK signalResponse message (Section7.6). 7.6. Peer8.6). 8.6. Session UpdateACK SignalResponse Message APeerSession UpdateACK signalResponse message MUST be sent by implementations to indicate whether aPeerSession Updatesignalmessage (Section7.5)8.5) was successfully received. To construct aPeerSession UpdateACK signal,Response message, theSignalMessage Type value in thesignalmessage header is set toDLEP_PEER_UPDATE_ACK in6, from Table 1. ThePeerSession UpdateACK signalResponse message MAY contain one of each of the following data items: o Status (Section8.2)9.1) A receiver of aPeerSession UpdateACK signalResponse message without a Status data item MUST behave as if a Status data item with code 'Success' had been received.7.7. Peer8.7. Session TerminationSignalMessage APeerSession Terminationsignalmessage MUST be sent by a DLEP participant when the router/modem session needs to be terminated.Implementations receiving a Peer Termination signal MUST send a Peer Termination ACK signal (Section 7.8) to confirm the termination process. The receiver of a Peer Termination signal MUST release all resources allocated for the router/modem session, and MUST eliminate all destinations in the information base accessible via the router/modem pair represented by the session. Router and modem state machines are returned to the 'discovery' state. No Destination Down signals (Section 7.11) are sent. The sender of a Peer Termination signal is free to define its heuristics in event of a timeout. It may resend the Peer Termination or free resources and return to the 'discovery' state.To construct aPeerSession Terminationsignal,message, theSignalMessage Type value in thesignalmessage header is set toDLEP_PEER_TERM in7, from Table 1. ThePeerSession Terminationsignalmessage MAY contain one of each of the following data items: o Status (Section8.2)9.1) A receiver of aPeerSession Terminationsignalmessage without a Status data item MUST behave as if a Status of 'Unknown reason forPeerSession Termination' has been received. APeerSession Terminationsignalmessage MUST be acknowledged by the receiver issuing aPeerSession TerminationACK signalResponse message (Section7.8). 7.8. Peer8.8). 8.8. Session TerminationACK SignalResponse Message APeerSession TerminationACK signalResponse message MUST be sent by a DLEP peer in response to a receivedPeerSession Terminationsignalmessage (Section7.7).8.7). Receipt of aPeerSession TerminationACK signalResponse message completes the teardown of therouter/ modemrouter/modem session. To construct aPeerSession TerminationACK signal,Response message, theSignalMessage Type value in thesignalmessage header is set toDLEP_PEER_TERM_ACK in8, from Table 1. ThePeerSession TerminationACK signalResponse message MAY contain one of each of the following data items: o Status (Section8.2)9.1) A receiver of aPeerSession TerminationACK signalResponse message without a Status data item MUST behave as if a Status data item with status code 'Success', implying graceful termination, had been received.7.9.8.9. Destination UpSignalMessage A Destination Upsignalmessage can be sent either by the modem, to indicate that a new remote node has been detected, or by the router, to indicate the presence of a new logical destination (e.g., a Multicast group) in the network. A Destination Upsignalmessage MUST be acknowledged by the receiver issuing a Destination UpACK signalResponse message (Section7.10).8.10). The sender of the Destination Upsignalmessage is free to define its retry heuristics in event of a timeout. When a Destination Upsignalmessage is received and successfully processed, the receiver should add knowledge of the new destination to its information base, indicating that the destination is accessible via the modem/router pair. To construct a Destination Upsignal,message, theSignalMessage Type value in thesignalmessage header is set toDLEP_DEST_UP in9, from Table 1. The Destination Upsignalmessage MUST contain one of each of the following data items: o MAC Address (Section8.9)9.7) The Destination Upsignalmessage MAY contain one of each of the following data items: o Maximum Data Rate (Receive) (Section8.14)9.12) o Maximum Data Rate (Transmit) (Section8.15)9.13) o Current Data Rate (Receive) (Section8.16)9.14) o Current Data Rate (Transmit) (Section8.17)9.15) o Latency (Section8.18)9.16) o Resources (Receive) (Section8.19)9.17) o Resources (Transmit) (Section8.20)9.18) o Relative Link Quality (Receive) (Section8.21)9.19) o Relative Link Quality (Transmit) (Section8.22)9.20) The Destination Upsignalmessage MAY contain one or more of the following data items, with different values: o IPv4 Address (Section8.10)9.8) o IPv6 Address (Section8.11)9.9) o IPv4 Attached Subnet (Section8.12)9.10) o IPv6 Attached Subnet (Section8.13)9.11) If the sender has IPv4 and/or IPv6 address information for a destination it SHOULD include the relevant data items in the Destination Upsignal,message, reducing the need for the receiver to probe for any address.7.10.8.10. Destination UpACK SignalResponse Message A DLEP participant MUST send a Destination UpACK signalResponse message to indicate whether a Destination Upsignalmessage (Section7.9)8.9) was successfully processed. To construct a Destination UpACK signal,Response message, theSignalMessage Type value in thesignalmessage header is set toDLEP_DEST_UP_ACK in10, from Table 1. The Destination UpACK signalResponse message MUST contain one of each of the following data items: o MAC Address (Section8.9)9.7) The Destination UpACK signalResponse message MAY contain one of each of the following data items: o Status (Section8.2)9.1) A receiver of a Destination UpACK signalResponse message without a Status data item MUST behave as if a Status data item with status code 'Success' had been received.Implementations are free to define retry heuristics when receiving a Destination Up ACK signal indicating an error. 7.11.8.11. Destination DownSignalMessage A DLEP peer MUST send a Destination Downsignalmessage to report when a destination (a remote node or a multicast group) is no longer reachable. A Destination DownACK signalResponse message (Section7.12)8.12) MUST be sent by the recipient of a Destination Downsignalmessage to confirm that the relevant data has been removed from the information base. The sender of the Destination Downsignalmessage is free to define its retry heuristics in event of a timeout. To construct a Destination Downsignal,message, theSignalMessage Type value in thesignalmessage header is set toDLEP_DEST_DOWN in11, from Table 1. The Destination Downsignalmessage MUST contain one of each of the following data items: o MAC Address (Section8.9) 7.12.9.7) 8.12. Destination DownACK SignalResponse Message A DLEP participant MUST send a Destination DownACK signalResponse message to indicate whether a received Destination Downsignalmessage (Section7.11)8.11) was successfully processed. If successfully processed, the sender of theACKResponse MUST have removed all entries in the information base that pertain to the referenced destination. To construct a Destination DownACK signal,Response message, theSignalMessage Type value in thesignalmessage header is set toDLEP_DEST_DOWN_ACK in12, from Table 1. The Destination DownACK signalResponse message MUST contain one of each of the following data items: o MAC Address (Section8.9)9.7) The Destination DownACK signalResponse message MAY contain one of each of the following data items: o Status (Section8.2)9.1) A receiver of a Destination DownACK signalResponse message without a Status data item MUST behave as if a Status data item with status code 'Success' had been received.Implementations are free to define retry heuristics when receiving a Destination Down ACK signal indicating an error. 7.13.8.13. Destination UpdateSignalMessage A DLEP participant SHOULD send the Destination Updatesignalmessage when it detects some change in the information base for a given destination (remote node or multicast group). Some examples of changes that would prompt a Destination Updatesignalmessage are: o Change in link metrics (e.g., Data Rates) o Layer 3 addressing change To construct a Destination Updatesignal,message, theSignalMessage Type value in thesignalmessage header is set toDLEP_DEST_UPDATE in13, from Table 1. The Destination Updatesignalmessage MUST contain one of each of the following data items: o MAC Address (Section8.9)9.7) The Destination Updatesignalmessage MAY contain one of each of the following data items: o Maximum Data Rate (Receive) (Section8.14)9.12) o Maximum Data Rate (Transmit) (Section8.15)9.13) o Current Data Rate (Receive) (Section8.16)9.14) o Current Data Rate (Transmit) (Section8.17)9.15) o Latency (Section8.18)9.16) o Resources (Receive) (Section8.19)9.17) o Resources (Transmit) (Section8.20)9.18) o Relative Link Quality (Receive) (Section8.21)9.19) o Relative Link Quality (Transmit) (Section8.22)9.20) The Destination Updatesignalmessage MAY contain one or more of the following data items, with different values: o IPv4 Address (Section8.10)9.8) o IPv6 Address (Section8.11) o IPv4 Attached Subnet (Section 8.12) o IPv6 Attached Subnet (Section 8.13) 7.14.9.9) 8.14. HeartbeatSignalMessage A Heartbeatsignalmessage SHOULD be sent by a DLEP participant every N seconds, where N is defined in the Heartbeat Interval data item of thePeerSession Initializationsignalmessage (Section7.3)8.3) orPeerSession InitializationACK signalResponse message (Section7.4).8.4). Note that implementations setting the Heartbeat Interval to 0 effectivelysetsets the interval to an infinite value,therefore, in those cases,therefore thissignalmessage SHOULD NOT be sent. Thesignalmessage is used by participants to detect when a DLEP session partner (either the modem or the router) is no longer communicating. Participants SHOULD allow two (2) heartbeat intervals to expire with no traffic on the router/modem session before initiating DLEP session termination procedures. To construct a Heartbeatsignal,message, theSignalMessage Type value in thesignalmessage header is set toDLEP_PEER_HEARTBEAT in14, from Table 1. There are no valid data items for the Heartbeatsignal. 7.15.message. 8.15. Link Characteristics RequestSignalMessage The Link Characteristics Requestsignalmessage MAY be sent by the router to request that the modem initiate changes for specific characteristics of the link. The request can reference either a real destination (e.g., a remote node), or a logical destination (e.g., a multicast group) within the network. The Link Characteristics Requestsignalmessage MAY contain either a Current Data Rate (CDRR or CDRT) data item to request a different datarate than what is currently allocated, a Latency data item to request that traffic delay on the link not exceed the specified value, or both. A Link CharacteristicsACK signalResponse message (Section7.16)8.16) is required to complete the request. Issuing a Link Characteristics Request with ONLY the MAC Address data item is a mechanism a peer MAY use to request metrics (via the Link CharacteristicsACK)Response) from its partner. The sender of a Link Characteristics Requestsignalmessage MAY attach a timer to the request using the Link CharacteristicsACKResponse Timer data item. If a Link CharacteristicsACK signalResponse message is received after the timer expires, the sender MUST NOT assume that the request succeeded. Implementations are free to define their retry heuristics in event of a timeout. To construct a Link Characteristics Requestsignal,message, theSignalMessage Type value in thesignalmessage header is set toDLEP_LINK_CHAR_REQ in15, from Table 1. The Link Characteristics Requestsignalmessage MUST contain one of each of the following data items: o MAC Address (Section8.9)9.7) The Link Characteristics Requestsignalmessage MAY contain one of each of the following data items: o Link CharacteristicsACKResponse Timer (Section8.23)9.21) o Current Data Rate (Receive) (Section8.16)9.14) o Current Data Rate (Transmit) (Section8.17)9.15) o Latency (Section8.18) 7.16.9.16) 8.16. Link CharacteristicsACK SignalResponse Message A DLEP participant MUST send a Link CharacteristicsACK signalResponse message to indicate whether a received Link Characteristics Requestsignalmessage (Section7.15)8.15) was successfully processed. The Link CharacteristicsACK signalResponse message SHOULD contain a complete set of metric data items, and MUST contain a full set (i.e. those declared in thePeerSession InitializationACK signalResponse message (Section7.4)),8.4)), if metrics were requested by only including a MAC address data item. It MUST contain the same metric types as the request. The values in the metric data items in the Link CharacteristicsACK signalResponse message MUST reflect the link characteristics after the request has been processed. If an implementation is not able to alter the characteristics of the link in the manner requested, then a Status data item with status code 'RequestDenied'Denied', see Table 3, MUST be added to thesignal.message. To construct a Link CharacteristicsRequest ACK signal,Response message, theSignalMessage Type value in thesignalmessage header is set toDLEP_LINK_CHAR_ACK in16, from Table 1. The Link CharacteristicsACK signalResponse message MUST contain one of each of the following data items: o MAC Address (Section8.9)9.7) The Link CharacteristicsACK signalResponse message SHOULD contain one of each of the following data items: o Maximum Data Rate (Receive) (Section8.14)9.12) o Maximum Data Rate (Transmit) (Section8.15)9.13) o Current Data Rate (Receive) (Section8.16)9.14) o Current Data Rate (Transmit) (Section8.17)9.15) o Latency (Section8.18)9.16) The Link CharacteristicsACK signalResponse message MAY contain one of each of the following data items: o Resources (Receive) (Section8.19)9.17) o Resources (Transmit) (Section8.20)9.18) o Relative Link Quality (Receive) (Section8.21)9.19) o Relative Link Quality (Transmit) (Section8.22)9.20) o Status (Section8.2)9.1) A receiver of a Link CharacteristicsACK signalResponse message without a Status data item MUST behave as if a Status data item with status code 'Success' had been received.8.9. DLEP Data Items Following is the list ofMANDATORYcore data items thatmustMUST be recognized by a DLEP compliant implementation. As mentioned before, not all data items need be used during a session, but an implementation MUST correctly process these data items when correctly associated with asignal.signal or message. The core DLEP data items are:+------------+--------------------------------------+---------------++-------------+-----------------------------------------------------+ |Data ItemType Code | Description |Section | +------------+--------------------------------------+---------------++-------------+-----------------------------------------------------+ |TBD | DLEP Version0 |Section 8.1Reserved | |TBD1 | Status| Section 8.2(Section 9.1) | |TBD2 | IPv4 Connection Point| Section 8.3(Section 9.2) | |TBD3 | IPv6 Connection Point| Section 8.4(Section 9.3) | |TBD4 | Peer Type| Section 8.5(Section 9.4) | |TBD5 | Heartbeat Interval| Section 8.6(Section 9.5) | |TBD6 | Extensions Supported| Section 8.7 | | TBD | Experimental Definition | Section 8.8(Section 9.6) | |TBD7 | MAC Address| Section 8.9(Section 9.7) | |TBD8 | IPv4 Address| Section 8.10(Section 9.8) | |TBD9 | IPv6 Address| Section 8.11(Section 9.9) | |TBD10 | IPv4 Attached Subnet| Section 8.12(Section 9.10) | |TBD11 | IPv6 Attached Subnet| Section 8.13(Section 9.11) | |TBD12 | Maximum Data Rate (Receive) MDRR)| Section 8.14(Section 9.12) | |TBD13 | Maximum Data Rate (Transmit) (MDRT)| Section 8.15(Section 9.13) | |TBD14 | Current Data Rate (Receive) (CDRR)| Section 8.16(Section 9.14) | |TBD15 | Current Data Rate (Transmit) (CDRT)| Section 8.17(Section 9.15) | |TBD16 | Latency| Section 8.18(Section 9.16) | |TBD17 | Resources (Receive) (RESR)| Section 8.19(Section 9.17) | |TBD18 | Resources (Transmit) (REST)| Section 8.20(Section 9.18) | |TBD19 | Relative Link Quality (Receive)| Section 8.21 |(RLQR) (Section | |(RLQR)| 9.19) | |TBD20 | Relative Link Quality (Transmit)| Section 8.22 |(RLQT) (Section | |(RLQT)| 9.20) | |TBD21 | Link CharacteristicsACKResponse Timer (Section 9.21) |Section 8.23|+------------+--------------------------------------+---------------+ Table 2: DLEP Data Item Values 8.1. DLEP Version The DLEP Version data item MUST appear in the Peer Discovery (Section 7.1), Peer Offer (Section 7.2), Peer Initialization (Section 7.3) and Peer Initialization ACK22-24 | Credit Windowing (Section7.4) signals. The Version data item is used to indicate the version of the protocol running in the originator. A DLEP implementation SHOULD use this information to decide if the potential session partner is running at a supported level. The DLEP Version10) extension dataitem contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+items |Data Item Type| Length|Major Version25-65407 |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Reserved for future extensions |Minor Version|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+65408-65534 | Private Use. Available for experiments | | 65535 | Reserved | +-------------+-----------------------------------------------------+ Table 2: DLEP Data ItemType: TBD Length: 4 Major Version: The major version of the DLEP protocol, expressed as an 16-bit unsigned integer. Minor Version: The minor version of the DLEP protocol, expressed as an 16-bit unsigned integer. Support of this draft is indicated by setting the Major Version to '1', and the Minor Version to '0' (i.e. Version 1.0). 8.2.types 9.1. Status The Status data item MAY appear in thePeerSession InitializationACKResponse (Section7.4), Peer8.4), Session Termination (Section7.7), Peer8.7), Session TerminationACKResponse (Section7.8), Peer8.8), Session UpdateACKResponse (Section7.6),8.6), Destination UpACKResponse (Section7.10),8.10), Destination DownACKResponse (Section7.12)8.12) and Link CharacteristicsACKResponse (Section7.16) signals.8.16) messages. For thePeerSession TerminationSignalmessage (Section7.7),8.7), the Status data item indicates a reason for the termination. For all acknowledgementsignals,messages, the Status data item is used to indicate the success or failure of the previously receivedsignal.message. The status data item includes an optional Text field that can be used to provide a textual description of the status. The use of the Text field is entirely up to the receiving implementation, i.e., it could be output to a log file or discarded. If no Text field is supplied with the Status data item, the Length field MUST be set to 1. The Status data item contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ItemType|Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Code | Text... : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Data Item Type: TBD Length: 1 + Length oftexttext, in octets Status Code: One of the codes defined in Table 3 below. Text: UTF-8 encoded string, describingan problem,the cause, used for implementation defined purposes. Since this field is used fora description of the problem,description, implementations SHOULD limit characters in this field to printable characters. Implementations receiving this data item SHOULD check for printable characters in the field. An implementation MUST NOT assume the Text field is NUL-terminated.+----------------+-------+------------------------------------------++-------------+---------+-----------+-------------------------------+ | Status Code | Value | Failure | Reason |+----------------+-------+------------------------------------------+| | | Mode | | +-------------+---------+-----------+-------------------------------+ | Success | 0 | Success | Thesignalmessage was processed | | | | | successfully. | | UnknownSignal|TBD1 | Terminate | Thesignalmessage was not | | Message | | | recognized by the | | | | | implementation. | | Unexpected | 2 | Terminate | The message was not expected | | Message | | | while the device was in the | | | | | current state, e.g., a | | | | | Session Initialization | | | | | message (Section 8.3) in the | | | | | In-Session state. | | InvalidData|TBD3 | Terminate | One or more data items in thesignal are| | Data | | | message are invalid, | | | | | unexpected or incorrectly | | | | | duplicated. | |UnexpectedInvalid |TBD4 | Terminate | Thesignal wasdestination provided in | | Destination | | | the message does notexpected whilematch a | | | | | previously announced | | | | | destination. For example, in | | | | | the Link Characteristic | |Signal| |machine was| Response message (Section | | | | | 8.16). | | <Reserved> | 5-90 | Terminate | Reserved for future | | | | | extensions. | | <Private | 91-99 | Terminate | Available for experiments. | | Use> | | | | | Not | 100 | Continue | The receiver is not | | Interested | | | interested in thisstate, e.g.,message | | | | | subject, e.g. aPeerDestination | | | |Initialization signal after session| Up Response message (Section | | | | | 8.10) to indicate no further | |establishment.| | | messages about the | | | | | destination. | | RequestDenied|TBD101 | Continue | The receiverhas not completed therefuses to | | Denied | | | complete the request. | | Timed Out |TBD102 | Continue | Therequestoperation could not becompleted in| | | | | completed in the time | | | | | allowed. | |Invalid<Reserved> |TBD103-243 |The destination provided in the signalContinue | Reserved for future |Destination| |does not match a previously announced| | extensions. | |destination. For example, in the Link<Private | 244-254 | Continue | Available for experiments. |Characteristic Request ACK signal| Use> | | |(Section 7.16).|+----------------+-------+------------------------------------------+ 8.3.| <Reserved> | 255 | Terminate | Reserved. | +-------------+---------+-----------+-------------------------------+ Table 3: DLEP Status Codes A failure mode of 'Terminate' indicates that the session MUST be terminated after sending a response containing the status code. A failure mode of 'Continue' indicates that the session SHOULD continue as normal. 9.2. IPv4 Connection Point The IPv4 Connection Point data item MAY appear in the Peer Offer signal (Section7.2).8.2). The IPv4 Connection Point data item indicates the IPv4 address and, optionally, the TCP port number on the DLEP modem available for connections. If provided, the receiver MUST use this information to perform the TCP connect to the DLEP server. The IPv4 Connection Point data item contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ItemType| LengthType |IPv4 AddressLength | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TCP Port Number (optional) |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Data Item Type: TBD Length: 4 (or 6 if TCP Port included) IPv4 Address: The IPv4 address listening on the DLEP modem. TCP Port Number: TCP Port number on the DLEP modem. If the Length field is 6, the port number specified MUST be used to establish the TCP session. If the TCP Port Number is omitted, i.e. the Length field is 4, the receiver MUST use the DLEP well-known port number (Section11.7)12.7) to establish the TCP connection.8.4.9.3. IPv6 Connection Point The IPv6 Connection Point data item MAY appear in the Peer Offer signal (Section7.2).8.2). The IPv6 Connection Point data item indicates the IPv6 address and, optionally, the TCP port number on the DLEP modem available for connections. If provided, the receiver MUST use this information to perform the TCP connect to the DLEP server. The IPv6 Connection Point data item contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ItemType| LengthType |IPv6 AddressLength | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|: IPv6 Address|: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|: IPv6 Address|: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|: IPv6 Address|: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|: IPv6 Address : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TCP Port Number (optional) |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Data Item Type: TBD Length: 16 (or 18 if TCP Port included) IPv6 Address: The IPv6 address listening on the DLEP modem. TCP Port Number: TCP Port number on the DLEP modem. If the Length field is 18, the port number specified MUST be used to establish the TCP session. If the TCP Port Number is omitted, i.e. the Length field is 16, the receiver MUST use the DLEP well-known port number (Section11.7)12.7) to establish the TCP connection.8.5.9.4. Peer Type The Peer Type data item MAY appear in the Peer Discovery (Section7.1),8.1) and Peer Offer (Section7.2), Peer8.2) signals, and the Session Initialization (Section7.3)8.3) andPeerSession InitializationACKResponse (Section7.4) signals.8.4) messages. The Peer Type data item is used by the router and modem to give additional information as to its type. The peer type is a string and is envisioned to be used for informational purposes (e.g., as output in a display command). The Peer Type data item contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ItemType|Type | Length |Peer Type+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Peer Type... : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Data Item Type: TBD Length: Length of peer typestring.string, in octets. Peer Type: UTF-8 encoded string. For example, a satellite modem might set this variable to "Satellite terminal". Since this data item is intended to provide additional information for display commands, sending implementations SHOULD limit the data to printable characters, and receiving implmentations SHOULD check the data for printable characters. An implementation MUST NOT assume the Peer Type field is NUL- terminated.8.6.9.5. Heartbeat Interval The Heartbeat Interval data item MUST appear in both thePeerSession Initialization (Section7.3)8.3) andPeerSession InitializationACKResponse (Section7.4) signals8.4) messages to indicate the Heartbeat timeout window to be used by the sender. The Interval is used to specify a period (in seconds) for Heartbeatsignalsmessages (Section7.14).8.14). By specifying an Interval value of 0, implementations MAY indicate the desire to disable Heartbeatsignalsmessages entirely (i.e., the Interval is set to an infinite value). However, it isstrongly recommendedRECOMMENDED that implementations use non-0 timer values.Implementations MUST implement heuristics such that DLEP signals sent/received reset the timer interval. A DLEP session will be considered inactive, and MUST be torn down, via the Peer Termination procedure, by an implementation detecting that two (2) Heartbeat intervals have transpired without receipt of any DLEP signals.The Heartbeat Interval data item contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ItemType|Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Interval |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Data Item Type: TBD Length: 2 Interval: 0 = DoNOTnot use heartbeats on this DLEP session. Non-zero = Interval, in seconds, for heartbeatsignals. 8.7.messages. 9.6. Extensions Supported The Extensions Supported data item MAY be used in both thePeerSession Initialization (Section 8.3) andPeerSession InitializationACK signals.Response (Section 8.4) messages. The Extensions Supported data item is used by the router and modem to negotiate additional optional functionality they are willing to support. The Extensions List is a concatenation of the types of each supported extension, found in the IANA DLEP Extensions repository. Each Extension Type definition includes which additional signals and data-items are supported. The Extensions Supported data item contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ItemType|Type | Length |Extensions List+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Extensions List... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Data Item Type: TBD Length:NumberLength ofExtensions supported.the extensions list in octets. This is twice (2x) the number of extensions. Extension List: A list of extensions supported, identified by their1-octet2-octet value as listed in the extensions registry.8.8. Experimental Definition The Experimental Definition data item MAY be used in both the Peer Initialization and Peer Initialization ACK signals. The Experimental Definition data item is used by the router and modem to indicate the formats to be used for experimental signals and data items for the given peer session. The formats are identified by using a string that matches the 'name' given to the experiment. The Experimental Definition item contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data Item Type| Length | Experiment Name | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Data Item Type: TBD Length: Length of the name string for the Experiment. Experiment Name: UTF-8 encoded string, containing the name of the experiment being implemented. An implementation receiving this data item MUST compare the received string to a list of experiments that it supports. An implementation MUST NOT assume the Experiment Name field is NUL- terminated. 8.9.9.7. MAC Address The MAC address data item MUST appear in all destination-orientedsignalsmessages (i.e., Destination Up (Section7.9),8.9), Destination UpACKResponse (Section7.10),8.10), Destination Down (Section7.11),8.11), Destination DownACKResponse (Section7.12),8.12), Destination Update (Section7.13),8.13), Link Characteristics Request (Section7.15),8.15), and Link CharacteristicsACKResponse (Section7.16)).8.16)). The MAC Address data item contains the address of the destination on the remote node. The MAC address MAY be either a physical or a virtual destination, and MAY be expressed in EUI-48 or EUI-64 format. Examples of a virtual destination would be a multicast MAC address, or the broadcast MAC (FF:FF:FF:FF:FF:FF). 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ItemType|Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MAC Address|: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|: MAC Address|: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|: MAC Address : (if EUI-64 used) |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Data Item Type: TBD Length: 6 for EUI-48 format, or 8 for EUI-64 format MAC Address: MAC Address of the destination.8.10.9.8. IPv4 Address The IPv4 Address data item MAY appear in thePeerSession Update (Section7.5),8.5), Destination Up (Section7.9)8.9) and Destination Update (Section7.13) signals.8.13) messages. When included in Destinationsignals,messages, this data item contains the IPv4 address of the destination. When included in thePeerSession Updatesignal,message, this data item contains the IPv4 address of the peer. In either case, the data item also contains an indication of whether this is a new or existing address, or is a deletion of a previously known address. The IPv4 Address data item contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ItemType|Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Add/Drop | IPv4 Address| | |: | Indicator ||: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|: IPv4 | : Address |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+ Data Item Type: TBD Length: 5 Add/Drop: Value indicating whether this is a new or existing address (1), or a withdrawal of an address (0). Values other than 0 or 1 MUST be considered as invalid. IPv4 Address: The IPv4 address of the destination or peer.8.11.9.9. IPv6 Address The IPv6 Address data item MAY appear in thePeerSession Update (Section7.5),8.5), Destination Up (Section7.9)8.9) and Destination Update (Section7.13) signals.8.13) messages. When included in Destinationsignals,messages, this data item contains the IPv6 address of the destination. When included in thePeerSession Updatesignal,message, this data item contains the IPv6 address of the peer. In either case, the data item also contains an indication of whether this is a new or existing address, or is a deletion of a previously known address. The IPv6 Address data item contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ItemType|Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Add/Drop | IPv6 Address| | |: | Indicator ||: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|: IPv6 Address|: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|: IPv6 Address|: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|: IPv6 Address|: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|: IPv6 Address |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+ Data Item Type: TBD Length: 17 Add/Drop: Value indicating whether this is a new or existing address (1), or a withdrawal of an address (0). Values other than 0 or 1 MUST be considered as invalid. IPv6 Address: IPv6 Address of the destination or peer.8.12.9.10. IPv4 Attached Subnet The DLEP IPv4 Attached Subnet allows a device to declare that it has an IPv4 subnet (e.g., a stub network) attached, or that it has become aware of an IPv4 subnet being present at a remote destination. The IPv4 Attached Subnet data item MAY appear in the Destination Up (Section7.9) and Destination Update (Section 7.13) signals.8.9) message. Once an IPv4 Subnet has been declared on a device, the declarationcanSHALL NOT be withdrawn withoutterminatingwithdrawing the destination (via the Destination Downsignalmessage (Section7.11))8.11)) and re-issuing the Destination Upsignal.message. The DLEP IPv4 Attached Subnet data item contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Data| Data Item Type | Length |IPv4 Attached Subnet |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 Attached Subnet | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Prefix Len. |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+ Data Item Type: TBD Length: 5 IPv4 Subnet: The IPv4 subnet reachable at the destination. Prefix Length: Length of the prefix (1-32) for the IPv4 subnet. A prefix length outside the speficied range MUST be considered as invalid.8.13.9.11. IPv6 Attached Subnet The DLEP IPv6 Attached Subnet allows a device to declare that it has an IPv6 subnet (e.g., a stub network) attached, or that it has become aware of an IPv6 subnet being present at a remote destination. The IPv6 Attached Subnet data item MAY appear in the Destination Up (Section7.9) and Destination Update (Section 7.13) signals.8.9) message. As in the case of the IPv4 attached Subnet data item above, once an IPv6 attached subnet has been declared, itcanSHALL NOT be withdrawn withoutterminatingwithdrawing the destination (via the Destination Downsignalmessage (Section7.11))8.11)) and re-issuing the Destination Upsignal.message. The DLEP IPv6 Attached Subnet data item contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ItemType| LengthType |IPv6 Attached SubnetLength | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 Attached Subnet|: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|: IPv6 Attached Subnet|: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|: IPv6 Attached Subnet|: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|: IPv6 Attached Subnet | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Prefix Len. |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+ Data Item Type: TBD Length: 17 IPv4 Subnet: The IPv6 subnet reachable at the destination. Prefix Length: Length of the prefix (1-128) for the IPv6 subnet. A prefix length outside the specified range MUST be considered as invalid.8.14.9.12. Maximum Data Rate (Receive) The Maximum Data Rate (Receive) (MDRR) data item MUST appear in thePeerSession InitializationACK signalResponse message (Section7.4),8.4), and MAY appear in thePeerSession Update (Section7.5),8.5), Destination Up (Section7.9),8.9), Destination Update (Section7.13)8.13) and Link CharacteristicsACKResponse (Section7.16) signals8.16) messages to indicate the maximum theoretical data rate, in bits per second, that can be achieved while receiving data on the link. The Maximum Data Rate (Receive) data item contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ItemType| LengthType |MDRR (bps)Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MDRR (bps)|: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|: MDRR (bps) |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Data Item Type: TBD Length: 8 Maximum Data Rate (Receive): A 64-bit unsigned integer, representing the maximum theoretical data rate, in bits per second (bps), that can be achieved while receiving on the link.8.15.9.13. Maximum Data Rate (Transmit) The Maximum Data Rate (Transmit) (MDRT) data item MUST appear in thePeerSession InitializationACK signalResponse message (Section7.4),8.4), and MAY appear in thePeerSession Update (Section7.5),8.5), Destination Up (Section7.9),8.9), Destination Update (Section7.13)8.13) and Link CharacteristicsACKResponse (Section7.16) signals8.16) messages to indicate the maximum theoretical data rate, in bits per second, that can be achieved while transmitting data on the link. The Maximum Data Rate (Transmit) data item contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ItemType| LengthType |MDRT (bps)Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MDRT (bps)|: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|: MDRT (bps) |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Data Item Type: TBD Length: 8 Maximum Data Rate (Transmit): A 64-bit unsigned integer, representing the maximum theoretical data rate, in bits per second (bps), that can be achieved while transmitting on the link.8.16.9.14. Current Data Rate (Receive) The Current Data Rate (Receive) (CDRR) data item MUST appear in thePeerSession InitializationACK signalResponse message (Section7.4),8.4), and MAY appear in thePeerSession Update (Section7.5),8.5), Destination Up (Section7.9),8.9), Destination Update (Section7.13)8.13) and Link CharacteristicsACKResponse (Section7.16) signals8.16) messages to indicate the rate at which the link is currently operating for receiving traffic. When used in the Link Characteristics Requestsignalmessage (Section7.15),8.15), CDRR represents the desired receive rate, in bits per second, on the link. The Current Data Rate (Receive) data item contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ItemType| LengthType |CDRR (bps)Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CDRR (bps)|: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|: CDRR (bps) |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Data Item Type: TBD Length: 8 Current Data Rate (Receive): A 64-bit unsigned integer, representing the current data rate, in bits per second, that can currently be achieved while receiving traffic on the link. If there is no distinction between current and maximum receive data rates, current data rate receive MUST be set equal to the maximum data rate receive.8.17.9.15. Current Data Rate (Transmit) The Current Data Rate Transmit (CDRT) data item MUST appear in thePeerSession InitializationACK signalResponse message (Section7.4),8.4), and MAY appear in thePeerSession Update (Section7.5),8.5), Destination Up (Section7.9),8.9), Destination Update (Section7.13),8.13), and Link CharacteristicsACKResponse (Section7.16) signals8.16) messages to indicate the rate at which the link is currently operating for transmitting traffic. When used in the Link Characteristics Requestsignalmessage (Section7.15),8.15), CDRT represents the desired transmit rate, in bits per second, on the link. The Current Data Rate (Transmit) data item contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ItemType| LengthType |CDRT (bps)Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CDRT (bps)|: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|: CDRT (bps) |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Data Item Type: TBD Length: 8 Current Data Rate (Transmit): A 64-bit unsigned integer, representing the current data rate, in bits per second, that can currently be achieved while transmitting traffic on the link. If there is no distinction between current and maximum transmit data rates, current data rate transmit MUST be set equal to the maximum data rate transmit.8.18.9.16. Latency The Latency data item MUST appear in thePeerSession InitializationACK signalResponse message (Section7.4),8.4), and MAY appear in thePeerSession Update (Section7.5),8.5), Destination Up (Section7.9),8.9), Destination Update (Section7.13),8.13), and Link CharacteristicsACKResponse (Section7.16) signals8.16) messages to indicate the amount of latency, in microseconds, on the link. When used in the Link Characteristics Requestsignalmessage (Section7.15),8.15), Latency represents the maximum latency desired on the link. The Latency value is reported as delay. The calculation of latency is implementation dependent. For example, the latency may be a running average calculated from the internal queuing. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ItemType| LengthType |LatencyLength | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Latency(cont.) |: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|: Latency(cont.)|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Data Item Type: TBD Length: 8 Latency: A 64-bit unsigned integer, representing the transmission delay, in microseconds, that a packet encounters as it is transmitted over the link.8.19.9.17. Resources (Receive) The Resources (Receive) (RESR) data item MAY appear in thePeerSession InitializationACK signalResponse message (Section7.4), Peer8.4), Session Update (Section7.5),8.5), Destination Up (Section7.9),8.9), Destination Update (Section7.13)8.13) and Link CharacteristicsACKResponse (Section7.16) signals8.16) messages to indicate the amount of resources for reception (with 0 meaning 'no resources available', and 100 meaning 'all resources available') at the destination. The list of resources that might be considered is beyond the scope of this document, and is left to implementations to decide. The Resources (Receive) data item contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ItemType|Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RESR |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+ Data Item Type: TBD Length: 1 Resources (Receive): An 8-bit integer percentage, 0-100, representing the amount of resources allocated to receiving data. Any value greater than 100 MUST be considered as invalid. If a device cannot calculate RESR, this data item SHOULD NOT be issued.8.20.9.18. Resources (Transmit) The Resources (Transmit) (REST) data item MAY appear in thePeerSession InitializationACK signalResponse message (Section7.4), Peer8.4), Session Update (Section7.5),8.5), Destination Up (Section7.9),8.9), Destination Update (Section7.13)8.13) and Link CharacteristicsACKResponse (Section7.16) signals8.16) messages to indicate the amount of resources for transmission (with 0 meaning 'no resources available', and 100 meaning 'all resources available') at the destination. The list of resources that might be considered is beyond the scope of this document, and is left to implementations to decide. The Resources (Transmit) data item contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ItemType|Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | REST |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+ Data Item Type: TBD Length: 1 Resources (Transmit): An 8-bit integer percentage, 0-100, representing the amount of resources allocated to transmitting data. Any value greater than 100 MUST be considered as invalid. If a device cannot calculate REST, this data item SHOULD NOT be issued.8.21.9.19. Relative Link Quality (Receive) The Relative Link Quality (Receive) (RLQR) data item MAY appear in thePeerSession InitializationACK signalResponse message (Section7.4), Peer8.4), Session Update (Section7.5),8.5), Destination Up (Section7.9),8.9), Destination Update (Section7.13)8.13) and Link CharacteristicsACKResponse (Section7.16) signals8.16) messages to indicate the quality of the link for receiving data. The Relative Link Quality (Receive) data item contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ItemType|Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RLQR |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+ Data Item Type: TBD Length: 1 Relative Link Quality (Receive): A non-dimensional 8-bit integer, 0-100, representing relative link quality. A value of 100 represents a link of the highest quality. Any value greater than 100 MUST be considered as invalid. If a device cannot calculate the RLQR, this data item SHOULD NOT be issued.8.22.9.20. Relative Link Quality (Transmit) The Relative Link Quality (Transmit) (RLQT) data item MAY appear in thePeerSession InitializationACK signalResponse message (Section7.4), Peer8.4), Session Update (Section7.5),8.5), Destination Up (Section7.9),8.9), Destination Update (Section7.13)8.13) and Link CharacteristicsACKResponse (Section7.16) signals8.16) messages to indicate the quality of the link for transmitting data. The Relative Link Quality (Transmit) data item contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ItemType|Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RLQT |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+ Data Item Type: TBD Length: 1 Relative Link Quality (Transmit): A non-dimensional 8-bit integer, 0-100, representing relative link quality. A value of 100 represents a link of the highest quality. Any value greater than 100 MUST be considered as invalid. If a device cannot calculate the RLQT, this data item SHOULD NOT be issued.8.23.9.21. Link CharacteristicsACKResponse Timer The Link CharacteristicsACKResponse Timer data item MAY appear in the Link Characteristics Requestsignalmessage (Section7.15)8.15) to indicate the desired number of seconds the sender will wait for a response to the request. If this data item is omitted, implementations supporting the Link Characteristics Request SHOULD choose a default value. The Link CharacteristicsACKResponse Timer data item contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ItemType|Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Interval |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+ Data Item Type: TBD Length: 1 Interval: 0 = DoNOTnot use timeouts for this Link Characteristics request. Non-zero = Interval, in seconds, to wait before considering this Link Characteristics Request lost.9.10. Credit-Windowing DLEP includes anOPTIONALoptional Protocol Extension for a credit-windowing scheme analogous to the one documented in [RFC5578]. In this scheme, data plane traffic flowing between the router and modem istreatedcontrolled by the availability of credits. Credits are expressed as if two unidirectionalwindows.windows exist between the modem and router. This document identifies these windows as the 'Modem Receive Window' (MRW), and the 'Router Receive Window' (RRW). If theOPTIONALcredit-windowing extension is used, credits MUST be granted by the receiver on a given window - that is, on the 'Modem Receive Window' (MRW), the modem is responsible for granting credits to the router, allowing it (the router) to send data plane traffic to the modem. Likewise, the router is responsible for granting credits on the RRW, which allows the modem to send data plane traffic to the router. Credits are managed on a destination-specific basis; that is, separate credit counts are maintained for each destination requiring the service. Credits do not apply to the DLEP session that exists between routers andmodems.modems; they are applied only to the data plane traffic. Credits represent the number of octets, or an increment in the number of octets, that MAY be sent on the given window. When sending data plane traffic to a credit-enabled peer, the sender MUST decriment the appropriate window by the size of the data being sent. For example, when sending data plane traffic via the modem, the router MUST decriment the 'Modem Receive Window' (MRW) for the corresponding destination. When the number of available credits to the destination reaches 0, a sender MUST stop sendingdata,data plane traffic to the destination, until additional credits are supplied. If a peer is able to support theOPTIONALoptional credit-windowing extension then it MUST include an Extensions Supported data item (Section8.7)9.6) including the valueDLEP_EXT_CREDITS (value TBD)1, from Table 4, in the appropriatePeerSession Initializationor Peer(Section 8.3) and Session InitializationACK signal. 9.1.Response (Section 8.4) message. 10.1. Credit-WindowingSignalsMessages The credit-windowing extension introduces no additional DLEPsignals.signals or messages. However, if a peer has advertised during session initialization that it supports the credit-windowing extension then the following DLEPsignalsmessages MAY contain additional credit-windowing data items:9.1.1.10.1.1. Destination UpSignalMessage The Destination Upsignalmessage MAY contain one of each of the following data items: o Credit Grant (Section9.2.1)10.2.1) If the Destination Upsignalmessage does not contain the Credit Grant data item, credits MUST NOT be used for that destination.9.1.2.10.1.2. Destination UpACK SignalResponse Message If the corresponding Destination Upsignalmessage contained the Credit Grant data item, the Destination UpACK signalResponse message MUST contain one of each of the following data items: o Credit Window Status (Section9.2.2) 9.1.3.10.2.2) 10.1.3. Destination UpdateSignalMessage If the corresponding Destination Upsignalmessage contained the Credit Grant data item, the Destination Updatesignalmessage MUST contain one of each of the following data items: o Credit Window Status (Section9.2.2)10.2.2) If the corresponding Destination Upsignalmessage contained the Credit Grant data item, the Destination Updatesignalmessage MAY contain one of each of the following data items: o Credit Grant (Section9.2.1)10.2.1) o Credit Request (Section9.2.3) 9.2.10.2.3) 10.2. Credit-Windowing Data Items The credit-windowing extension introduces 3 additional data items. If a peer has advertised during session initialization that it supports the credit-windowing extension then it MUST correctly process the following dataitems. +------------+-----------------------+----------------+items: +------------+------------------------------------------------------+ |Data ItemType Code | Description |Section | +------------+-----------------------+----------------++------------+------------------------------------------------------+ |TBD23 | Credit Grant| Section 9.2.1(Section 10.2.1) | |TBD24 | Credit Window Status| Section 9.2.2(Section 10.2.2) | |TBD25 | Credit Request (Section 10.2.3) |Section 9.2.3 | +------------+-----------------------+----------------+ 9.2.1.+------------+------------------------------------------------------+ 10.2.1. Credit Grant The Credit Grant data item is sent from a DLEP participant to grant an increment to credits on a window. The Credit Grant data item MAY appear in the Destination Up (Section7.9)8.9) and Destination Update (Section7.13) signals.8.13) messages. The value in a Credit Grant data item represents an increment to be added to any existing credits available on the window. Upon successful receipt and processing of a Credit Grant data item, the receiver MUST respond with asignalmessage containing a Credit Window Status data item to report the updated aggregate values for synchronization purposes, and if initializing a new credit window, granting initial credits.InWhen DLEP peers desire to employ theDestination Up signal, when credits are desired,credit-windowing extension, theoriginatingpeer originating the Destination Up message MUSTsetsupply an initial, non-zero value as theinitialcreditvalueincrement of the receive window it controls (i.e., the ModemReceiveRecive Window, or Router ReceiveWindow) to an initial, non-zero value. If the receiver of a Destination Up signal withWindow). When receiving a Credit Grant data itemsupports credits,on a Destination Up (#msg_dest_up) message, the receiver MUSTeither rejecttake one of the following actions: 1. Reject the use of credits for this destination, viaathe Destination UpACK responseResponse message containing a Status data item (Section8.2)9.1) with a status code of 'RequestDenied',Denied'. (See Table 3), orset2. Initialize theinitialappropriate window valuefromof zero, then apply thedata containedincrement specified in the CreditWindow StatusGrant data item. If the initialization completes successfully, the receiver MUST respond to the Destination Upsignalmessage with a Destination UpACK signalResponse message that contains a Credit Window Status data item, initializing its receive window. The Credit Grant data item contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ItemType| LengthType |Credit IncrementLength | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Credit Increment|: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|: Credit Increment |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Data Item Type: TBD Length: 8 Reserved: A 64-bit unsigned integer representing the additional credits to be assigned to the credit window. Since credits can only be granted by the receiver on a window, the applicable credit window (either the MRW or the RRW) is derived from the sender of the grant. The Credit Increment MUST NOT cause the window to overflow; if this condition occurs, implementations MUST set the credit window to the maximum value contained in a 64-bit quantity.9.2.2.10.2.2. Credit Window Status If the credit-window extension is supported by the DLEP participants (both the router and the modem), the Credit Window Status data item MUST be sent by the participant receiving a Credit Grant for a given destination. The Credit Window Status data item contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ItemType| LengthType |Modem Receive Window ValueLength | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Modem Receive Window Value|: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|: Modem Receive Window Value |Router Receive Window Value |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Router Receive Window Value|: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|: Router Receive Window Value |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Data Item Type: TBD Length: 16 Modem Receive Window Value: A 64-bit unsigned integer, indicating the current number of credits available on the Modem Receive Window, for the destination referred to by thesignal.message. Router Receive Window Value: A 64-bit unsigned integer, indicating the current number of credits available on the Router Receive Window, for the destination referred to by thesignal. 9.2.3.message. 10.2.3. Credit Request The Credit Request data item MAY be sent from either DLEP participant, via the Destination Updatesignalmessage (Section7.13),8.13), to indicate the desire for the partner to grant additional credits in order for data transfer to proceed on the session. If the corresponding Destination Upsignalmessage (Section7.9)8.9) for this session didNOTnot contain a Credit Window Status data item, indicating that credits are to be used on the session, then the Credit Request data item MUST be silently dropped by the receiver. The Credit Request data item contains the following fields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ItemType| Length | Reserved, MUST| | |Type |be set to 0Length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Data Item Type: TBD Length:1 Reserved: This field is currently unused and MUST be set to 0. 10.0 11. Security Considerations The potential security concerns when using DLEP are: 1. DLEP peers may be 'spoofed' by an attacker, either at DLEP session initialization, or by injection of messages once a session has been established, and/or 2. DLEP data items could be altered by an attacker, causing the receiving peer to inappropriately alter its information base concerning network status. The protocol itself does not contain any mechanisms for security (e.g., authentication orencryption). The protocolencryption), as it assumes thatany security would be implemented in the underlying transport (for example, by usean appropriate level ofTLS or some other mechanism),authentication and non-repudiation istherefore outside the scopeacheived by use ofthis document. 11.[TLS] when necessary. This specification does not address security of the data plane, as it (the data plane) is not affected, and standard security procedures can be employed. 12. IANA Considerations This section specifies requests to IANA.11.1.12.1. Registrations This specification defines: o A new repository for DLEPsignals,signals and messages, with sixteen (16) values currently assigned. o Reservation of a Private Use numbering space forExperimentalexperimental DLEPsignals.signals and messages. o A new repository for DLEP data items, withtwenty-sixtwenty-four (24) values currently assigned. o Reservation of a Private Use numbering space in the data items repository for experimental data items. o A new repository for DLEP status codes, withseveneight (8) currently assigned. o Reservation of a Private Use numbering space in the status codes repository for experimental status codes. o A new repository for DLEP extensions, with one (1) value currently assigned. o Reservation of a Private Use numbering space in the extension repository for experimental extensions. o A request for allocation of a well-known port for DLEP TCP and UDP communication. o A request for allocation of a multicast IP address for DLEP discovery.11.2.12.2. Expert Review: Evaluation Guidelines No additional guidelines for expert review are anticipated.11.3. Signal12.3. Signal/Message Type Registration A new repository must be created with the values of the DLEPsignals.signals and messages. All signal and message values are in the range[0..255]. Valid signals are: o Peer Discovery o Peer Offer o Peer Initialization o Peer Initialization ACK o Peer Update o Peer Update ACK o Peer Termination o Peer Termination ACK o Destination Up o Destination Up ACK o Destination Down o Destination Down ACK o Destination Update o Heartbeat o Link Characteristics Request o Link Characteristics ACK It is also requested that the repository contain space for experimental signal types. 11.4.[0..65535], defined in Table 1. 12.4. DLEP Data Item Registrations A new repository for DLEP data items must be created. All data item values are in the range[0..255]. Valid data items are: o DLEP Version o Status o IPv4 Connection Point o IPv6 Connection Point o Peer Type o Heartbeat Interval o Extensions Supported o Experimental Definition o MAC Address o IPv4 Address o IPv6 Address o IPv4 Attached Subnet o IPv6 Attached Subnet o Maximum Data Rate (Receive) o Maximum Data Rate (Transmit) o Current Data Rate (Receive) o Current Data Rate (Transmit) o Latency o Resources (Receive) o Resources (Transmit) o Relative Link Quality (Receive) o Relative Link Quality (Transmit) o Link Characteristics ACK Timer o Credit Window Status o Credit Grant o Credit Request It is also requested that the registry allocation contain space for experimental data items. 11.5.[0..65535], defined in Table 2. 12.5. DLEP Status Code Registrations A new repository for DLEP status codes must be created. All status codes are in the range[0..255]. Valid status codes are: o Success (value 0) o Unknown Signal o Invalid Data o Unexpected Signal o Request Denied o Timed Out o Invalid Destination 11.6.[0..255], defined in Table 3. 12.6. DLEP Extensions Registrations A new repository for DLEP extensions must be created. All extension values are in the range[0..255]. Valid extensions[0..65535]. Current allocations are:o DLEP_EXT_CREDITS -+-------------+-----------------------------------------------------+ | Code | Description | +-------------+-----------------------------------------------------+ | 0 | Reserved | | 1 | Creditwindowing 11.7.Windowing (Section 10) | | 2-65519 | Reserved for future extensions | | 65520-65534 | Private Use. Available for experiments | | 65535 | Reserved | +-------------+-----------------------------------------------------+ Table 4: DLEP Extension types 12.7. DLEP Well-known Port It is requested that IANA allocate a well-known port number for DLEP communication.11.8.12.8. DLEP Multicast Address It is requested that IANA allocate a multicast address for DLEP discovery signals.12.13. Acknowledgements We would like to acknowledge and thank the members of the DLEP design team, who have provided invaluable insight. The members of the design team are: Teco Boot, Bow-Nan Cheng, John Dowdell, and Henning Rogge. We would also like to acknowledge the influence and contributions of Greg Harrison, Chris Olsen, Martin Duke, Subir Das, Jaewon Kang, Vikram Kaul, Nelson Powell and Victoria Mercieca.13.14. References13.1.14.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.13.2.14.2. Informative References [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.2", RFC 5246, August 2008. [RFC5578] Berry, B., Ratliff, S., Paradise, E., Kaiser, T., and M. Adams, "PPP over Ethernet (PPPoE) Extensions for Credit Flow and Link Metrics", RFC 5578, February 2010. Appendix A.Peer LevelDiscovery Signal FlowsA.1. DiscoveryRouter Modem Signal Description ======================================================================== | Router initiates discovery, starts | a timer, send Peer Discovery |-------Peer Discovery---->|| signal. ~ ~ ~ ~ ~ ~ ~ Router discovery timer expires without receiving Peer Offer. | Router sends another Peer |-------Peer Discovery---------->| Discovery signal. | | Modem receives Peer Discovery | signal. | | Modem sends Peer Offer with |<--------Peer Offer-------------| Connection Point information. : : Router MAY cancel discovery timer : and stop sending Peer Discovery : signals.A.2.Appendix B. Peer Level Message Flows B.1. Session Initialization Router Modem Signal Description ======================================================================== | Router connects to discovered or | pre-configured Modem Connection |---------TCP connect----------> Point. | | Router sendsPeerSession Initialization|-------Peer|----Session Initialization----->|signal.message. | | Modem receivesPeerSession Initialization |signal.message. | | Modem sendsPeerSession Initialization| ACK, with compatible extensions, |<----Peer|<--Session InitializationACK----| andResp.-| Response, with Success status data item. | | |<<============================>>| Session established. Heartbeats : : begin.A.3.B.2. Session Initialization - Refused Router Modem Signal Description ======================================================================== | Router connects to discovered or | pre-configured Modem Connection |---------TCP connect----------> Point. | | Router sendsPeerSession Initialization|-------Peer Initialization----->| signal.|-----Session Initialization---->| message. | | Modem receivesPeerSession Initialization |signal,message, and will not support the | advertisedversion, experiment or |extensions. | | Modem sendsPeerSession Initialization |ACK,Response, with 'Request Denied' status|<----Peer|<-Session InitializationACK----|Resp.--| data item. | | |<---- TCP shutdown (send)-----| Modem closes TCP connection. | |Router receives negativePeerSession | InitializationACK,Response, closes|---------TCP close----------->||---------TCP close------------|| TCP connection.| ||------------------------------|| Session not started. A.4.B.3. Router Changes IP Addresses Router Modem Signal Description ======================================================================== | Router sendsPeerSession Updatesignalmessage to|--------Peer Update------------>||-------Session Update---------->| announce change of IP address | | Modem receivesPeerSession Updatesignalmessage | and updates internal state. ||<-------Peer|<----Session UpdateACK---------|Response----| Modem sendsPeerSession UpdateACK. A.5.Response. B.4. Modem Changes Session-wide Metrics Router Modem Signal Description ======================================================================== | Modem sendsPeerSession Updatesignalmessage to | announce change of modem-wide|<--------Peer Update------------||<--------Session Update---------| metrics | | Router receivesPeerSession Updatesignalmessage | and updates internal state. ||-------Peer|----Session UpdateACK--------->|Response---->| Router sendsPeerSession UpdateACK. A.6.Response. B.5. Router Terminates Session Router Modem Signal Description ======================================================================== | Router sendsPeerSession Termination|-------Peer Termination-------->| signal|------Session Termination------>| message with Status data item. | | |-------TCP shutdown (send)---> | Router stops sendingsignals.messages. | | Modem receivesPeerSession Termination, | stops counting received heartbeats | and stops sending heartbeats. | | Modem sendsPeerSession TerminationACK |<-----PeerResponse |<---Session TerminationACK------|Resp.---| with Status 'Success'. | || <----TCP shutdown (send)------|Modem stops sendingsignals.messages. |||------------------------------||||---------TCP close------------|| Session terminated.A.7.B.6. Modem Terminates Session Router Modem Signal Description ======================================================================== | Modem sendsPeerSession Termination|<------Peer Termination---------| signal|<----Session Termination--------| message with Status data item. | || <----TCP shutdown (send)------|Modem stops sendingsignals.messages. | | Router receivesPeerSession Termination, | stops counting received heartbeats | and stops sending heartbeats. | | Router sendsPeerSession TerminationACK |------PeerResponse |---Session TerminationACK----->|Resp.--->| with Status 'Success'. | ||-------TCP shutdown (send)---> |Router stops sendingsignals.messages. |||------------------------------||||---------TCP close------------|| Session terminated.A.8.B.7. Session Heartbeats Router Modem Signal Description ======================================================================== |----------Heartbeat------------>| Router sends heartbeatsignalmessage | | Modem resets heartbeats missed | counter. ~ ~ ~ ~ ~ ~ ~|----------[Any signal]--------->||---------[Any message]--------->| When the Modem receives anysignalmessage | from the Router. | | Modem resets heartbeats missed | counter. ~ ~ ~ ~ ~ ~ ~ |<---------Heartbeat-------------| Modem sends heartbeatsignalmessage | | Router resets heartbeats missed | counter. ~ ~ ~ ~ ~ ~ ~|<---------[Any signal]----------||<--------[Any message]----------| When the Router receives any |signalmessage from the Modem. | | Modem resets heartbeats missed | counter.A.9.B.8. Router Detects a Heartbeat timeout Router Modem Signal Description ======================================================================== ||<----------------------| Router misses a heartbeat | ||<----------------------| Router misses too many heartbeats | ||-------Peer Termination-------->||------Session Termination------>| Router sendsPeerSession Termination |signalmessage with 'Timeout' Status | data item. : : Termination proceeds as above.A.10.B.9. Modem Detects a Heartbeat timeout Router Modem Signal Description ======================================================================== |---------------------->|| Modem misses a heartbeat |---------------------->|| | Modem misses too many heartbeats | ||<-------Peer Termination--------||<-----Session Termination-------| Modem sendsPeerSession Termination |signalmessage with 'Timeout' Status | data item. : : Termination proceeds as above. AppendixB.C. Destination Specific Signal FlowsB.1.C.1. Common Destination Signaling Router Modem Signal Description ======================================================================== | Modem detects a new logical | destination is reachable, and |<-------Destination Up----------| sends Destination Upsignal.message. ||--------Destination|------Destination UpACK----->|Resp.----->| Router sends Destination UpACK.Response. ~ ~ ~ ~ ~ ~ ~ | Modem detects change in logical | destination metrics, and sends |<-------Destination Update------| Destination Updatesignal.message. ~ ~ ~ ~ ~ ~ ~ | Modem detects change in logical | destination metrics, and sends |<-------Destination Update------| Destination Updatesignal.message. ~ ~ ~ ~ ~ ~ ~ | Modem detects logical destination | is no longer reachable, and sends |<-------Destination Down--------| Destination Downsignal.message. | | Router receives Destination Down, | updates internal state, and sends|--------Destination|------Destination DownACK--->|Resp.--->| Destination DownACK signal. B.2.Response message. C.2. Multicast Destination Signaling Router Modem Signal Description ======================================================================== | Router detects a new multicast | destination is in use, and sends |--------Destination Up--------->| Destination Upsignal.message. | | Modem updates internal state to | monitor multicast destination, and|<-------Destination|<-----Destination UpACK------|Resp.------| sends Destination UpACK.Response. ~ ~ ~ ~ ~ ~ ~ | Modem detects change in multicast | destination metrics, and sends |<-------Destination Update------| Destination Updatesignal.message. ~ ~ ~ ~ ~ ~ ~ | Modem detects change in multicast | destination metrics, and sends |<-------Destination Update------| Destination Updatesignal.message. ~ ~ ~ ~ ~ ~ ~ | Router detects multicast | destination is no longer in use, |--------Destination Down------->| and sends Destination Downsignal.message. | | Modem receives Destination Down, | updates internal state, and sends|<-------Destination|<-----Destination DownACK----|Resp.----| Destination DownACK signal. B.3.Response message. C.3. Link Characteristics Request Router Modem Signal Description ======================================================================== Destination has already been ~ ~ ~ ~ ~ ~ ~ announced by either peer. | Router requires different | Characteristics for the | destination, and sends Link |--Link Characteristics Request->| Characteristics Requestsignal.message. | | Modem attempts to adjust link | status to meet the received | request, and sends a Link | CharacteristicsRequest ACKResponse |<---LinkChar. Request ACK------| signalCharacteristics Resp.--| message with the new values. Authors' Addresses Stan Ratliff VT iDirect 13861 Sunrise Valley Drive, Suite 300 Herndon, VA 20171 USA Email: sratliff@idirect.net Bo Berry Shawn Jury Cisco Systems 170 West Tasman Drive San Jose, CA 95134 USA Email: sjury@cisco.com Darryl Satterwhite Broadcom Email: dsatterw@broadcom.com Rick Taylor Airbus Defence & Space Quadrant House Celtic Springs Coedkernew Newport NP10 8FZ UK Email: rick.taylor@airbus.com