Mobile Ad hoc Networks Working S. Ratliff Group B. Berry Internet-Draft G. Harrison Intended status: Standards Track S. Jury Expires: August 14, 2014 Cisco SystemsExpires: September 22, 2013D. Satterwhite BroadcomS. Jury NetApp March 25, 2013Febuary 10, 2014 Dynamic Link Exchange Protocol (DLEP)draft-ietf-manet-dlep-04draft-ietf-manet-dlep-05 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 forwarding 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 to IETF in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. 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." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire onFebruary 21, 2013.August 14, 2014. Copyright Notice Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) 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 . . . . . . . . . . . . . . . . . . . . . . . . .34 1.1 Requirements . . . . . . . . . . . . . . . . . . . . . . .78 2. Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . .78 3. Credits . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4. Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 5. Extensions to DLEP . . . . . . . . . . . . . . . . . . . . . . 10 6. Normal Session Flow . . . . . . . . . . . . . . . . . . . . . 11 6.1 DLEP Modem session flow - Discovery case . .10. . . . . . . . 11 6.2 DLEP Modem session flow - Configured case . . . . . . . . . 11 6.3 DLEP Router session flow . . . . . . . . . . . . . . . . . 12 6.4 Common Session Flow . . . . . . . . . . . . . . . . . . . . 12 7. Mandatory Signals and Data Items . . . . . . . . . . . . . . .1213 8. Generic DLEPPacketMessage Definition . . . . . . . . . . . . . . . .1314 9. DLEP Data Items . . . . . . . . . . . . . . . . . . . . . . . .1315 9.1 DLEP Version . . . . . . . . . . . . . . . . . . . . . . .1416 9.2 DLEP Port . . . . . . . . . . . . . . . . . . . . . . . . . 17 9.3 Peer Type . . . . . . . . . . . . . . . . . . . . . . . . .15 9.317 9.4 MAC Address . . . . . . . . . . . . . . . . . . . . . . . .15 9.418 9.5 IPv4 Address . . . . . . . . . . . . . . . . . . . . . . .16 9.518 9.6 IPv6 Address . . . . . . . . . . . . . . . . . . . . . . .17 9.619 9.7 Maximum Data Rate (Receive) . . . . . . . . . . . . . . . .17 9.720 9.8 Maximum Data Rate (Transmit) . . . . . . . . . . . . . . .18 9.820 9.9 Current Data Rate (Receive) . . . . . . . . . . . . . . . .19 9.921 9.10 Current Data Rate (Transmit) . . . . . . . . . . . . . . .20 9.1022 9.11 Expected Forwarding Time . . . . . . . . . . . . . . . . .21 9.1123 9.12 Latency . . . . . . . . . . . . . . . . . . . . . . . . .21 9.1223 9.13 Resources (Receive) . . . . . . . . . . . . . . . . . . .22 9.1324 9.14 Resources (Transmit) . . . . . . . . . . . . . . . . . . .22 9.1425 9.15 Relative Link Quality (Receive) . . . . . . . . . . . . .23 9.1525 9.16 Relative Link Quality (Transmit) . . . . . . . . . . . . .24 9.1626 9.17 Status . . . . . . . . . . . . . . . . . . . . . . . . . .24 9.1726 9.18 HeartbeatInterval/ThresholdInterval . . . . . . . . . . . . . . .25 9.18. . . . . 27 9.19 Link Characteristics ACK Timer . . . . . . . . . . . . . .26 9.1928 9.20 Credit Window Status . . . . . . . . . . . . . . . . . . .26 9.2028 9.21 Credit Grant Request . . . . . . . . . . . . . . . . . . .27 9.2129 9.22 Credit Request . . . . . . . . . . . . . . . . . . . . . .2830 10. DLEP Protocol Messages . . . . . . . . . . . . . . . . . . . .2931 10.1 Signal TLV Values . . . . . . . . . . . . . . . . . . . .29 11.31 10.2 Peer Discovery Message . . . . . . . . . . . . . . . . . .. . 30 12.32 10.3 Peer Offer Message . . . . . . . . . . . . . . . . . . . .. . 31 13.32 10.4 PeerOffer ACKInitialization Message . . . . . . . . . . . . . . . . 33 10.5 Peer Initialization ACK Message . . . . . . . .31 14.. . . . . . 33 10.6 Peer Update Message . . . . . . . . . . . . . . . . . . . .. 32 15.34 10.7 Peer Update ACK Message . . . . . . . . . . . . . . . . . .. 33 16.35 10.8 Peer Termination Message . . . . . . . . . . . . . . . . .. . 33 17.35 10.9 Peer Termination ACK Message . . . . . . . . . . . . . . .. . 33 18. Neighbor36 10.10 Destination Up Message . . . . . . . . . . . . . . . . . .. . . 34 19. Neighbor36 10.11 Destination Up ACK Message . . . . . . . . . . . . . . . .. . . 35 20. Neighbor37 10.12 Destination Down Message . . . . . . . . . . . . . . . . .. . . 35 21. Neighbor37 10.13 Destination Down ACK Message . . . . . . . . . . . . . . .. . . 35 22. Neighbor37 10.14 Destination Update Message . . . . . . . . . . . . . . . .. . . 36 23.38 10.15 Heartbeat Message . . . . . . . . . . . . . . . . . . . .. . 36 24.38 10.16 Link Characteristics Request Message . . . . . . . . . . .. . 37 25.39 10.17 Link Characteristics ACK Message . . . . . . . . . . . . .. . 37 26.40 11. Security Considerations . . . . . . . . . . . . . . . . . . .38 27.40 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . .38 27.140 12.1 Registrations . . . . . . . . . . . . . . . . . . . . . .38 27.241 12.2 Expert Review: Evaluation Guidelines . . . . . . . . . . .39 27.3 Signal (Message)41 12.3 Message (Signal) TLV Type Registration . . . . . . . . . .39 27.441 12.4 DLEP Data Item Registrations . . . . . . . . . . . . . . .39 27.542 12.5 DLEP Well-known Port . . . . . . . . . . . . . . . . . . .40 27.642 12.6 DLEP Multicast Address . . . . . . . . . . . . . . . . . .40 30.42 13. Appendix A. . . . . . . . . . . . . . . . . . . . . . . . . .40 30.142 13.1 Peer Level Message Flows . . . . . . . . . . . . . . . . .40 30.1.142 13.1.1 Modem Device Restarts Discovery . . . . . . . . . . .40 30.1.243 13.1.2 Modem Device Detects Peer Offer Timeout . . . . . . .41 30.1.343 13.1.3 Router Peer Offer Lost . . . . . . . . . . . . . . . .42 30.1.444 13.1.4 Discovery Success . . . . . . . . . . . . . . . . . .42 30.1.544 29.1.5 Router Detects a Heartbeat timeout . . . . . . . . . .43 30.1.645 29.1.6 Modem Detects a Heartbeat timeout . . . . . . . . . .43 30.1.745 29.1.7 Peer Terminate (from Modem) Lost . . . . . . . . . . .44 30.1.846 29.1.8 Peer Terminate (from Router) Lost . . . . . . . . . .44 30.2 Neighbor46 29.2 Destination Specific Message Flows . . . . . . . . . . . .. 44 30.2.146 29.2.1 ModemNeighborDestination Up Lost . . . . . . . . . . . . . .. . 45 30.2.247 29.2.2 Router Detects DuplicateNeighborDestination Ups . . . . . . .. 45 30.2.3 Neighbor47 29.2.3 Destination Up, No Layer 3 Addresses . . . . . . . . .. 46 30.2.4 Neighbor48 29.2.4 Destination Up with IPv4, No IPv6 . . . . . . . . . .. . 46 30.2.5 Neighbor48 29.2.5 Destination Up with IPv4 and IPv6 . . . . . . . . . .. . 46 30.2.6 Neighbor48 29.2.6 Destination Session Success . . . . . . . . . . . . .. . 4749 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . .4749 Normative References . . . . . . . . . . . . . . . . . . . . . . .4750 Informative References . . . . . . . . . . . . . . . . . . . . . .4850 Author's Addresses . . . . . . . . . . . . . . . . . . . . . . . .4850 1. Introduction There exist today a collection of modem devices that control links of variablebandwidthdatarate and quality. Examples of these types of links include line-of-sight (LOS) radios, satellite terminals, and cable/DSL modems. Fluctuations in speed and quality of these links can occur due to configuration (in the case of cable/DSL modems), 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 andbandwidthdatarate varies with respect to individualneighborsdestinations on a link, and with the type of traffic being sent. As an example, consider the case of an 802.11g access point, serving 2 associated laptop computers. In this environment, the answer to the question "What is thebandwidthdatarate on the 802.11g 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 abandwidthdatarate of 54Mbps for unicast traffic, the other laptop, being relatively far away, or obstructed by some object, can simultaneously have abandwidthdatarate 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 variablebandwidthdatarate links, mobile networks are challenged by the notion that link connectivity will come and go over time. Effectively utilizing a relatively short-lived connection is problematic in IP routed networks, as routing protocols tend to rely on independent timers at OSI Layer 3 to maintain network convergence (e.g. HELLO messages and/or recognition of DEAD routing adjacencies). These short-lived connections can be better utilized with anevent-drivenevent- driven paradigm, where acquisition of a new neighbor (or loss of an existing one) is signaled, as opposed to atimer- driventimer-driven paradigm. 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, USB, or even a serial link. In the case of Ethernet or serial 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 inbandwidth,datarate, leads to a situation where quality of service (QoS) profiles are extremely 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, additionalbandwidthdatarate may be available, but will not be used unless the network devices emit traffic at rate higher than the currently established rate. Increasing the traffic rate does not guarantee additionalbandwidthdatarate will be allocated; rather, it may result in data loss and additional retransmissions on the link. Addressing the challenges listed above, the authors have developed the Data 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 routingneighbors).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 a signal to its router via the DLEP protocol. Upon receipt of the signal, 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 utilize DLEP to report any characteristics of the link(bandwidth,(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 DLEP messages 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(bandwidth,(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 tore- convergere-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 DLEP defines a set oflogical signalsmessages 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 messages, specifying the signals that are exchanged between a router and a modem, and the data items associated with the signal. This document specifies transport of DLEP signals and data items via theUDP transport.TCP transport, with a UDP-based discovery mechanism. Other transports for the protocol are possible, but are outside the scope of this document. DLEP signals are further defined as mandatory or optional. Signals will additionally have mandatory and optional data items. Implementations MUST support all mandatorysignalsmessages and their mandatory data items to be considered compliant. Implementations MAY also support some, or all, of the optionalsignalsmessages and data items. 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), a separate DLEP session MUST exist for each modem. If a modem device supports multiple connections to a router (via multiple logical or physical interfaces), or supports connections to multiple routers, a separate DLEP session MUST exist for each connection. This router/modem session provides a carrier for information exchange concerningneighbors (remote nodes)"destinations" that areaccessibleavailable 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 theneighbor-leveldestination-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 otherdestination"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 neighbor. The modem, once it is aware of the existence of this logical neighbor, reports link characteristics just as it would for any other destination in the network. The specific algorithms a modem would use to report metrics on multicast (or logical) destinations is outside the scope of this specification, and is left to specific implementations to decide. 1.1 Requirements The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in 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 utilize a discovery technique to locate each other, thus avoiding a-priori configuration. The modem is responsible for initialing the discovery process, using the Peer Discovery message. DLEP utilizes a session-oriented paradigm. A router and modem form a session by completing the discovery 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 isOPTIONAL;OPTIONAL, it is strongly recommended thatis,implementationscanchoose to run withno timers (or effectively,timersset to an infinite value).enabled. DLEP assumes that participating modems, and their physical links, act as a transparent bridge. Specifically, the assumption is that the destination MAC address for data traffic in any frame emitted by the router should be the MAC address of a device in the remote node. DLEP also assumes that MAC addresses are unique within the context of the router-modem session. This document refers to a remote node as a"Neighbor". Neighbors"Destination". 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.Examples of aA destinationincludeMUST contain a MAC address, it MAY optionally include aunicastLayer 3address,address (or addresses). Destinations MAY refer either to physical devices in the network, or to logical destinations, as in a multicastLayer 3 address.group. As"neighbors""destinations" are discovered, DLEP routers and modems build an information base on destinations accessible via the modem. Changes in link characteristics MAY then be reported as being "modem-wide" (effecting ALLneighborsdestinations accessed via the modem) or MAY be neighbor (destination) specific. The DLEPsignalsmessages concerningneighborsdestinations 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 (e.g., MAC address, and OPTIONALLY, Layer 3 addresses), link characteristics (metrics), and OPTIONALLY, flow control information (credits). 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 asDTLS [DTLS]). Sequence Numbers for DLEP messages start at 0 and are incremented by one for each original and retransmitted message. The unsigned 16-bit Sequence Number rolls over at 65535 to 0. Sequence Numbers are unique within the context of a DLEP session. Sequence numbers are used in DLEP to correlate a response to a request.TLS [TLS]). This document specifies an implementation of the DLEPsignalsmessages and data items running over theUDPTCP transport, utilizing a well-knownUDPTCP Port number. It is assumed that DLEP running over other transport mechanisms would be documented separately. 3. Credits DLEP includes an OPTIONAL credit-windowing scheme analogous to the one documented in [RFC5578]. In this scheme, traffic between the router and modem is treated as two unidirectional windows. This document identifies these windows as the "Modem Receive Window", or MRW, and the "Router Receive Window", or RRW. If credits are used, they 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 to the modem. Likewise, the router is responsible for granting credits on the RRW, which allows the modem to send data to the router. DLEP expresses all credit data in number of octets. The total number of credits on a window, and the increment to add to a grant, are always expressed as a 64-bit unsigned quantity. If used, credits are managed on a neighbor-specific basis; that is, separate credit counts are maintained for each neighbor requiring the service. Credits do not apply to the DLEP session that exists between routers and modems. 4. Metrics DLEP includes the ability for the router and modem to communicate metrics that reflect the characteristics (e.g.bandwidth,datarate, latency) of the variable-quality link in use. DLEP does NOT 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. As mentioned in the introduction section of this document, metrics have to be used within a context - for example, metrics to a unicast address in the network. DLEP allows for metrics to be sent within two contexts - metrics for a specificneighbor (those for a givendestination within thenetwork),network (e.g., a specific router), and "modem-wide" (those that apply to all destinations accessed via the modem). Metrics are further subdivided into transmit and receive metrics. Metrics supplied on DLEP Peer signals are, by definition, modem-wide; metrics supplied onNeighborDestination messages signals are, by definition, used for the specific neighbor only.Metrics are further subdivided into transmitDLEP modem implementations MUST announce all supported metric items, andreceive metrics.provide default values for those metrics, in the Peer Initialization message. In order to introduce a new metric type, DLEP modem implementations MUST terminate the session with the router (via the Peer Terminate message), and re-establish the session. It is left to implementations to choose sensible default values based on their specific characteristics.Additionally, this mechanism (either at a modem-wide or specific neighbor context) MAY be used to report non-changing, or static, metrics.Modems having static (non- changing) link metric characteristics MAY report metrics only once for a given neighbor (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 increases both the flexibility and the complexity of using metric data. This document details the mechanism whereby the data is transmitted, however, the specific algorithms (precedence, etc) for utilizing the dual-context metrics is out of scope and not addressed by this document. 5. Extensions to DLEP While this draft represents the best efforts of the co-authors, and 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 utilized. To allow for future innovation, the draft allocates numbering space for experimental implementations of both signals and data items. DLEP implementations MUST be capable of parsing and acting on the mandatorysignalsmessages and data items as documented in this specification. DLEPsignals/datamessages/data items that are optional, or are in the experimental numbering range SHOULD be silently dropped by an implementation if they are not understood. The intent of the optionalsignalsmessages and data items, as well as the experimental numbering space, is to allow for further development of DLEP protocol features and function. Having experimental space reserved for both signals and data items gives maximum flexibility for extending the protocol as conditions warrant. For example, experimental data items could be used by implementations to send additional metrics. A combination of experimentalsignals,messages, and associated data items, could be used to implement new flow control schemes. If subsequent research and development define new features and function, then it should be standardized either as an update to this document, or as an additional stand-alone specification. 6. Normal Session FlowAtNormal session flow is slightly different, depending on whether thestart ofimplementation represents arun, DLEP implementations (both routermodem or a router, andmodem) initializewhether discovery techniques are used. The normal flow by DLEP partner type is: 6.1 DLEP Modem session flow - Discovery case If thecommunications path. InDLEP modem implementation is utilizing the optional discovery mechanism, then the implementation will initialize a UDPimplementation, this includes opening a socket andsocket, binding it to an arbitrary port. This UDP socket is used to send thewell-known portPeer Discovery message to the DLEP link-local multicast address and port (TBD).OnceThe implementation then waits on receipt of a Peer Offer message, which MUST contain thecommunications pathunicast address and port for TCP- based communication with a DLEP router. The Peer Offer message MAY contain multiple address/port combinations. If more than one address/port combination isestablished,in the Peer Offer, the DLEP modem implementation SHOULD consider the list to be in priority sequence, with the "most desired" address/port combination listed first. However, modem implementationsare freeMAY use their own heuristics to determine the best address/port combination. At this point, the modem implementation MAY either destroy the UDP socket, or continue to issuea "Peer Discovery" message. ThePeer DiscoveryMAY be sent eithermessages to themulticastlink-local address/port combination. In either case, the TCP session initialization occurs as in the configured case. 6.2 DLEP Modem session flow - Configured case When a DLEP modem implementation has the addressallocatedand port information forDLEP (TBD),a TCP connection to the router (obtained either via configuration or via the discovery process described above), the modem will initialize and bind a TCP socket. This socket is used to connect to the DLEP router software. After aunicast address, obtained via a-priori configuration. Routers receivingsuccessful TCP connect, the modem implementation MUST issue a PeerDiscoveryInitialization messagerespond with a "Peer Offer" signal to indicate readinesstoparticipate inthe DLEPsession.router. Thereceiver of aPeerOfferInitialization messagerespondsMUST contain TLVs for ALL supported metrics from this modem (e.g. all MANDATORY metrics plus all OPTIONAL metrics supported by the implementation), along witha "Peer Offer ACK" message, completing discovery. Whilethe default values of those metrics. After sending the PeerDiscoveryInitialization, the modem implementation should wait for receipt of a Peer Initialization ACK messageMAY be sent tofrom theDLEP multicast address (TBD),router. Receipt of the PeerOffer, and all subsequent traffic, is sent to the unicast addressInitialization ACK indicates thatoriginatedthePeer Discovery. Oncerouter has received and processed the PeerOffer signal is acknowledged, both participants (routerInitialization, andmodem)the session MUST transition to the "in session"state, creating a logical, stateful session between the modem and the router. Subsequent DLEP signals are then processed within the context ofstate. At thisrouter/modem session. In the UDP-based implementation, traffic between DLEP modems and routers is correlated using the UDP 4-tuple (Source Address, Source Port, Destination Address, Destination Port). DLEP partners use these signals to build their respective information basespoint, messages regarding destinationsthat are accessible viain themodem,network, and/or Peer Update messages, can flow on the DLEP session between modem andlink characteristics associated with those destinations.router. The "in session" statecreated by the discovery signalsis maintained until one of the following conditions occur: o The session is explicitly terminated (using Peer Termination), or o The session times out, based on supplied timeout values. 6.3 DLEP Router session flow DLEP router implementations MUST support the discovery mechanism. Therefore, the normal flow is as follows: The implementation will initialize a UDP socket, binding that socket to the DLEP link-local multicast address (TBD) and the DLEP well- known port number (also TBD). The implementation will then initialize a TCP socket, on a unicast address and port. This socket is used to listen for incoming TCP connection requests. When the router implementation receives a Peer Discovery message on the UDP socket, it responds by issuing a Peer Offer message to the sender of the Peer Discovery. The Peer Offer message MUST contain the unicast address and port of the TCP listen socket, described above. A DLEP router implementation MAY respond with ALL address/port combinations that have an active TCP listen posted. If multiple address/port combinations are listed, the receiver of the Peer Offer MAY connect on any available address/port pair. Anything other than Peer Discovery messages received on the UDP socket MUST be silently dropped. When the DLEP router implementation accepts a connection via TCP, it will wait for receipt of a Peer Initialization message. The received Peer Initialization MUST contain metric TLVs for ALL mandatory metrics, and MUST contain metric TLVs for ANY optional metrics supported by the modem. If a new metric is to be introduced, the DLEP session between router and modem MUST be terminated and restarted, and the new metric described in a Peer Initialization message. 6.4 Common Session Flow In order to maintain the session between router and modem,OPTIONALperiodic "Heartbeat" messagesMAYSHOULD be exchanged. These messages are intended to keep the session alive, and to verify bidirectional connectivity between the two participants. DLEP also provides for an OPTIONAL Peer Update message, 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 the messages above, the participants will transmit DLEP messages concerning destinations in the network. These messages trigger creation/maintenance/deletion of"neighbors"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"Neighbor"Destination Up" signal. Receipt of aNeighborDestination Up causes the router to allocate the necessary resources, creating an entry in the information base with the specifics (e.g., MAC Address, Latency, Data Rate, etc) of the neighbor. The loss of a destination is communicated via the "Neighbor Down" signal, and changes in status to the destination (e.g. varying link quality, or addressing changes) are communicated via the "Neighbor Update" signal. The information on a given neighbor will persist in the router's information base until (1) a "Neighbor Down" is received, indicating that the modem has lost contact with the remote node, or (2) the router/modem session terminates, indicating that the router has lost contact with its own local modem. Again, metrics can be expressed within the context of a specific neighbor via the Neighbor Update message, or on a modem-wide basis via the Peer Update message. In cases where metrics are provided on the router/modem session, the receiver MUST propagate the metrics to allneighborsdestinations in its information base that are accessed via the originator. A DLEP participant MAY send metrics both in a router/modem session context (via the Peer Update message) and a specific neighbor context (via Neighbor Update) at any time. The heuristics for applying received metrics is left to implementations. In addition to receiving metrics about the link, DLEP provides an OPTIONAL signal allowing a router to request a differentamount of bandwidth,datarate, or latency, from the modem. This signal is referred to as the Link Characteristics Message, and gives the router the ability to deal with requisite increases (or decreases) of allocatedbandwidth/latencydatarate/latency in demand-based schemes in a more deterministic manner. 7. Mandatory Signals and Data Items The following DLEP signals are considered core to the specification; implementations MUST support these signals, and the associated data items, in order to be considered compliant: Signal Data Items ====== ========== Peer DiscoveryNone(Modem Only) DLEP Version Peer OfferNone(Router Only) DLEP Version IPv4 or IPv6 address(es) DLEP Port PeerOfferInitialization DLEP Version Maximum Data Rate (Receive) Maximum Data Rate (Transmit) Current Data Rate (Receive) Current Data Rate (Transmit) Latency Relative Link Quality (Receive) Relative Link Quality (Transmit) Peer Initialization ACK Status Peer Termination None Peer Termination ACK StatusNeighborDestination Up MAC Address Maximum Data Rate (Receive) Maximum Data Rate (Transmit) Current Data RateNeighbor(Receive) Current Data Rate (Transmit) Latency Relative Link Quality (Receive) Relative Link Quality (Transmit) Destination Update MAC Address Maximum Data Rate (Receive) Maximum Data Rate (Transmit) Current Data RateNeighbor(Receive) Current Data Rate (Transmit) Latency Relative Link Quality (Receive) Relative Link Quality (Transmit) Destination Down MAC Address All other DLEP signals and data items are OPTIONAL. Implementations MAY choose to provide them. Implementations that do not support optional signals and data items SHOULD parse, and silently drop, all unsupportedsignalsmessages and/or data items. 8. Generic DLEPPacketMessage Definition The Generic DLEPPacketMessage consists of a sequence of TLVs. The first TLV represents the signal being communicated (e.g., a"Neighbor"Destination Up", or a "Peer Offer"). Subsequent TLVs contain the data items pertinent to the signal (e.g., Maximum Data Rate, or Latency, etc). The Generic DLEP Packet Definition 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Signal TLV Type | Length | DLEP data items... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Signal - One of the DLEPSignalMessage TLV type values defined in this document. Length - Thelengthlength, expressed as a 16-bit quantity, of all of the DLEP data items associated with this signal. DLEP data items - One or more data items, encoded in TLVs, as defined in this document. 9. DLEP Data Items As mentioned earlier, DLEP protocol messages are transported as a collection of TLVs. The first TLV present in a DLEP message MUST be one of the Signal TLVs, documented in section[INSERT REFERENCE HERE].10. The signals are followed by one or more data items, indicating the specific changes that need to be instantiated in the receiver's information base. Valid DLEP Data Items are: TLV TLV Value Description ========================================= TBD DLEP Version TBD DLEP Port TBD Peer Type TBD IPv4 Address TBD IPv6 Address TBD Maximum Data Rate (Receive) (MDRR) TBD Maximum Data Rate (Transmit) (MDRT) TBD Current Data Rate (Receive) (CDRR) TBD Current Data Rate (Transmit) (CDRT) TBDTransmitLatency TBD Receive Resources TBD Transmit Resources TBD Expected Forwarding Time (EFT) TBD Relative Link Quality (Receive) (RLQR) TBD Relative Link Quality (Transmit) (RLQT) TBD Status TBD Heartbeat Interval/Threshold TBD Neighbor down ACK timer TBD Link Characteristics ACK timer TBD Credit Window Status TBD Credit Grant TBD Credit Request DLEP data item TLVs 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TLV Type | Length | Value... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - An 8-bit unsigned integer field specifying the data item being sent. Length - An 8-bit length of the value field of the data item Value - A field of length <Length> which contains data specific to a particular data item. 9.1 DLEP Version The DLEP Version TLV isan OPTIONALa MANDATORY TLV inboth thePeerDiscoveryDiscovery, Peer Offer, and PeerOfferInitialization messages. The Version TLV is used to indicate the version of the protocol running in theoriginator. A participant MAYsender. The receiver SHOULD use this information to decide if the potential session partner is running at a supported level. The DLEP Version TLV 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD |Length=4 | Major Version | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Minor Version | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBD Length - Length is 4 Major Version - Major version of the modem or router protocol. Minor Version - Minor version of the modem or router protocol. Support of this draft is indicated by setting the Major Version to '1', and the Minor Version to'3' (e.g.'5' (i.e. Version1.3).1.5). 9.2 DLEP Port The DLEP Port TLV is a MANDATORY TLV in the Peer Offer message. The DLEP Port TLV is used to indicate the TCP Port number on the DLEP server available for connections. The receiver MUST use this information to perform the TCP connect to the DLEP server. The DLEP Port TLV 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD |Length=2 | TCP Port Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBD Length - Length is 2 TCP Port Number - TCP Port number on the DLEP server. Minor Version - Minor version of the modem or router protocol. 9.3 Peer Type The Peer Type TLV is an OPTIONAL TLV in both the Peer Discovery and Peer Offer messages. The Peer Type TLV 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 TLV 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD |Length= peer |Peer Type String | | |type stringlen|Max Len = 80len| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBD Length - Length of peer typestring (80 octets maximum).string. Peer Type String - Non-Null terminated string,maximum length of 80 octets.using UTF-8 encoding. For example, a satellite modem might set this variable to 'Satellite terminal'.9.39.4 MAC Address The MAC address TLV MUST appear in allneighbor-orienteddestination-oriented signals (e.g.NeighborDestination Up,NeighborDestination Up ACK,NeighborDestination Down,NeighborDestination Down ACK,NeighborDestination Update, Link Characteristics Request, and Link Characteristics ACK). The MAC Address TLV contains the address of the destination on the remote node. The MAC address MAY be either a physical or a virtual destination. Examples of a virtual destination would be a multicast MAC address, or the broadcast MAC (0xFFFFFFFFFFFF). 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD |Length = 6 | MAC Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MAC Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBD Length - 6 MAC Address - MAC Address of the destination (either physical or virtual).9.49.5 IPv4 Address The IPv4 Address TLV is an OPTIONAL TLV. If supported, it MAY appear inNeighborDestination Up,NeighborDestination Update, and Peer Update messages. When included inNeighborDestination messages, the IPv4 Address TLV contains the IPv4 address of theneighbor,destination, as well as a subnet mask value. In the Peer Update message, it contains the IPv4 address of the originator of the message. In either case, the TLV 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 TLV 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD |Length = 6 | Add/Drop | IPv4 Address | | | | Indicator | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 Address | Subnet Mask | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBD Length - 6 Add/Drop - Value indicating whether this is a new or existingIPv4address (0x01), or a withdrawal of an address (0x02). IPv4 Address - The IPv4 address of theneighbordestination or peer. Subnet Mask - A subnet mask (0-32) to be applied to the IPv4 address.9.59.6 IPv6 Address The IPv6 Address TLV is an OPTIONAL TLV. If supported, it MAY be used in theNeighborDestination Up,NeighborDestination Update, Peer Discovery, and Peer Update Messages. When included inNeighborDestination messages, this data item contains the IPv6 address of theneighbor.destination. In the Peer Discovery and Peer Update, it contains the IPv6 address of the originating 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, as well as a subnet mask. The IPv6 Address TLV 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD |Length = 18 | Add/Drop | IPv6 Address | | | | Indicator | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 Address | Subnet Mask | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBD Length - 18 Add/Drop - Value indicating whether this is a new or existing address (0x01), or a withdrawal of an address (0x02). IPv6 Address - IPv6 Address of theneighbordestination or peer. Subnet Mask - A subnet mask value (0-128) to be applied to the Ipv6 address.9.69.7 Maximum Data Rate (Receive) The Maximum Data Rate Receive (MDRR) TLV is used inNeighborDestination Up,NeighborDestination Update, Peer Discovery, Peer Update, and Link Characteristics ACK Messages to indicate the maximum theoretical data rate, in bits per second, that can be achieved while receiving data on the link. When metrics are reported via the messages listed above, the maximum data rate receive MUST be reported.A value of 0 for the MDRR indicates that the Maximum Data Rate Receive is currently 'unknown'.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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD |Length = 8 | MDRR (bps) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MDRR (bps) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MDRR (bps) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBD Length - 8 Maximum Data Rate Receive - A 64-bit unsigned number, representing the maximum theoretical data rate, in bits per second (bps), that can be achieved while receiving on the link.An MDRR value of 0 MAY be used to indicate an 'unknown' data rate. 9.79.8 Maximum Data Rate (Transmit) The Maximum Data Rate Transmit (MDRT) TLV is used inNeighborDestination Up,NeighborDestination Update, Peer Discovery, Peer Update, and Link Characteristics ACK Messages to indicate the maximum theoretical data rate, in bits per second, that can be achieved while transmitting data on the link. When metrics are reported via the messages listed above, the maximum data rate transmit MUST be reported.A value of 0 for the MDRT MAY be used to indicate that the Maximum Data Rate Transmit is currently unknown, or cannot be calculated.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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD |Length = 8 | MDRT (bps) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MDRT (bps) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MDRT (bps) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBD Length - 8 Maximum Data Rate Transmit - A 64-bit unsigned number, representing the maximum theoretical data rate, in bits per second (bps), that can be achieved while transmitting on the link.An MDRT value of 0 indicates an 'unknown' data rate. 9.89.9 Current Data Rate (Receive) The Current Data Rate Receive (CDRR) TLV is used inNeighborDestination Up,NeighborDestination Update, Peer Discovery, Peer Update, Link Characteristics Request, and Link Characteristics ACK messages to indicate the rate at which the link is currently operating for receiving traffic. The Current Data Rate Receive is a MANDATORY data item. In the case of the Link Characteristics Request, CDRR represents the desired receive data rate for the link. When metrics are reported via the messages above (e.g.NeighborDestination Update), the current data rate receive MUST be reported. The Current Data Rate Receive TLV 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD |TLV Flags=0x10 |Length = 8 |CDRR (bps) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CDRR (bps) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CDRR (bps) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBD Length - 8 Current Data Rate Receive - A 64-bit unsigned number, representing the current data rate, in bits per second, that is currently be achieved while receiving traffic on the link. When used in the Link Characteristics Request, CDRR represents the desired receive rate, in bits per second, on the link. If there is no distinction between current and maximum receive data rates, current data rate receive SHOULD be set equal to the maximum data rate receive.A CDRR value of 0 MAY be used to indicate the CDRT is unknown, or cannot be calculated. 9.99.10 Current Data Rate (Transmit) The Current Data Rate Receive (CDRT) TLV is used inNeighborDestination Up,NeighborDestination Update, Peer Discovery, Peer Update, Link Characteristics Request, and Link Characteristics ACK messages to indicate the rate at which the link is currently operating for transmitting traffic. Current Data Rate Transmit is a MANDATORY data item. In the case of the Link Characteristics Request, CDRT represents the desired transmit data rate for the link. When metrics are reported via the messages above (e.g.NeighborDestination Update), the current data rate transmit MUST be reported. The Current Data Rate Transmit TLV 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD |TLV Flags=0x10 |Length = 8 |CDRT (bps) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CDRT (bps) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CDRT (bps) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBD Length - 8 Current Data Rate Transmit - A 64-bit unsigned number, representing the current data rate, in bits per second, that is currently be achieved while transmitting traffic on the link. When used in the Link Characteristics Request, CDRT represents the desired transmit rate, in bits per second, 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.A CDRT value of 0 MAY be used to indicate the CDRT is 'unknown', or cannot be calculated. 9.109.11 Expected Forwarding Time The Expected Forwarding Time (EFT) TLV is is an OPTIONAL data item. If supported, it MAY be used inNeighborDestination Up,NeighborDestination Update, Peer Discovery, and Peer Update messages to indicate the typical latency between the arrival of a given packet at the transmitting device and the reception of the packet at the other end of the link. EFT combines transmission time, idle time, waiting time, freezing time, and queuing time to the degree that those values are meaningful to a given transmission medium. The Expected Forwarding Time TLV 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD |Length = 4 | EFT (ms) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | EFT (ms) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBD Length - 4 EFT - A 32-bit unsigned number, representing the expected forwarding time, in milliseconds, on the link.9.119.12 Latency The Latency TLV is anOPTIONALMANDATORY data item.If supported, itIt is used inNeighborPeer Initialization, Destination Up,NeighborDestination Update, Peer Discovery, Peer Update, Link Characteristics Request, and Link Characteristics ACK messages to indicate the amount of latency on the link, or in the case of the Link Characteristics Request, to indicate the maximum latency required on the link. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD |Length = 2 | Latency (ms) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBD Length - 2 Latency - A 16-bit unsigned value, representing the transmission delay that a packet encounters as it is transmitted over the link. InNeighborDestination Up,NeighborDestination Update, and Link Characteristics ACK, this value is reported as delay, in milliseconds. The calculation of latency is implementation dependent. For example, the latency may be a running average calculated from the internal queuing. If a device cannot calculate latency, this TLV SHOUD NOT be issued. In the Link Characteristics Request Message, this value represents the maximum delay, in milliseconds, expected on the link.9.129.13 Resources (Receive) The Receive Resources TLV is an OPTIONAL data item. If supported, it is used inNeighborDestination Up,NeighborDestination Update, Peer Discovery, Peer Update, and Link Characteristics ACK messages to indicate a percentage(0- 100)(0-100) amount of resources (e.g. battery power), committed to receiving data, remaining on the originating peer. The Resources TLV contains the following fields: 0 1 2 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD |Length = 1 | Rcv Resources| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBD Length - 1 Receive Resources - A percentage, 0-100, representing the amount of remaining resources, such as battery power, allocated to receiving data.A value of '0' MAY be used to indicate the receive resources are unknown orIf a device cannot calculate receive resources, this TLV SHOULD NOT becalculated. 9.13issued. 9.14 Resources (Transmit) The Transmit Resources TLV is an OPTIONAL data item. If supported, it is used inNeighborDestination Up,NeighborDestination Update, Peer Discovery, Peer Update, and Link Characteristics ACK messages to indicate a percentage(0- 100)(0-100) amount of resources (e.g. battery power), committed to transmitting data, remaining on the originating peer. The Resources TLV contains the following fields: 0 1 2 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD |Length = 1 | Xmt Resources| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBD Length - 1 Transmit Resources - A percentage, 0-100, representing the amount of remaining resources, such as battery power, allocated to transmitting data.A value of '0' MAY be used to indicateIf the transmit resourcesare unknown orcannot becalculated. 9.14calculated, then the TLV SHOULD NOT be issued. 9.15 Relative Link Quality (Receive) The Relative Link Quality Receive (RLQR) TLV isan OPTIONALa MANDATORY data item. If supported, it is used inNeighborPeer Initialization, Destination Up,NeighborDestination Update, Peer Discovery, Peer Update, and Link Characteristics ACK messages to indicate the quality of the link for receiving data as calculated by the originating peer. The Relative Link Quality (Receive) TLV contains the following fields: 0 1 2 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD |Length = 1 |RCV Rel. Link | | | |Quality (RLQR) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBD Length - 1 Relative Link Quality (Receive) - A non-dimensional number, 1-100, representing relative link quality. A value of 100 represents a link of the highest quality.A value of '0' indicated the RLQR is 'unknown', orIf a device cannot calculate the RLQR, this TLV SHOULD NOT becalculated. 9.15issued. 9.16 Relative Link Quality (Transmit) The Transmit Link Quality Receive (RLQT) TLV isan OPTIONALa MANDATORY data item.If supported, itIt is used inNeighborPeer Initialization, Destination Up,NeighborDestination Update, Peer Discovery, Peer Update, and Link Characteristics ACK messages to indicate the quality of the link for transmitting data as calculated by the originating peer. The Relative Link Quality (Transmit) TLV contains the following fields: 0 1 2 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD |Length = 1 |XMT Rel. Link | | | |Quality (RLQR) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBD Length - 1 Relative Link Quality (Transmit) - A non-dimensional number, 1-100, representing relative link quality. A value of 100 represents a link of the highest quality.A value of '0' indicated the RLQT is 'unknown', orIf a device cannot calculate the RLQT, this TLV SHOULD NOT becalculated. 9.16issued. 9.17 Status The Status TLV is sent as part of an acknowledgement message, from either the modem or the router, to indicate the success or failure of a given request. The Status TLV contains the following fields: 0 1 2 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD |Length = 1 | Code | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBD Length - 1 Termination Code - 0 = Success, Non-zero = Failure. Specific values of a non-zero termination code depend on the operation requested (e.g.NeighborDestination Up,NeighborDestination Down, etc).9.179.18 HeartbeatInterval/ThresholdInterval The HeartbeatInterval/ThresholdInterval TLV isan OPTIONALa MANDATORY TLV.If supported, it MAYIt MUST be sent during PeerDiscoveryInitialization to indicate the desired Heartbeat timeout window.If the modem includes the Heartbeat Interval TLV in Peer Discovery, theThe router MUST either accept the timeout interval supplied by the modem, or reject the PeerDiscovery. Peer Discovery messages that do not include the Heartbeat Interval TLV in Peer Discovery indicates a desire to establishInitialization, and close therouter/modem session without an activity timeout (e.g. an infinite timeout value). If an activity timeout is supported, implementations MAY choose tosocket. Implementations MUST implement heuristics such that DLEP signals sent/received reset the timerwindow.interval. The Interval is used to specify a period (in seconds) for Heartbeat Messages (See Section 23).The Threshold value is used to indicate the desired number of windows, each of time (Heartbeat Interval) seconds, to wait before either participant declares the router/modem session lost. In this case, the overall amount of time before a router/modem is declared lost is expressed as (Interval * Threshold). SpecifyingBy specifying an Interval value of00, implementations MAY indicates the desire to disable Heartbeat messages entirely (e.g., the Interval is set to an infinitevalue). Setting the Threshold value to 0value), however, it isundefined, and TLVs with a Threshold value ofstrongly recommended that implementations use non 0 timer values. A DLEP session will be considered inactive, and MUST berejectedtorn down, bythe recipient.an implementation detecting that two (2) Heartbeat intervals have transpired without receipt of any DLEP messages. The HeartbeatInterval/ThresholdInterval TLV 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD |Length =12 | Interval |Threshold |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBD Length -12 Interval - 0 = Do NOT use heartbeats on this peer-to-peer session. Non-zero = Interval, in seconds, for heartbeat messages.Threshold - Number of windows, of Heartbeat Interval seconds, to wait before declaring a peer-to-peer session to be lost. 9.189.19 Link Characteristics ACK Timer The Link Characteristics ACK Timer TLV is an OPTIONAL TLV. If supported, it MAY be sent during PeerDiscoveryInitialization to indicate the desired number of seconds to wait for a response to a Link Characteristics Request. If a router receives this TLV from a modem during Peer Discovery, the router MUST either accept the timeout value, or reject the Peer Discovery. If this TLV is omitted, implementations supporting the Link Characteristics Request SHOULD choose a default value. The Link Characteristics ACK Timer TLV contains the following fields: 0 1 2 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD |Length = 1 | Interval | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBD Length - 1 Interval - 0 = Do NOT use timeouts for Link Characteristics requests on this router/modem session. Non-zero = Interval, in seconds, to wait before considering a Link Characteristics Request has been lost.9.199.20 Credit Window Status The Credit Window Status TLV is an OPTIONAL TLV. If credits are supported by the DLEP participants (both the router and the modem), the Credit Window Status TLV MUST be sent by the participant receiving a Credit Grant Request for a givenneighbor.destination. The Credit Window Status TLV 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD |Length = 16 | Modem Receive Window Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Modem Receive Window Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Modem Receive Window Value | Router Receive Window Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Router Receive Window Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Router Receive Window Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBD Length - 16 Modem Receive Window Value - A 64-bit unsigned number, indicating the current (or initial) number of credits available on the Modem Receive Window. Router Receive Window Value - A 64-bit unsigned number, indicating the current (or initial) number of credits available on the Router Receive Window.9.209.21 Credit Grant Request The Credit Grant Request TLV is an OPTIONAL TLV. If credits are supported, the Credit Grant Request TLV is sent from a DLEP participant to grant an increment to credits on a window. The Credit Grant TLV is sent as a data item in either theNeighborDestination Up orNeighborDestination Update messages. The value in a Credit Grant TLV represents an increment to be added to any existing credits available on the window. Upon successful receipt and processing of a Credit Grant TLV, the receiver MUST respond with a message containing a Credit Window Status TLV to report the updated aggregate values for synchronization purposes. In theNeighborDestination Up message, when credits are desired, the originating peer MUST set the initial credit value of the window it controls (e.g. the Modem Receive Window, or Router Receive Window) to an initial, non-zero value. If the receiver of aNeighborDestination Up message with a Credit Grant Request TLV supports credits, the receiver MUST either reject the use of credits, via aNeighborDestination Up ACK response with the correct Status TLV, or set the initial value from the data contained in the Credit Window Status TLV. If the initialization completes successfully, the receiver MUST respond to theNeighborDestination Up message with aNeighborDestination Up ACK message that contains a Credit Window Status TLV, initializing its receive window. The Credit Grant TLV 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD |Length = 8 | Credit Increment | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Credit Increment | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Credit Increment | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBD Length - 8 Reserved - A 64-bit unsigned number 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.219.22 Credit Request The Credit Request TLV is an OPTIONAL TLV. If credits are supported, the Credit Request TLV MAY be sent from either DLEP participant, via aNeighborDestination Update signal, to indicate the desire for the partner to grant additional credits in order for data transfer to proceed on the session. If the correspondingNeighborDestination Up message for this session did NOT contain a Credit Window Status TLV, indicating that credits are to be used on the session, then the Credit Request TLV MUST be rejected by the receiver via aNeighborDestination Update ACK message. The Credit Request TLV contains the following fields: 0 1 2 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD |Length = 0 | Reserved, MUST| | | | be set to 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBD Length - 0 Reserved - This field is currently unused and MUST be set to 0. 10. DLEP Protocol Messages DLEP messages are encoded as a string of Type-Length-Value (TLV) constructs. The first TLV in a DLEP message MUST be a valid DLEP signal, as defined in section 11.1 of this document. The second TLV MUST be the Identification data item, defined in section 10.1 Following those two TLVs are 0 or more TLVs, representing the data items that are appropriate for the signal. The layout of a DLEP message is thus: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DLEP Signal |DLEP Message |Identification |Identification | | Type value |length (9 + |TLV Type |TLV length | | (value TBD) |optional TLVs) |(TBD) |(8) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Router ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Modem ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Start of optional DLEP | | TLVs... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ All DLEP messages (signals) begin with this structure. Therefore, in the following descriptions of specific messages, this header structure is assumed, and will not be replicated. 10.1 Signal TLV Values As mentioned above, all DLEP messages begin with the Type value of the appropriate DLEP signal. Valid DLEP signals are: TLV TLV Value Description ========================================= TBD Peer Discovery TBD Peer Offer TBD PeerOffer ACKInitialization TBD Peer Update TBD Peer Update ACK TBD Peer Termination TBD Peer Termination ACK TBDNeighborDestination Up TBDNeighborDestination Up ACK TBDNeighborDestination Down TBDNeighborDestination Down ACK TBDNeighborDestination Update TBD Heartbeat TBD Link Characteristics Request TBD Link Characteristics ACK11.10.2 Peer Discovery Message The Peer Discovery Message is sent by a modem tobegin a newdiscover DLEPassociation.routers in the network. The Peer Offer message is required to complete the discovery process. Implementations MAY implement their own retry heuristics in cases where it is determined the Peer Discovery Message has timed out.A Peer Discovery Message received from a modem that is already in session MUST be processed as if a Peer Termination Message had been received. A router implementation MAY then process the received Peer Discovery Message. Note that metric data items MAY be supplied with the Peer Discovery, in order to populate default metric values, or to indicate a static, modem-wide environment. If metrics are supplied with the Peer Discovery message, these metrics MUST be used as the initial values for all neighbors (remote nodes) established via the modem.Given the packet format described in section 11, the initial TLV Type value is set to DLEP_PEER_DISCOVERY (value TBD).OPTIONAL TLVsThere arethen placed into the packet: OptionalNO Data ItemTLVs: - DLEP Version - DLEPTLVs associated with the PeerType - Heartbeat Interval - Heartbeat Threshold - Link Characteristics ACK Timer - Maximum Data Rate (Receive) - Maximum Data Rate (Transmit) - Current Data Rate (Receive) - Current Data Rate (Transmit) - Latency - Expected Forwarding Time - Resources (Receive) - Resources (Transmit) - Relative Link Quality (Receive) - Relative Link Quality (Transmit) 12.Discovery message. 10.3 Peer Offer Message The Peer Offer Message is sent by a DLEP router in response to a Peer Discovery Message. Upon receipt, and processing, of a Peer Offer message, the modemMUST respond withresponds by issuing aPeer Offer ACK message, completingTCP connect to thediscovery phase of DLEP. Both DLEP participants (router and modem) would then enter an "in session" state. Any subsequent Discovery messages sent or received on this session MUST be considered an error, andaddress/port combination specified in thesession MUST be terminated as if areceived PeerTermination Message had been received.Offer. The Peer Offer message MUST be sent to the unicast address of the originator of PeerDiscovery, regardless of whether the discovery was received on the DLEP multicast address (TBD) or on a unicast address.Discovery. To construct a Peer Offer message, the initial TLV type value is set to DLEP_PEER_OFFER (value TBD). The signal TLV is then followed by all MANDATORY Data Item TLVs, then by any OPTIONAL Data Item TLVs the implementation supports:OptionalMandatory Data Item TLVs: - DLEP Version -Peer TypeHeartbeat Interval - At least one (1) IPv4Address -or IPv6 Address TLV -Status - Heartbeat IntervalDLEP Port Optional Data Item TLVs: -Heartbeat ThresholdPeer Type -Link Characteristics ACK Timer 13.Status 10.4 PeerOffer ACKInitialization Message The PeerOffer ACKInitialization messageacknowledges receipt ofis sent by a modem to start the DLEP TCP session. It is sent by the modem after a TCP connect to the address/port combination in a received PeerOfferOffer, or to an address/port obtained from a-priori configuration. All supported metric data items MUST be included in the Peer Initialization message,and completeswith default values to be used on a "modem- wide" basis. This can be viewed as therouter/modemmodem "declaring" all supported metrics at DLEP sessionestablishment for DLEP.initialization. Receipt of any DLEP message containing a metric data item NOT included in Peer Initialization MUST be treated as an error, resulting in termination of the DLEP session between router and modem. To construct a Peer Initialization message, the initial TLV type value is set to DLEP_PEER_INIT (value TBD). The signal TLV is then followed by the required data items: Mandatory Data Item TLVs: - DLEP Version - Heartbeat Interval - Maximum Data Rate Receive - Maximum Data Rate Transmit - Current Data Rate Receive - Current Data Rate Transmit - Latency - Relative Link Quality Receive - Relative Link Quality Transmit Optional Data Item TLVs: - PeerOffer ACK messageType Note that metric data items MUST besentsupplied with the Peer Initialization, in order tounicast address ofpopulate default metric values. If, at any time, metrics are reported that were NOT in Peer Initialization, theoriginatorreceiving DLEP peer MUST treat this as a fatal error requiring termination of the DLEP session. 10.5 Peer Initialization ACK Message The Peer Initialization ACK message is a MANDATORY message, sent in response to a received PeerOfferInitialization message. The PeerOfferInitialization ACK messageMUST contain an OPTIONAL Status data item, indicating success or failurecompletes the TCP-level DLEP session establishment; the sender of theattemptmessage should transition toestablish a router/modem session.an "in- session" state when the message is sent, and the receiver should transition to the "in-session" state upon receipt (and successful parsing) of Peer Initialization ACK. To construct a PeerOfferInitialization ACK message, the initial TLV type value is set toDLEP_PEER_OFFER_ACKDLEP_PEER_INIT_ACK (value TBD).Mandatory data item TLV's are placed intoThe signal TLV is then followed by thepacket next:required data items: Mandatory Data Item TLVs: - StatusNote that there are NO OPTIONAL data item TLVs specified for this message. 14.Optional Data Item TLVs: - Peer Type 10.6 Peer Update Message The Peer Update message is an OPTIONAL message, sent by a DLEP peer to indicate local Layer 3 address changes, or for metric changes on a modem-wide basis. For example, addition of an IPv4 address to the routerwouldMAY prompt a Peer Update message to its attached DLEP modems. Also, a modem that changes its Maximum Data Rate for all destinations MAY reflect that change via a Peer Update Message 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"Neighbor"Destination Update" message to their local routers with the new (or deleted) addresses. Modems that do not track Layer 3 addresses SHOULD silently parse and ignore the Peer Update Message. Modems that track Layer 3 addresses MUST acknowledge the Peer Update with a Peer Update ACK message. Routers receiving a Peer Update with metric changes MUST apply the new metric to allneighborsdestinations (remote nodes) accessible via the modem. Supporting implementations are free to employ heuristics to retransmit Peer Update messages. The sending of Peer Update Messages for Layer 3 address changes SHOULD cease when a either participant (router or modem) determines that the other implementation does NOT support Layer 3 address tracking. If metrics are supplied with the Peer Update message (e.g. Maximum Data Rate), these metrics are considered to be modem-wide, and therefore MUST be applied to allneighborsdestinations in the information base associated with the router/modem session. To construct a Peer Update message, the initial TLV type value is set to DLEP_PEER_UPDATE (value TBD). The Signal TLV is followed by any OPTIONAL Data Item TLVs. Optional Data Item TLVs: - IPv4 Address - IPv6 Address - Maximum Data Rate (Receive) - Maximum Data Rate (Transmit) - Current Data Rate (Receive) - Current Data Rate (Transmit) - Latency - Expected Forwarding Time - Resources (Receive) - Resources (Transmit) - Relative Link Quality (Receive) - Relative Link Quality (Transmit)15.10.7 Peer Update ACK Message The Peer Update ACK message is an OPTIONAL message, and is sent by implementations supporting Layer 3 address tracking and/or modem-wide metrics to indicate whether a Peer Update Message was successfully processed. If the Peer Update ACK is issued, it MUST contain a Status data item, indicating the success or failure of processing the received Peer Update. To construct a Peer Update ACK message, the initial TLV type value is set to DLEP_PEER_UPDATE_ACK (value TBD). The Status data item TLV is placed in the packet next, completing the Peer Update ACK.OptionalMandatory Data Item TLVs: - Status Note that there are NO OPTIONAL data item TLVs specified for this message.16.10.8 Peer Termination Message The Peer Termination Message is sent by a DLEP participant when the router/modem session needs to be terminated. Implementations receiving a Peer Termination message MUST send a Peer Termination ACK message to confirm the termination process. The sender of a Peer Termination message is free to define its heuristics in event of a timeout. The receiver of a Peer Termination Message MUST release all resources allocated for the router/modem session, and MUST eliminate allneighborsdestinations 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. NoNeighborDestination Down messages are sent. To construct a Peer Termination message, the initial TLV type value is set to DLEP_PEER_TERMINATION (value TBD). The Signal TLV is followed by any OPTIONAL Data Item TLVs the implementation supports: Optional Data Item TLVs: - Status17.10.9 Peer Termination ACK Message The Peer Termination Message ACK is sent by a DLEP peer in response to a received Peer Termination order. Receipt of a Peer Termination ACK message completes the teardown of the router/modem session. To construct a Peer Termination ACK message, the initial TLV type value is set to DLEP_PEER_TERMINATION_ACK (value TBD). The Identification data item TLV is placed in the packet next, followed by any OPTIONAL TLVs the implementation supports: Optional Data Item TLVs: - Status18. Neighbor10.10 Destination Up Message A DLEP participant sends theNeighborDestination Up message to report that a new destination has been detected. ANeighborDestination Up ACK Message is required to confirm a receivedNeighborDestination Up. ANeighborDestination Up message 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) exists in the network. The sender of theNeighborDestination Up Message is free to define its retry heuristics in event of a timeout. When aNeighborDestination Up message is received and successfully parsed, 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 aNeighborDestination Up message, the initial TLV type value is set toDLEP_NEIGHBOR_UPDLEP_Destination_UP (value TBD). The MAC Address data item TLV is placed in the packet next, followed by any supported OPTIONAL Data Item TLVs into the packet: Optional Data Item TLVs: - IPv4 Address - IPv6 Address - Maximum Data Rate (Receive) - Maximum Data Rate (Transmit) - Current Data Rate (Receive) - Current Data Rate (Transmit) - Latency - Expected Forwarding Time - Resources (Receive) - Resources (Transmit) - Relative Link Factor (Receive) - Relative Link Factor (Transmit) - Credit Window Status19. Neighbor10.11 Destination Up ACK Message A DLEP participant sends theNeighborDestination Up ACK Message to indicate whether aNeighborDestination Up Message was successfully processed. To construct aNeighborDestination Up ACK message, the initial TLV type value is set toDLEP_NEIGHBOR_UP_ACKDLEP_Destination_UP_ACK (value TBD). The MAC Address data item TLV is placed in the packet next, containing the MAC address of the DLEPneighbor.destination. The implementation would then place any supported OPTIONAL Data Item TLVs into the packet: Optional Data Item TLVs: - Credit Window Status20. Neighbor10.12 Destination Down Message A DLEP peer sends theNeighborDestination Down message to report when a destination (a remote node or a multicast group) is no longer reachable. TheNeighborDestination Down message MUST contain the MAC Address data item TLV. Other TLVs as listed are OPTIONAL, and MAY be present if an implementation supports them. ANeighborDestination Down ACK Message MUST be sent by the recipient of aNeighborDestination Down message to confirm that the relevant data has been removed from the information base. The sender of theNeighborDestination Down message is free to define its retry heuristics in event of a timeout. To construct aNeighborDestination Down message, the initial TLV type value is set toDLEP_NEIGHBOR_DOWNDLEP_Destination_DOWN (value TBD). The signal TLV is followed by the mandatory MAC Address data item TLV. Note that there are NO OPTIONAL data item TLVs for this message.21. Neighbor10.13 Destination Down ACK Message A DLEP participant sends theNeighborDestination Down ACK Message to indicate whether a receivedNeighborDestination Down Message was successfully processed. If successfully processed, the sender of the ACK MUST have removed all entries in the information base that pertain to the referencedneighbor.destination. As with theNeighborDestination Down message, there are NO OPTIONAL Data Item TLVs defined for theNeighborDestination Down ACK message. To construct aNeighborDestination Down message, the initial TLV type value is set toDLEP_NEIGHBOR_DOWN_ACKDLEP_Destination_DOWN_ACK (value TBD). The mandatory data item TLVs follow: - MAC Address Data item - Status data item22. Neighbor10.14 Destination Update Message A DLEP participant sends theNeighborDestination Update message when it detects some change in the information base for a givenneighbordestination (remote node or multicast group). Some examples of changes that would prompt aNeighborDestination Update message are: - Change in link metrics (e.g., Data Rates) - Layer 3 addressing change (for implementations that support it) To construct aNeighborDestination Update message, the initial TLV type value is set toDLEP_NEIGHBOR_UPDATEDLEP_Destination_UPDATE (value TBD). Following the signal TLV are the mandatory Data Item TLVs: MAC Address data item TLV After placing the mandatory data item TLV into the packet, the implementation would place any supported OPTIONAL data item TLVs. Possible OPTIONAL data item TLVs are: - IPv4 Address - IPv6 Address - Maximum Data Rate (Receive) - Maximum Data Rate (Transmit) - Current Data Rate (Receive) - Current Data Rate (Transmit) - Latency - Resources (Receive) - Resources (Transmit) - Relative Link Quality (Receive) - Relative Link Quality (Transmit) - Credit Window Status - Credit Grant - Credit Request23.10.15 Heartbeat Message A Heartbeat Message is sent by a DLEP participant every N seconds, where N is defined in the "Heartbeat Interval" field of the discovery message. Note that implementationsomittingsetting the Heartbeat Interval to 0 effectively set the interval to an infinite value, therefore, in those cases, this message would NOT be sent. The message is used by participants to detect when a DLEP session partner (either the modem or the router) is no longer communicating. Participants SHOULD allowsome integral number oftwo (2) heartbeat intervals(default 4)to expire with no traffic on the router/modem session before initiating DLEP session termination procedures. To construct a Heartbeat message, the initial TLV type value is set to DLEP_PEER_HEARTBEAT (value TBD). The signal TLV is followed by the mandatory Heartbeat Interval/Threshold data item. Note that there are NO OPTIONAL data item TLVs for this message.24.10.16 Link Characteristics Request Message The Link Characteristics Request Message is an OPTIONAL message, and is sent by the router to request that the modem initiate changes for specific characteristics of the link.Since theThe requestspecifies a neighbor, itcan reference either a realdestination(e.g., a remote node), or a logicaldestination(e.g., a multicastdestination)group) destination within the network. The Link Characteristics Request message contains either a Current Data Rate (CDRR or CDRT) TLV to request a differentamount of bandwidthdatarate than what is currently allocated, a Latency TLV to request that traffic delay on the link not exceed the specified value, or both. A Link Characteristics ACK Message is required to complete the request. Implementations are free to define their retry heuristics in event of a timeout. Issuing a Link Characteristics Request with ONLY the MAC Address TLV is a mechanism a peer MAY use to request metrics (via the Link Characteristics ACK) from its partner. To construct a Link Characteristics Request message, the initial TLV type value is set toDLEP_NEIGHBOR_LINK_CHAR_REQDLEP_Destination_LINK_CHAR_REQ (value TBD). Following the signal TLV is the mandatory Data Item TLV: MAC Address data item TLV After placing the mandatory data item TLV into the packet, the implementation would place any supported OPTIONAL data item TLVs. Possible OPTIONAL data item TLVs are: Current Data Rate - If present, this value represents the NEW (or unchanged, if the request is denied) Current Data Rate in bits per second (bps). Latency - If present, this value represents the maximum desired latency (e.g., it is a not-to-exceed value) in milliseconds on the link.25.10.17 Link Characteristics ACK Message The LInk Characteristics ACK message is an OPTIONAL message, and is sent by modems supporting it to the router letting the router know the success or failure of a requested change in link characteristics. The Link Characteristics ACK message SHOULD contain a complete set of metric data item TLVs. It MUST contain the same TLV types as the request. The values in the metric data item TLVs in the Link Characteristics ACK message MUST reflect the link characteristics after the request has been processed. To construct a Link Characteristics Request ACK message, the initial TLV type value is set toDLEP_NEIGHBOR_LINK_CHAR_ACKDLEP_Destination_LINK_CHAR_ACK (value TBD). Following the signal TLV is the mandatory Data Item TLV: MAC Address data item TLV After placing the mandatory data item TLV into the packet, the implementation would place any supported OPTIONAL data item TLVs. Possible OPTIONAL data item TLVs are: Current Data Rate - If present, this value represents the requested data rate in bits per second (bps). Latency - If present, this value represents the NEW maximum latency (or unchanged, if the request is denied), expressed in milliseconds, on the link.26.11. Security Considerations The protocol does not contain any mechanisms for security (e.g. authentication or encryption). The protocol assumes that any security would be implemented in the underlying transport (for example, by use of DTLS or some other mechanism), and is therefore outside the scope of this document.27.12. IANA Considerations This section specifies requests to IANA.27.112.1 Registrations This specification defines: o A new repository for DLEP signals, with fifteen values currently assigned. o Reservation of numbering space for Experimental DLEP signals. o A new repository for DLEP Data Items, with twenty-one values currently assigned. o Reservation of numbering space in the Data Items repository for experimental data items. o A request for allocation of a well-known port for DLEP communication. o A request for allocation of a multicast address for DLEP discovery.27.212.2 Expert Review: Evaluation Guidelines No additional guidelines for expert review are anticipated.27.3 Signal (Message)12.3 Message (Signal) TLV Type Registration A new repository must be created with the values of the DLEPsignals.messages. Valid signals are: o Peer Discovery o Peer Offer o PeerOfferInitialization o Peer Initialization ACK o Peer Update o Peer Update ACK o Peer Termination o Peer Termination ACK oNeighborDestination Up oNeighborDestination Up ACK oNeighborDestination Down oNeighborDestination Down ACK oNeighborDestination Update o Heartbeat o Link Characteristics Request o Link Characteristics ACK It is also requested that the repository contain space for experimental signal types.27.412.4 DLEP Data Item Registrations A new repository for DLEP Data Items must be created. Valid Data Items are: o DLEP Version o Peer Type o MAC Address o IPv4 Address o IPv6 Address o Maximum Data Rate (Receive) o Maximum Data Rate (Transmit) o Current Data Rate (Receive) o Current Data Rate (Transmit) o Latency o Expected Forwarding Time o Resources (Receive) o Resources (Transmit) o Relative Link Quality (Receive) o Relative Link Quality (Transmit) o Status o Heartbeat Interval/Threshold 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.27.512.5 DLEP Well-known Port It is requested that IANA allocate a well-known port number for DLEP communication.27.612.6 DLEP Multicast Address It is requested that IANA allocate a multicast address for DLEP discovery messages.30.13. Appendix A.30.113.1 Peer Level Message Flows30.1.113.1.1 Modem Device Restarts Discovery Router Modem Message Description ==================================================================== <-------Peer Discovery--------- Modem initiates discovery ---------Peer Offer-----------> Router detects a problem, sends w/ Non-zero Status TLV Peer Offer w/Status TLV indicating the error. Modem accepts failure, restarts discovery process. <-------Peer Discovery--------- Modem initiates discovery ---------Peer Offer-----------> Router accepts, sends Peer Offer w/ Zero Status TLV w/ Status TLV indicating success. Discovery completed.30.1.213.1.2 Modem Device Detects Peer Offer Timeout Router Modem Message Description ==================================================================== <-------Peer Discovery--------- Modem initiates discovery, starts a guard timer. Modem guard timer expires. Modem restarts discovery process. <-------Peer Discovery--------- Modem initiates discovery, starts a guard timer. ---------Peer Offer-----------> Router accepts, sends Peer Offer w/ Zero Status TLV w/ Status TLV indicating success. Discovery completed.30.1.313.1.3 Router Peer Offer Lost Router Modem Message Description ==================================================================== <-------Peer Discovery--------- Modem initiates discovery, starts a guard timer. ---------Peer Offer-------|| Router offers availability Modem times out on Peer Offer, restarts discovery process. <-------Peer Discovery--------- Modem initiates discovery ---------Peer Offer-----------> Router detects subsequent discovery, internally terminates the previous, accepts the new association, sends Peer Offer w/Status TLV indicating success. Discovery completed.30.1.413.1.4 Discovery Success Router Modem Message Description ==================================================================== <-------Peer Discovery--------- Modem initiates discovery ---------Peer Offer-----------> Router offers availability-------Peer Heartbeat---------> <-------Peer Heartbeat---------<-----Peer Initialization------ Modem Connects on TCP Port <------Peer Heartbeat---------- -------Peer Heartbeat---------> <==============================>Neighbor SessionsMessage flow about destinations (i.e. Destination Up, Destination Down, Destination update) <-------Peer Heartbeat--------- -------Peer Heartbeat---------> --------Peer Term Req---------> Terminate Request <--------Peer Term Res--------- Terminate Response30.1.529.1.5 Router Detects a Heartbeat timeout Router Modem Message Description ==================================================================== <-------Peer Heartbeat--------- -------Peer Heartbeat---------> ||---Peer Heartbeat--------- ~ ~ ~ ~ ~ ~ ~ -------Peer Heartbeat---------> ||---Peer Heartbeat--------- Router Heartbeat Timer expires, detects missing heartbeats. Router takes down allneighbordestination sessions and terminates the Peer association. ------Peer Terminate ---------> Peer Terminate Request Modem takes down allneighbordestination sessions, then acknowledges the Peer Terminate <----Peer Terminate ACK--------- Peer Terminate ACK30.1.629.1.6 Modem Detects a Heartbeat timeout Router Modem Message Description ==================================================================== <-------Peer Heartbeat--------- -------Peer Heartbeat------|| <-------Peer Heartbeat--------- ~ ~ ~ ~ ~ ~ ~ -------Peer Heartbeat------|| <-------Peer Heartbeat--------- Modem Heartbeat Timer expires, detects missing heartbeats. Modem takes down allneighbordestination sessions <-------Peer Terminate-------- Peer Terminate Request Router takes down allneighbordestination sessions, then acknowledges the Peer Terminate ------Peer Terminate ACK-----> Peer Terminate ACK30.1.729.1.7 Peer Terminate (from Modem) Lost Router Modem Message Description ==================================================================== ||------Peer Terminate-------- Modem Peer Terminate Request Router Heartbeat times out, terminates association. --------Peer Terminate-------> Router Peer Terminate <-----Peer Terminate ACK------ Modem sends Peer Terminate ACK30.1.829.1.8 Peer Terminate (from Router) Lost Router Modem Message Description ==================================================================== -------Peer Terminate--------> Router Peer Terminate Request Modem HB times out, terminates association. <------Peer Terminate-------- Modem Peer Terminate ------Peer Terminate ACK-----> Peer Terminate ACK30.2 Neighbor29.2 Destination Specific Message Flows30.2.129.2.1 ModemNeighborDestination Up Lost Router Modem Message Description ====================================================================||-----Neighbor||-----Destination Up ------------ Modem sendsNeighborDestination Up Modem timesout on ACK<------Neighbor<------Destination Up ------------ Modem sendsNeighborDestination Up------Neighbor------Destination Up ACK---------> Router accepts theneighbordestination session<------Neighbor<------Destination Update--------- ModemNeighborDestination Metrics . . . . . . . .<------Neighbor<------Destination Update--------- ModemNeighborDestination Metrics30.2.229.2.2 Router Detects DuplicateNeighborDestination Ups Router Modem Message Description ====================================================================<------Neighbor<------Destination Up ------------ Modem sendsNeighborDestination Up------Neighbor------Destination Up ACK-------|| Router accepts theneighbordestination session Modem timesout on ACK<------Neighbor<------Destination Up ------------ Modem resendsNeighborDestination Up Router detects duplicateNeighbor,Destination, takes down the previous, accepts the newNeighbor. ------NeighborDestination. ------Destination Up ACK---------> Router accepts theneighbordestination session<------Neighbor<------Destination Update--------- ModemNeighborDestination Metrics . . . . . . . .<------Neighbor<------Destination Update--------- ModemNeighborDestination Metrics30.2.3 Neighbor29.2.3 Destination Up, No Layer 3 Addresses Router Modem Message Description ====================================================================<------Neighbor<------Destination Up ------------ Modem sendsNeighborDestination Up------Neighbor------Destination Up ACK---------> Router accepts theneighbordestination session Router ARPs for IPv4 if defined. Router drives ND for IPv6 if defined.<------Neighbor<------Destination Update--------- ModemNeighborDestination Metrics . . . . . . . .<------Neighbor<------Destination Update--------- ModemNeighborDestination Metrics30.2.4 Neighbor29.2.4 Destination Up with IPv4, No IPv6 Router Modem Message Description ====================================================================<------Neighbor<------Destination Up ------------ Modem sendsNeighborDestination Up with the IPv4 TLV------Neighbor------Destination Up ACK---------> Router accepts theneighbordestination session Router drives ND for IPv6 if defined.<------Neighbor<------Destination Update--------- ModemNeighborDestination Metrics . . . . . . . .<------Neighbor<------Destination Update--------- ModemNeighborDestination Metrics30.2.5 Neighbor29.2.5 Destination Up with IPv4 and IPv6 Router Modem Message Description ====================================================================<------Neighbor<------Destination Up ------------ Modem sendsNeighborDestination Up with the IPv4 and IPv6 TLVs------Neighbor------Destination Up ACK---------> Router accepts theneighbordestination session<------Neighbor<------Destination Update--------- ModemNeighborDestination Metrics . . . . . . . .30.2.6 Neighbor29.2.6 Destination Session Success Router Modem Message Description ==================================================================== ---------Peer Offer-----------> Router offers availability -------Peer Heartbeat---------><------Neighbor<------Destination Up ----------- Modem------Neighbor------Destination Up ACK--------> Router<------Neighbor<------Destination Update--------- Modem . . . . . . . .<------Neighbor<------Destination Update--------- Modem Modem initiates the terminate<------Neighbor<------Destination Down ---------- Modem------Neighbor------Destination Down ACK-------> Router or Router initiates the terminate------Neighbor------Destination Down ----------> Router<------Neighbor<------Destination Down ACK------- Modem Acknowledgements The authors 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, Henning Rogge, and Rick Taylor. The authors would also like to acknowledge the influence and contributions of Chris Olsen,Teco Boot,Martin Duke, Subir Das, Jaewon Kang, Vikram Kaul,Rick Taylor, John Dowdell, Nelson Powell, Bow-Nan Cheng,andHenning Rogge.Nelson Powell. Normative References [RFC5578] Berry, B., Ed., "PPPoE with Credit Flow and Metrics", RFC 5578, February 2010. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Informative References[DTLS][TLS] Dierks, T. and Rescorla,E., Ed,. "DatagramE. "The Transport LayerSecurity",Security (TLS) Protocol", RFC4347, April 2006.5246, August 2008. Author's Addresses Stan Ratliff Cisco 170 West Tasman Drive San Jose, CA 95134 USA EMail: sratliff@cisco.com Bo Berry Cisco 170 West Tasman Drive San Jose, CA 95134 USA EMail: boberry@cisco.com Greg Harrison Cisco 170 West Tasman Drive San Jose, CA 95134 USA EMail: greharri@cisco.com Shawn JuryNetApp 7301 Kit Creek Road, Building 2 Research Triangle Park, NC 27709Cisco 170 West Tasman Drive San Jose, CA 95134 USA Email:shawn.jury@netapp.comsjury@cisco.com Darryl Satterwhite Broadcom USA Email: dsatterw@broadcom.com