Mobile Ad hoc Networks Working S. Ratliff Group B. Berry Internet-Draft G. Harrison Intended status: Standards Track D. Satterwhite Expires:August 10, 2012March 3, 2013 Cisco Systems S. Jury NetAppFebruary 6,August 30, 2012 Dynamic Link Exchange Protocol (DLEP)draft-ietf-manet-dlep-02draft-ietf-manet-dlep-03 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 onAugust 10, 2012 .February 21, 2013. 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 . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1 Requirements . . . . . . . . . . . . . . . . . . . . . . .67 2. Assumptions . . . . . . . . . . . . . . . . . . . . . . . . .6. 7 3. Credits . . . . . . . . . . . . . . . . . . . . . . . . . . .7. 8 4. Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . .7. 9 5. Extensions to DLEP . . . . . . . . . . . . . . . . . . . . . .810 6. Normal Session Flow . . . . . . . . . . . . . . . . . . . . .8 7. Generic DLEP Packet Definition. 10 7. Mandatory Signals and Data Items . . . . . . . . . . . . . . .912 8.Message Header FormatGeneric DLEP Packet Definition . . . . . . . . . . . . . . . . 13 9. DLEP Data Items . . . .10 9. Message TLV Block Format. . . . . . . . . . . . . . . . . . .10 10. DLEP Sub-TLVs. 13 9.1 Identification . . . . . . . . . . . . . . . . . . . . . . 14 9.2 DLEP Version .11 10.1. Identification Sub-TLV.. . . . . . . . . . . . . . . . .12 10.2. DLEP Version Sub-TLV.. . . . . 15 9.3 Peer Type . . . . . . . . . . . . .13 10.3. Peer Type Sub-TLV. . . . . . . . . . . . 16 9.4 MAC Address . . . . . . . .14 10.4. MAC Address Sub-TLV. . . . . . . . . . . . . . . . 16 9.5 IPv4 Address . . .14 10.5. IPv4 Address Sub-TLV.. . . . . . . . . . . . . . . . . .15 10.6.. . 17 9.6 IPv6 AddressSub-TLV.. . . . . . . . . . . . . . . . . .16 10.7.. . . . . 18 9.7 Maximum Data RateSub-TLV. . . . . . . . . . . . . . . .16 10.8.. . . . . 18 9.8 Current Data RateSub-TLV. . . . . . . . . . . . . . . .17 10.9. Latency Sub-TLV. . . . . 19 9.9 Expected Forwarding Time . . . . . . . . . . . . . . . .18 10.10. Resources Sub-TLV. 20 9.10 Latency . . . . . . . . . . . . . . . . . . . . .18 10.11. Expected Forwarding Time Sub-TLV.. . . . 20 9.11 Resources . . . . . . . .19 10.12.. . . . . . . . . . . . . . . . 21 9.12 Relative Link QualitySub-TLV. . . . . . . . . . . . . .20 10.13. Peer Termination Sub-TLV. .. . . . 22 9.13 Status . . . . . . . . . . .20 10.14. Heartbeat Interval Sub-TLV.. . . . . . . . . . . . . . .21 10.15.22 9.14 HeartbeatThreshold Sub-TLVInterval/Threshold . . . . . . . . . . . . . . .21 10.16.23 9.15 Link Characteristics ACK TimerSub-TLV.. . . . . . . . .22 10.17.. . . . . 24 9.16 Credit Window StatusSub-TLV.. . . . . . . . . . . . . .23 10.18.. . . . . 24 9.17 Credit GrantSub-TLV.Request . . . . . . . . . . . . . . . . . .24 10.19.. 25 9.18 Credit RequestSub-TLV.. . . . . . . . . . . . . . . . .24 11.. . . . . 26 10. DLEP Protocol Messages . . . . . . . . . . . . . . . . . . .25 11.1. Message Block. 27 10.1 Signal TLV Values . . . . . . . . . . . . . . . .25 12. Peer Discovery Messages. . . . 27 11. Peer Discovery Message . . . . . . . . . . . . . . .26 12.1. Attached Peer Discovery Message. . . . . 28 12. Peer Offer Message . . . . . . . .26 12.2. Detached Peer Discovery Message. . . . . . . . . . . . .27. 28 13. Peer Offer ACK Message . . . . . . . . . . . . . . . . . . . .. .29 14. Peer UpdateMessage.Message . . . . . . . . . . . . . . . . . . . . . 30 15. Peer Update ACKMessage.Message . . . . . . . . . . . . . . . . . . . 31 16. Peer Termination Message . . . . . . . . . . . . . . . . . . .3231 17. Peer Termination ACK Message . . . . . . . . . . . . . . . . .3331 18. Neighbor Up Message . . . . . . . . . . . . . . . . . . . . .3332 19. Neighbor Up ACKMessage.Message . . . . . . . . . . . . . . . . . . .3532 20. Neighbor Down Message . . . . . . . . . . . . . . . . . . . .3533 21. Neighbor Down ACKMessage.Message . . . . . . . . . . . . . . . . . .3633 22. Neighbor Update Message . . . . . . . . . . . . . . . . . . .3734 23.Neighbor Address Update Message.Heartbeat Message . . . . . . . . . . . . . . .38. . . . . . . 34 24.Neighbor Address Update ACK Message.Link Characteristics Request Message . . . . . . . . . . . . .3935 25.HeartbeatLink Characteristics ACK Message . . . . . . . . . . . . . . . 36 26. Security Considerations . . . . . . .40 26. Link Characteristics Message. . . . . . . . . . . . 36 27. IANA Considerations . . . . .40 27. Link Characteristics ACK. . . . . . . . . . . . . . . . 36 27.1 Registrations . . . . . . . . . . . . . . . . . . . . . . 36 27.2 Expert Review: Evaluation Guidelines . . . . . . . . . . . 37 27.3 Signal (Message) TLV Type Registration . . . . . . . . . . 37 27.4 DLEP Data Item Registrations . . . . . . . . . . . . . . . 38 27.5 DLEP Well-known Port . . . . . . . . . . . . . . . . . . . 38 27.6 DLEP Multicast Address . . . . . . . . . . . . . . . . . . 38 30. Appendix A. . . . . . . . . . . . . . . . . . . . . . . . . . 38 30.1 Peer Level Message Flows . . . . . . . . . . . . . . .42 28. Security Considerations.. . 38 30.1.1 Modem Device Restarts Discovery . . . . . . . . . . . 38 30.1.2 Modem Device Detects Peer Offer Timeout . . . . . . . 39 30.1.3 Router Peer Offer Lost . . .43 29. IANA Considerations.. . . . . . . . . . . . . 40 30.1.4 Discovery Success . . . . . . . .43 29.1 TLV Registrations.. . . . . . . . . . 40 30.1.5 Router Detects a Heartbeat timeout . . . . . . . . . .43 29.2 Expert Review: Evaluation Guidelines41 30.1.6 Modem Detects a Heartbeat timeout . . . . . . . . . . 41 30.1.7 Peer Terminate (from Modem) Lost . . . .43 29.3. . . . . . . 42 30.1.8 Peer Terminate (from Router) Lost . . . . . . . . . . 42 30.2 Neighbor Specific MessageTLV Type RegistrationsFlows . . . . . . . . . . . . . 42 30.2.1 Modem Neighbor Up Lost . . . . . . . . . . . . . . . . 4329.4 DLEP Order Registrations30.2.2 Router Detects Duplicate Neighbor Ups . . . . . . . . 43 30.2.3 Neighbor Up, No Layer 3 Addresses . . . . . . . . . . 4429.5 DLEP Sub-TLV Type Registrations.30.2.4 Neighbor Up with IPv4, No IPv6 . . . . . . . . . . . . 44 30.2.5 Neighbor Up with IPv4 and IPv6 . . . . . . . . . . . . 4430. Appendix A30.2.6 Neighbor Session Success . . . . . . . . . . . . . . . 45 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . 45 Normative References . . . . . . . . . . . . . . . . . . . . . . . 45 Informative References . . . . . . . . . . . . . . . . . . . . . . 46 Author's Addresses . . . . . . . . . . . . . . . . . . . . . . . . 46 1. Introduction There exist today a collection of modem devices that control links of variable bandwidth and quality. Examples of these types of links include line-of-sight (LOS) radios, satellite terminals, andcable/ DSLcable/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 and bandwidth varies with respect to individual neighbors 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 the bandwidth 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 a bandwidth of 54Mbps for unicast traffic, the other laptop, being relatively far away, or obstructed by some object, can simultaneously have a bandwidth of only 32Mbps for unicast. However, for multicast traffic sent from the access point, all traffic is sent at the base transmission rate (which is configurable, but depending on the model of the access point, is usually 24Mbps or less). In addition to utilizing variable bandwidth 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 an event-driven paradigm, where acquisition of a new neighbor (or loss of an existing one) issomehowsignaled, 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 in bandwidth, 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, additional bandwidth 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 additional bandwidth will be allocated; rather, it may result in data loss and additional retransmissions on the link.In attempting to addressAddressing 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 routing neighbors). The following diagrams are used to illustrate the scope of DLEPsessions. |-----Local Neighbor-----| |-----Remote Neighbor----|packets. |-------Local Node-------| |-------Remote Node------| | | |(far-end device)| +--------+ +-------+ +-------+ +--------+ | Router |=======| Modem |{~~~~~~~~}| Modem |=======| Router | | | | Device| | Device| | | +--------+ +-------+ +-------+ +--------+ | | | Link | | | |-DLEP--| | Protocol | |-DLEP--| | | | (e.g. | | | | | | 802.11) | | | Figure 1: DLEP Network In Figure 1, whenathe localclient (Modem device)modem detects the presence of a remoteneighbor,node, it (the local modem) sendsan indicationa signal to itslocalrouter via the DLEPsession.protocol. Upon receipt of theindication,signal, the local routerwouldmay takeappropriatewhatever action(e.g. initiation ofit deems appropriate, such as initiating discoveryorprotocols, and/or issuing HELLOprotocols)messages to converge the network.After notification of the new neighbor,On a continuing, as-needed basis, the modemdevice utilizes thedevices utilize DLEPsessionto reporttheany characteristics of the link (bandwidth, latency, etc)to the router on an as-needed basis.that have changed. DLEP is independent of theunderlyinglink type andtopology.topology supported by the modem. Figure 2 shows how DLEP can support a configurationwherebywhere routers are connected with different linktypes and with different network configurations.types. In thissetup, the routers are connected with two different devices (Modem device A and Modem device B).example, Modem Ais connected viaimplements a point-to-point link,whereasand Modem B is connected via a shared medium. In both cases, the DLEPsessionprotocol is used to report the characteristics of the link (bandwidth, latency, etc.) tonetwork neighbors on an as-needed basis.routers. The modem is also able to use the DLEP session to notify the router when the remoteneighbornode is lost, shortening the time required tore-convergere- converge the network. +--------+ +--------++------++----+ Modem A| | ModemA+-----+A+---+ | | Device | <===== // ======> | Device | | | +--------+P-t-PP-2-P Link +--------+ || Protocol |+---+----+ +---+----+ | 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 DLEPexists asdefines acollectionset oftype-length-value (TLV) based messages using [RFC5444] formatting. The protocol can belogical signals usedfor both Ethernet attachedby modems(utilizing,and their attached routers. The signals are used to communicate events that occur on the physical link(s) managed by the modem: for example, aUDP socket for transport ofremote node entering or leaving theRFC 5444 packets),network, orin environments wherethat themodemlink has changed. Associated with these signals 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 isan interface card indefined as achassis (viacollection of type-length-value (TLV) based messages, specifying the signals that are exchanged between amessage passing scheme).router and a modem, and the data items associated with the signal. This document specifies transport of DLEPutilizessignals and data items via the UDP transport. 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 mandatory signals and their mandatory data items to be considered compliant. Implementations MAY also support some, or all, of the optional signals and data items. DLEP uses asessionsession-oriented paradigm between the modem device and its associated router. If multiple modem devices are attached to a router (as inFIgureFigure 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 concerning neighbors (remote nodes) that are accessible via the modem device. As such, all of the neighbor-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 is handled in IP networks by deriving a Layer 2 MAC address based on the Layer 3 address. Leveraging on this scheme, Multicast traffic is supported in DLEP simply by treating the derived MAC address as any other destination 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. AssumptionsIn order to implement discovery in the DLEP protocol (thereby avoiding some configuration), we have defined a first-speakerRouters anda passive-listener scheme. Borrowing from existing terminology, this document refers to the first-speakermodems that exist as part of the'client', and the passive listener assame node (e.g., that are locally connected) can utilize a discovery technique to locate each other, thus avoiding a-priori configuration. Either entity (the router or the'server', even though there is no client/server relationship inmodem) can initiate theclassic sense.discovery process. In cases where both entities initiate discovery, atypical deployment, arace condition can occur. When this race condition occurs, the routerwould appear asMUST cease its active discovery, and respond to the modem's request. DLEP'server',utilizes a session-oriented paradigm. A router andan attachedmodemdevice would act asform a session by completing the'client' (e.g.discovery process. This router-modem session persists unless or until it either (1) times out, based on theinitiator for discovery).timeout values supplied, or (2) is explicitly torn down by one of the participants. Note that use of timers in DLEP is OPTIONAL; that is, implementations can choose to run with no timers (or effectively, timers set to an infinite value). DLEP assumes that participatingclients appear to the servermodems, and their physical links, act as a transparentbridge - specifically,bridge. Specifically, the assumption is that the destination MAC address for data traffic in any frame emitted by theserverrouter should be the MAC address of a device in thenext-hop router or end- device, and not the MAC address of any of the intervening clients.remote node. DLEP also assumes thatsecurity on the session (e.g. authentication of session partners, encryption of traffic, or both) is dealt with by the underlying transport mechanism for the RFC 5444 packets (e.g. by using a transport such as DTLS [DTLS]). DLEP utilizes a session-oriented paradigm. There are two classes of sessions - the first is identified as a 'peer session'. The peer session exists between a DLEP server and a DLEP client. All DLEP messages between client and serverMAC addresses aretransmittedunique within the context of thepeerrouter-modem session.The other type of DLEP session is referredThis document refers to a remote node as a'neighbor session'. Neighbor sessions"Neighbor". Neighbors can beinstantiatedidentified by either theDLEP serverrouter orclient,the modem, and representan identifiablea specific destination(i.e.(e.g., an address)withinthat exists on thenetwork.link(s) managed by the modem. Examples of a destinationwould beinclude aunicast address (for eitherMAC address, anext-hop router, or for an end-station),unicast Layer 3 address, or a multicast Layer 3 address.AAs "neighbors" 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 ALL neighbors accessed via the modem) or MAY be neighborsession MUST exist(destination) specific. The DLEP signals concerning neighbors thus become the way forevery destination that exists inrouters and modems to maintain, and notify each other about, an information base representing thenetwork.physical and logical (e.g., multicast) destinations accessible via the modem device. Theoptional [RFC5444] message header Sequence Number MUST be included in allinformation base would contain addressing information (e.g., MAC address, and OPTIONALLY, Layer 3 addresses), link characteristics (metrics), and OPTIONALLY, flow control information (credits). DLEPpackets.assumes that security on the session (e.g. authentication of session partners, encryption of traffic, or both) is dealt with by the underlying transport mechanism (e.g., by using a transport such as DTLS [DTLS]). Sequence Numbers for DLEP messages start at10 and are incremented by one for each original and retransmitted message. The unsigned 16-bit Sequence Number rolls over at 65535 to1. A Sequence Number of 0 is not valid.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. This document specifies an implementation of the DLEP signals and data items running over the UDP transport, utilizing a well-known UDP 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 theDLEP clientrouter andthe DLEP servermodem is treated as two unidirectional windows. This document identifies these windows as the"Client"Modem Receive Window", orCRW,MRW, and the"Server"Router Receive Window", orSRW.RRW. If credits are used, they MUST be granted by the receiver on a given window - that is, on the"Client"Modem Receive Window"(CRW),(MRW), theDLEP clientmodem is responsible for granting credits to theserver,router, allowing it (theserver)router) to send data to theclient.modem. Likewise, theDLEP serverrouter is responsible for granting credits on theSRW,RRW, which allows theclientmodem to send data to theserver.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 aneighbor sessionneighbor-specific basis; that is, separate credit counts are maintained for each neighborsessionrequiring the service. Credits do not apply to the DLEPpeer sessions.session that exists between routers and modems. 4. Metrics DLEP includes the ability for theclientrouter andservermodem to communicate metrics that reflect the characteristics (e.g. bandwidth, latency) of the variable-quality link in use. 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 specific neighborsession context(those for a given destination within the network), andpeer session context"modem-wide" (those that apply to all destinations accessed via theDLEP client).modem). Metrics supplied on DLEP Peermessagessignals are, by definition,in the context of a peer session;modem-wide; metrics supplied on Neighbormessagessignals are, by definition, usedinfor thecontext of aspecific neighborsession. Supplying metrics in a peer session context gives clients the ability to supply default metrics on a 'device-wide' basis.only. It is left to implementations to choose sensible default values based on their specific characteristics. Additionally,the metricsthis mechanism (either at apeermodem-wide or specific neighborsessioncontext) MAY be used to reportnon- changing,non-changing, or static, metrics.ClientsModems having static link metric characteristicsSHOULDMAY report metrics only once for a given neighborsession(orpeer session,once on a modem-wide basis, if all connections via theclientmodem 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 experimentalordersimplementations of both signals andsub-TLVs.data items. DLEP implementations MUST be capable of parsing and acting on theordersmandatory signals andsub-TLVsdata items as documented in this specification. DLEPorders/sub-TLVssignals/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 optional signals and data items, as well as the experimental numberingspacespace, 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 experimental signals, and associated data items, could be used to implement new flow control schemes. If subsequent research and developmentyieldsdefine new featureswith sufficient applicability, those featuresand function, then it should be standardized eitherincluded inas an updateofto thisspecification,document, ordocumented in a standaloneas an additional stand-alone specification. 6. Normal Session FlowA session betweenAt the start of aclientrun, DLEP implementations (both router and modem) initialize the communications path. In aserver is established by exchangingUDP implementation, this includes opening a socket and binding to the well-known port address (TBD). Once the communications path is established, an implementation would either, depending on configuration, proceed to periodically issue a "Peer Discovery"and "Peer Offer" messages described below.message. Theflows described in this document createPeer Discovery MAY be sent either via the multicast address allocated for DLEP (TBD), or via astate-full protocol between client and server.unicast address, or drop into a "passive receive" mode, waiting on receipt of a Peer Discovery. Bothclientmodem andserverrouter initialize in a "discovery"state, andstate. Either the modem, theclient issuesrouter, or both, will then issue a "Peer Discovery"message. Whensignal. The Peer Discovery signal MAY be issued to a unicast address (if a-priori knowledge of theserver receivesaddress exists), or to the multicast address TBD. The receiver of a PeerDiscovery, itDiscovery message responds with a "Peer Offer"message, and enters an "in session" state withsignal to indicate readiness to participate in theclient. ReceiptDLEP session. The receiver ofthea Peer Offeratmessage responds with a "Peer Offer ACK" message, completing discovery. While theclient causes it (the client)Peer Discovery message MAY be sent to the DLEP multicast address (TBD), the Peer Offer, and all subsequent traffic, is sent to the unicast address that originated the Peer Discovery. Once the Peer Offer signal is acknowledged, both participants (router and modem) transitionintoto the "in session"state. Once that exchange has successfully occurred, messages transferred instate, creating a logical, stateful session between the modem and the router. Subsequent DLEP signals are then processed within the context of this router/modem session. DLEP partners use these signals to build their respective information bases regarding destinations that are accessible via the modem, and link characteristics associated with those destinations. The "in session" state created by the discovery signals is maintained until one of thepeerfollowing conditions occur: o The sessionwill consist ofis explicitly terminated (using Peer Termination), or oPeriodic 'Heartbeat' messages,The session times out, based on supplied timeout values. In order to maintain the session between router and modem, OPTIONAL periodic "Heartbeat" messages MAY be exchanged. These messages are intended to keep thepeersession alive, and to verify bidirectionalconnectivity, and/or oconnectivity between the two participants. DLEP also provides for an OPTIONAL Peer Updatemessages, indicatingmessage, intended to communicate some change in statusthat one(e.g., a change ofthe peers needs to communicate to the other.layer 3 address parameters, or a modem-wide link change). In addition to the messages above, thepeersparticipants will transmit DLEP messages concerning destinations in the network. These messages triggercreation/maintenance/terminationcreation/maintenance/deletion of "neighbors" in the information base of'neighbor sessions'.the recipient. For example, apeermodem will inform itsDLEP partnerattached router of the presence of a new destination via the "Neighbor Up"message.signal. Receipt of a Neighbor Up causes thereceiving peerrouter to allocate the necessary resources, creatinga neighbor session, and transition toan"in session" state onentry in thenewly created neighbor session. The in-session state persists until notificationinformation base with the specifics (e.g., MAC Address, Latency, Data Rate, etc) ofneighbor loss is received, or by optional timeout due to inactivity.the neighbor. The loss of a destination is communicated via the "Neighbor Down"message,signal, and changes in status to the destination (e.g. varying link quality, or addressing changes) are communicated viaathe "Neighbor Update"message.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 neighborsessionvia the Neighbor Update message, orwithin the context of a peer session (reflecting the link ason awhole)modem-wide basis via the Peer Update message. In cases where metrics are provided on thepeerrouter/modem session, thereceiving peerreceiver MUST propagate the metrics to allneighbor sessionsneighbors in its information base that are accessed via thepeer.originator. A DLEPpeerparticipant MAY send metrics both in apeerrouter/modem session context (via the Peer Update message) and a specific neighborsessioncontext (via Neighbor Update) at any time. The heuristics for applying receivedpeer session and neighbor sessionmetrics is left to implementations. In addition to receiving metrics about the link, DLEP providesfor the ability foran OPTIONAL signal allowing aserverrouter to request a different amount of bandwidth, or latency, from theclient viamodem. This signal is referred to as the Link CharacteristicsMessage. This allowsMessage, and gives the router theserverability to deal with requisite increases (or decreases) of allocated bandwidth/latency in demand-based schemes in a more deterministic manner. 7.Generic DLEP Packet Definition The Generic DLEP Packet Definition follows the format for packets defined in [RFC5444].Mandatory Signals and Data Items TheGeneric DLEP Packet Definition contains thefollowingfields: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| Flags | Packet Sequence Number | Packet TLV | | | | | Block... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message (ContainsDLEPmessage)... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Version - Version of RFC 5444 specification on which the packet/messages/TLVssignals areconstructed. Flags - 4 bit field. All bits MUST be ignored by DLEP implementations. Packet Sequence Number - If present,considered core to thepacket sequence number is parsed and ignored. DLEP does NOT use or generate packet sequence numbers. Packet TLV block - A TLV block which contains packet level TLV information. DLEPspecification; implementations MUSTNOT use this TLV block. Message - The packet MAY contain zero or more messages, however, DLEP messages are encoded within an RFC 5444 Message TLV Block. 8. Message Header Format DLEP utilizes the following format for the RFC 5444 message header 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Msg Type |Msg Flg|AddrLen| Message Size | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Seq Num | TLV Block... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Message Type - An 8-bit field which specifies the type ofsupport these signals, and themessage. For DLEP, this field contains DLEP_MESSAGE (value TBD) Message Flags - Setassociated data items, in order to0x1 (bit 3, mhasseqnum bit is set).be considered compliant: Signal Data Items ====== ========== Attached Peer Discovery Identification Peer Offer Identification Peer Offer ACK Status Peer Termination Identification Peer Termination ACK Status Neighbor Up Identification MAC Address Maximum Data Rate Current Data Rate Latency Resources Relative Link Quality Neighbor Update Identification MAC Address Maximum Data Rate Current Data Rate Latency Resources Relative Link Quality Neighbor Down Identification MAC Address All otherbits are unusedDLEP signals andMUST be setdata items are OPTIONAL. Implementations MAY choose to'0'. Message Address Length - A 4-bit unsigned integer field encoding the length of all addresses included in this message. DLEP implementationsprovide them. Implementations that do notuse this field; contentssupport optional signals and data items SHOULDbe ignored. Message Size - A 16-bit unsigned integer field which specifies the number of octets that make up the message including the message header. Message Sequence Number - A 16-bit unsigned integer field that contains a sequence number, generated by the originator of the message. Sequence numbers range from 1 to 65535. Sequence numbers roll over at 65535 to 1; 0 is invalid. TLV Block - TLV Block included in the message. 9. Message TLV Block Formatparse, and silently drop, all unsupported signals and/or data items. 8. Generic DLEP Packet Definition The Generic DLEPprotocol is organized as a setPacket consists oforders, each withacollectionsequence ofSub-TLVs.TLVs. TheSub-TLVs carry information needed to process and/or establish context (e.g.first TLV represents theMAC address ofsignal being communicated (e.g., afar-end router), and the 'tlv-type' field in"Neighbor Up", or a "Peer Offer"). Subsequent TLVs contain themessage TLV block carriesdata items pertinent to theDLEP order itself.signal (e.g., Maximum Data Rate, or Latency, etc). The Generic DLEPorders are enumerated in section 11.1 of this document, and the messages created using these orders are documented in sections 12 through 27. DLEP usesPacket Definition contains the followingsettings for an RFC 5444 Message TLV block: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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| TLVs Length ||Signal TLV Type |TLV Flags | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Length |Value...DLEP data items... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+TLVs LengthSignal -A 16-bit unsigned integer field that contains the total number of octets in allOne of theimmediately following TLV elements (tlvs-length not included).DLEP Signal TLVType - An 8-bit unsigned integer field specifying thetypeof the TLV. DLEP uses this field to specify the DLEP order. Valid DLEP orders arevalues defined insection 11.1 ofthis document.TLV Flags - An 8-bit flags bit field. Bit 3 (thasvalue) MUST be set; all other bits are not used and MUST be set to '0'.Length -Length of the 'Value' fieldThe length ofthe TLV Value - A fieldall oflength <Length> which contains data specific to a particular TLV type. Inthe DLEPcase,data items associated with thisfield will consist of a collection of DLEP sub-TLVs appropriate for thesignal. DLEPaction specifieddata items - One or more data items, encoded inthe TLV type field. 10.TLVs, as defined in this document. 9. DLEPsub-TLVsData Items As mentioned earlier, DLEP protocol messages are transportedin an RFC 5444 message TLV. All DLEP messages use the RFC 5444 DLEP_MESSAGE value (TBD). The protocol messages consist ofas aDLEP order, encoded in the 'tlv-type' field in the message TLV block, with the 'value' fieldcollection oftheTLVs. The first TLVblock containingpresent in acollection (1 or more)DLEPsub-TLVs. The formatmessage MUST be one ofDLEP Sub-TLVs is consistent with RFC 5444 in thattheSub-TLVs contain a flag fieldSignal TLVs, documented inadditionsection [INSERT REFERENCE HERE]. The signals are followed by one or more data items, indicating the specific changes that need to be instantiated in thetype, length, and value fields.receiver's information base. Valid DLEPSub-TLVsData Items are: TLV TLV Value Description ========================================= TBD Identificationsub-TLVTBD DLEP Versionsub-TLVTBD Peer Typesub-TLV TBD MAC Address sub-TLVTBD IPv4 Addresssub-TLVTBD IPv6 Addresssub-TLVTBD Maximum Data Rate (MDR)sub-TLVTBD Current Data Rate (CDR)sub-TLVTBD Latencysub-TLVTBD Resourcessub-TLVTBD Expected Forwarding Time(ETX) sub-TLV(EFT) TBD Relative Link Quality (RLQ)sub-TLVTBD Statussub-TLV TBD Heartbeat Interval sub-TLVTBD HeartbeatThreshold sub-TLVInterval/Threshold TBD Neighbor down ACK timersub-TLVTBD Link Characteristics ACK timersub-TLVTBD Credit Window Statussub-TLVTBD Credit Grantsub-TLVTBD Credit Requestsub-TLVDLEPsub-TLVsdata 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|TLV Flags=0x10| Length | Value... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - An 8-bit unsigned integer field specifying thetype of the sub-TLV. TLV Flags - An 8-bit flags bit field. Bit 3 (thasvalue) MUST be set, all other bits are not used and MUST be set to '0'.data item being sent. Length - An 8-bit length of the value field of thesub-TLVdata item Value - A field of length <Length> which contains data specific to a particularsub-TLV. 10.1data item. 9.1 IdentificationSub-TLVThisSub-TLVdata item MUST exist inthe TLV Block forall DLEP messages, and MUST be the firstSub-TLVdata item of themessage.message (e.g., it MUST immediately follow the signal TLV). Further, there MUST be ONLY one IdentificationSub-TLVdata item inan RFC 5444 message TLV block.a DLEP message. TheIdentification sub-TLVdata item containsclient and serveridentification information used to establish the proper context (e.g., the router/modem session) for processing DLEP protocol messages. TheIdentification sub-TLV containsformat of thefollowing fields:Identification Data Item is: 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| Length = 8 |ServerRouter ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |ServerRouter ID |ClientModem ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |ClientModem ID |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - Value TBDTLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are unused and MUST be set to '0'.Length - 8ServerRouter ID - Indicates theServerRouter ID of the DLEP session.ClientModem ID - indicates theClientModem ID of the DLEP session.When the client initiates discovery (via theDuring transmission of a DLEP Peer Discoverymessage), itsignal, the transmitter MUST setthe Clientits ID to a 32-bit quantity that will be used to uniquely identify this session from theclient-side.transmitter's perspective. Theclientother ID value MUST be set theServer IDto '0'. When responding to the Peer Discoverymessage,signal (via the Peer Offer signal), theservertransmitter MUST echothe Client ID,any received ID value, and MUST supply its own unique 32-bit quantity to identify the session fromthe server'sits perspective. After the Peer Discovery/Peer Offer exchange,both the Client ID and the Server IDsubsequent signals on this DLEP session MUSTbe set tocontain the ID values obtained from the PeerDIscovery/PeerDiscovery/Peer Offer sequence.10.29.2 DLEP VersionSub-TLVThe DLEP VersionSub-TLVTLV is an OPTIONAL TLV in both the Peer Discovery and Peer Offer messages. The VersionSub-TLVTLV is used to indicate theclient or serverversion of theprotocol. The client and serverprotocol running in the originator. A participant MAY use this information to decide if thepeerpotential session partner is running at a supported level. The DLEP VersionSub-TLVTLV 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=4 | Major Version | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Major Version |Minor Version |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBDTLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are not used and MUST be set to '0'.Length - Length is 4 Major Version - Major version of theclientmodem or router protocol. Minor Version - Minor version of theclientmodem or router protocol. Support of this draft is indicated by setting the Major Version to '1', and the Minor Version to'2''3' (e.g. Version1.2). 10.31.3). 9.3 Peer Type The Peer TypeSub-TLVTLV is an OPTIONAL TLV in both the Peer Discovery and Peer Offer messages. The Peer TypeSub-TLVTLV is used by theserverrouter andclientmodem to give additional information as to its type.It is an OPTIONAL sub-TLV in both the Peer Discovery Message and the Peer Offer message.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 Typesub-TLVTLV 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= peer |Peer TypeStr |String | | |type string len|Max Len = 80 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBDTLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are not used and MUST be set to '0'.Length - Length of peer type string (80bytesoctets maximum). Peer Type String - Non-Null terminatedpeer typestring, maximum length of 80bytes.octets. For example, a satellite modem might set this variable to 'Satellite terminal'.10.49.4 MAC AddressSub-TLVThe MAC addressSub-TLVTLV MUST appear in all neighbor-orientedmessagessignals (e.g. Neighbor Up, Neighbor Up ACK, Neighbor Down, Neighbor Down ACK, Neighbor Update, Link Characteristics Request, and Link Characteristics ACK). The MAC Addresssub-TLVTLV contains the address of thefar-end (neighbor) destination, and maydestination 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).The MAC Address sub-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 = 6|MAC Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| MAC Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MAC Address |+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBDTLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are not used and MUST be set to '0'.Length - 6 MAC Address - MAC Address of the destination (either physical or virtual).10.59.5 IPv4 AddressSub-TLVThe IPv4 AddressSub-TLVTLV is an OPTIONAL TLV. If supported, it MAYbe usedappear in Neighbor Up, Neighbor Update, and Peer UpdateMessages, if the client is aware of the Layer 3 address.messages. When included in Neighbor messages, the IPv4 Addresssub-TLVTLV contains the IPv4 address of thefar-end neighbor.neighbor, as well as a subnet mask value. In the Peer Update message, it contains the IPv4 address of thesending peer.originator of the message. In either case, thesub-TLVTLV also contains an indication of whether this is a new or existing address, or is a deletion of a previously known address. The IPv4 AddressSub-TLVTLV 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 =56 | Add/Drop | IPv4 Address | | | | Indicator | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 Address | Subnet Mask | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBDTLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are not used and MUST be set to '0'.Length -56 Add/Drop - Value indicating whether this is a new or existingIndicator address (0x01), or a withdrawal of anIPv4 address(0x02).IPv4 Address - The IPv4Addressaddress of thefar-endneighbor or peer.10.6Subnet Mask - A subnet mask (0-32) to be applied to the IPv4 address. 9.6 IPv6 AddressSub-TLVThe IPv6 AddressSub-TLVTLV is an OPTIONAL TLV. If supported, it MAY be used in the Neighbor Up, Neighbor Update, Peer Discovery, and Peer UpdateMessages, if the client is aware of the Layer 3 address.Messages. When included in Neighbor messages,the IPv6 Address sub-TLVthis data item contains the IPv6 address of thefar-endneighbor. In the Peer Discovery and Peer Update, it contains the IPv6 address of the originating peer. In either case, thesub-TLVdata item also contains an indication of whether this is a new or existing address, or is a deletion of a previously knownaddress.address, as well as a subnet mask. The IPv6 Addresssub-TLVTLV 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 =1718 | Add/Drop | IPv6 Address | | | | Indicator | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 Address | Subnet Mask | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBDTLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are not used and MUST be set to '0'.Length -1718 Add/Drop - Value indicating whether this is a new orIndicatorexisting address (0x01), or a withdrawal of an address (0x02). IPv6 Address - IPv6 Address of thefar-endneighbor or peer.10.7Subnet Mask - A subnet mask value (0-128) to be applied to the Ipv6 address. 9.7 Maximum Data RateSub-TLVThe Maximum Data Rate (MDR)Sub-TLVTLV is used in Neighbor Up, Neighbor 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 on the link. When metrics are reported via the messages listed above, the maximum data rate MUST be reported.The Maximum Data Rate sub-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 | MDR (bps) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MDR (bps) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MDR (bps) |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBDTLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are not used and MUST be set to '0'.Length - 8 Maximum Data Rate - A 64-bit unsigned number, representing the maximum theoretical data rate, in bits per second (bps), that can be achieved on the link.10.89.8 Current Data RateSub-TLVThe Current Data Rate (CDR)Sub-TLVTLV is used in Neighbor Up, Neighbor Update, Peer Discovery, Peer Update, Link Characteristics Request, and Link Characteristics ACK messages to indicate the rate at which the link is currently operating, or in the case of the Link Characteristics Request, the desired data rate for the link. When metrics are reported via the messages above, the current data rate MUST be reported. The Current Data Ratesub-TLVTLV 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 |CDR (bps) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CDR (bps) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CDR (bps) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBDTLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are not used and MUST be set to '0'.Length - 8 Current Data Rate - A 64-bit unsigned number, representing the current data rate, in bits persecond (bps),second, that is currently be achieved on thelink. When reporting metrics (e.g, in Neighbor Up, Neighbor Down, Peer Discovery, Peer Update,link, or the desired data rate in bits per second in the Link CharacteristicsACK), ifRequest message. If there is no distinction between current and maximum data rates, current data rateSHOULDMUST be set equal to the maximum data rate.10.99.9 Expected Forwarding TimeSub-TLVThe Expected Forwarding Time (EFT)Sub-TLVTLV is is an OPTIONAL data item. If supported, it MAY be used in Neighbor Up, Neighbor 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 Timesub-TLVTLV 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 = 4 | EFT (ms) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | EFT (ms) |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBDTLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are not used and MUST be set to '0'.Length - 4Current Data RateEFT - A 32-bit unsigned number, representing the expected forwarding time, in milliseconds, on the link.10.109.10 LatencySub-TLVThe LatencySub-TLVTLV is used in Neighbor Up, Neighbor 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(e.g. a should-not-exeed value)on the link.The Latency Sub-TLV containsWhen metrics are reported via thefollowing fields:messages above, Latency MUST be reported. 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 = 2|Latency (ms)|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |LatencyLatency (ms) |+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBDTLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are not used and MUST be set to '0'.Length - 2 Latency -TheA 16-bit unsigned value, representing the transmission delay that a packet encounters as it is transmitted over the link. In Neighbor Up, Neighbor Update, and Link Characteristics ACK, this value is reportedin absoluteas 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, itSHOULDMUST be reported as 0. In the Link Characteristics Request Message, this value represents the maximum delay, in milliseconds, expected on the link.10.119.11 ResourcesSub-TLVThe ResourcesSub-TLVTLV is used in Neighbor Up, Neighbor Update, Peer Discovery, Peer Update, and Link Characteristics ACK messages to indicate a percentage (0-100) amount of resources (e.g. battery power) remaining on the originating peer. If metrics are reported, via the above messages, Resources MUST be reported. The Resources TLV contains the following fields: 0 1 230 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 34 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD|TLV Flags=0x10|Length = 1 | Resources |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBDTLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are not used and MUST be set to '0'.Length - 1 Resources - A percentage, 0-100, representing the amount of remaining resources, such as battery power. If resources cannot be calculated, a value of 100SHOULDMUST be reported.10.129.12 Relative Link QualitySub-TLVThe Relative Link Quality (RLQ)Sub-TLVTLV is used in Neighbor Up, Neighbor Update, Peer Discovery, Peer Update, and Link Characteristics ACK messages to indicate the quality of the link as calculated by the originating peer. If metrics are reported via the above messages, RLQ MUST be reported. The Relative Link Qualitysub-TLVTLV contains the following fields: 0 1 230 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 34 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD|TLV Flags=0x10|Length = 1 |Relative Link | | |||Quality (RLQ) |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBDTLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are not used and MUST be set to '0'.Length - 1 Relative Link Quality - A non-dimensional number, 0-100, representing relative link quality. A value of 100 represents a link of the highest quality. If the RLQ cannot be calculated, a value of 100SHOULDMUST be reported.10.139.13 StatusSub-TLVThe StatusSub-TLVTLV is an OPTIONAL TLV. It is sent as part of an acknowledgement message, from either theclientmodem orserverthe router, to indicate the success or failure of a givenrequestrequest. The StatusSub-TLVTLV contains the following fields: 0 1 230 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 34 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD|TLV Flags=0x10|Length = 1 | Code |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBDTLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are not used and MUST be set to '0'.Length - 1 Termination Code - 0 =SuccessSuccess, Non-zero = Failure. Specific values of anon- zeronon-zero termination code depend on the operation requested (e.g. Neighbor Up, Neighbor Down, etc).10.149.14 HeartbeatInterval Sub-TLVInterval/Threshold The HeartbeatInterval Sub-TLVInterval/Threshold TLV is an OPTIONAL TLV. If supported, it MAY be sentfrom the clientduring Peer Discovery to indicate the desired Heartbeat timeout window. Ifincluded inthe modem includes the Heartbeat Interval TLV in Peer Discovery, theserverrouter MUST either accept the timeoutinterval,interval supplied by the modem, or reject the Peer Discovery.Failing toPeer Discovery messages that do not include the Heartbeat IntervalSub-TLVTLV in Peer Discovery indicates a desire to establish thepeer-to-peer DLEProuter/modem session without an activity timeout (e.g. an infinite timeout value).The Heartbeat Interval Sub-TLV containsIf an activity timeout is supported, implementations MAY choose to implement heuristics such that signals sent/received reset thefollowing 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 = 1 |timer window. The Interval| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBD TLV Flags - 0x10, Bit 3 (thasvalue)isset, all other bits are notusedand MUST be setto'0'. Length - 1 Interval - 0 = Do NOT use heartbeats on this peer-to-peer session. Non-zero = Interval, in seconds,specify a period (in seconds) forheartbeat messages. 10.15HeartbeatThreshold Sub-TLVMessages (See Section 23). TheHeartbeatThresholdSub-TLV MAY be sent from the client during Peer Discoveryvalue is used to indicate the desired number of windows, each of time (Heartbeat Interval) seconds, to wait before eitherpeerparticipant declares thepeerrouter/modem session lost. In this case, the overall amount of time before apeer sessionrouter/modem is declared lost is expressed as (Interval *Threshold), where 'Interval' is theThreshold). Specifying an Interval valueinof 0 indicates the desire to disable HeartbeatInterval sub-TLV, documented above. If this sub-TLV is included by the client in the Peer Discovery, the client MUST also specifymessages entirely (e.g., theHeartbeatIntervalsub-TLV with a non-zero interval. If this sub-TLVisreceived during Peer Discovery, the server MUST either accept the threshold, or reject the Peer Discovery. Ifset to an infinite value). Setting theHeartbeat Interval Sub-TLV is included, but this Sub-TLVThreshold value to 0 isomitted, thenundefined, and TLVs with athresholdThreshold value of'1' is assumed.0 MUST be rejected by the recipient. The HeartbeatThreshold Sub-TLVInterval/Threshold 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 = 1 | Interval | Threshold | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBDTLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are not used and MUST be set to '0'.Length - 1ThresholdInterval - 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.10.169.15 Link Characteristics ACK TimerSub-TLVThe LinkCharacteristicCharacteristics ACK TimerSub-TLVTLV is an OPTIONAL TLV. If supported, it MAY be sentfrom the clientduring Peer Discovery to indicate the desired number of secondsthe server shouldto wait for a response to a Link Characteristics Request. If a router receives thissub-TLV is receivedTLV from a modem during Peer Discovery, theserverrouter MUST either accept the timeout value, or reject the Peer Discovery. If thisSub-TLVTLV is omitted, implementations supporting the Link Characteristics Request SHOULD choose a default value. The Link Characteristics ACK TimerSub-TLVTLV contains the following fields: 0 1 230 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 34 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD|TLV Flags=0x10|Length = 1 | Interval |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBDTLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are not used and MUST be set to '0'.Length - 1 Interval - 0 = Do NOT use timeouts for Link Characteristics requests on thispeer-to-peerrouter/modem session. Non-zero = Interval, in seconds, to wait before considering a Link Characteristics Request has been lost.10.179.16 Credit Window StatusSub-TLVThe Credit Window StatusSub-TLV MUST be sent by the DLEP peer originating a Neighbor Up message when use of creditsTLV isdesired for a given session. In the Neighbor Up message, whenan OPTIONAL TLV. If credits aredesired,supported by theoriginating peer MUST setDLEP participants (both thevalue ofrouter and thewindow it controls (e.g.modem), theClient Receive Window, or Server Receive Window) to an initial, non-zero value. The peer receiving a Neighbor Up message with aCredit Window StatusSub-TLVTLV MUSTeither rejectbe sent by theuse of credits, viaparticipant receiving aNeighbor Up ACK response with the correctCredit Grant Request for a given neighbor. The Credit Window StatusSub-TLV, or set the initial value from the data contained in the Credit Window Status Sub-TLV. If the initialization completes successfully, the receiving peer MUST respond to the Neighbor Up message with a Neighbor Up ACK message that contains a Credit Window Status Sub-TLV, initializing its receive window. The Credit Window Status Sub-TLVTLV 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 = 16 |Client Receive| | | | |Modem Receive WindowvalueValue | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |ClientModem Receive Window Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |ClientModem Receive Window Value |Server Receive| | |Router Receive Window Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |ServerRouter Receive Window Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |ServerRouter Receive Window Value |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBDTLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are not used and MUST be set to '0'.Length - 16ClientModem Receive Window Value - A 64-bit unsigned number, indicating theWindow valuecurrent (or initial) number of credits available on theClientModem Receive Window.ServerRouter Receive Window Value - A 64-bit unsigned number, indicating theWindow Valuecurrent (or initial) number of credits available on theServerRouter Receive Window.10.189.17 Credit GrantSub-TLVRequest The Credit Grant RequestSub-TLV MAY beTLV is an OPTIONAL TLV. If credits are supported, the Credit Grant Request TLV is sent fromeithera DLEPpeerparticipant to grant an increment to credits on a window. The Credit GrantSub-TLVTLV is sent aspart ofa data item in either the Neighbor Up or Neighbor Updatemessage.messages. The value in a Credit GrantSub-TLVTLV represents an increment to be added to any existing credits available on the window. Upon successful receipt and processing of a Credit GrantSub-TLV,TLV, thereceiving peer SHOULDreceiver MUST respond with aDLEP Neighbor Updatemessage containing a Credit Window StatusSub-TLVTLV to report the updated aggregate values for synchronization purposes. In the Neighbor 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 a Neighbor Up message with a Credit Grant Request TLV supports credits, the receiver MUST either reject the use of credits, via a Neighbor 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 the Neighbor Up message with a Neighbor Up ACK message that contains a Credit Window Status TLV, initializing its receive window. The Credit GrantSub-TLVTLV 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 | Credit| | | | |Increment | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Credit Increment | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Credit Increment |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBDTLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are not used and MUST be set to '0'.Length -08 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 theCRWMRW or theSRW)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.10.199.18 Credit RequestSub-TLVThe Credit RequestSub-TLVTLV is an OPTIONAL TLV. If credits are supported, the Credit Request TLV MAY be sent from either DLEPpeer,participant, via a Neighbor Updateorder,signal, to indicate the desire for the partner to grant additional credits in order for data transfer to proceed on the session. If the corresponding Neighbor Up message for this session did NOT contain a Credit Window StatusSub-TLV,TLV, indicating that credits are to be used on the session, then the Credit RequestSub-TLVTLV MUST berejected, by sending a Neighbor Update ACK containing a Status Sub-TLV,rejected by thereceiving peer. If credits are in use on the session, then the receiving peer MAY respond withreceiver via aDLEPNeighbor Updatemessage containing a Credit Grant Sub-TLV with an increment of credits for the session.ACK message. The Credit RequestSub-TLVTLV contains the following fields: 0 1 230 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 34 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD|TLV Flags=0x10|Length = 0 | Reserved, MUST| | | ||be set to 0 |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ TLV Type - TBDTLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are not used and MUST be set to '0'.Length - 0 Reserved -0 =This field is currently unused and MUST be set to 0.11.10. DLEP Protocol Messages DLEPplaces no additional requirements on the RFC 5444 Packet formats, or the packet header. DLEP does require that the optional 'msg-seq-num'messages are encoded as a string of Type-Length-Value (TLV) constructs. The first TLV inthea DLEP messageheader exist, and definesMUST be asetvalid DLEP signal, as defined in section 11.1 ofvalues forthis document. The second TLV MUST be the'tlv-type' fieldIdentification data item, defined in section 10.1 Following those two TLVs are 0 or more TLVs, representing theRFC 5444 TLV block. Therefore,data items that are appropriate for the signal. The layout of a DLEPmessage, starting from the RFC 5444 Message header, would appear as follows: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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Msg Type = |Msg Flg|AddrLen|DLEP Signal |DLEP MessageSize|Identification |Identification | |DLEP_MESSAGE | 0x1 | 0x0 |Type value |length (9 + |TLV Type |TLV length | | (value TBD)| | ||optional TLVs) |(TBD) |(8) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Message Seq Num | TLV block length (length of | | | DLEP order + Sub-TLVs)Router ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |DLEP Message |TLV Flags=0x10Modem ID |Length+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Start of optional DLEP | |Block value |TLVs... || Sub-TLVs... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 11.1 Message Block+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 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 messagesutilize a single RFC 5444 message type, the DLEP_MESSAGE (TBD). DLEP further identifies protocol messages by usingbegin with the'tlv-type' field inType value of theRFC 5444 message TLV block.appropriate DLEPdefines the following Message-Type- specific values for the tlv-type field:signal. Valid DLEP signals are: TLV TLV Value Description ========================================= TBDAttachedPeer Discovery TBDDetachedPeerDiscoveryOffer TBD Peer Offer ACK TBD Peer Update TBD Peer Update ACK TBD Peer Termination TBD Peer Termination ACK TBD Neighbor Up TBD Neighbor Up ACK TBD Neighbor Down TBD Neighbor Down ACK TBD Neighbor Update TBDNeighbor Address Update TBD Neighbor Address Update ACK TBDHeartbeat TBD Link Characteristics Request TBD Link Characteristics ACKIn all of the diagrams following, the message layouts begin with the RFC 5444 message header. 12. Peer Discovery Messages There are two different types of Peer Discovery Messages, Attached and Detached. Attached Peer Discovery Messages are sent by the client when it is directly attached to the server (e.g. the client exists as a card in the chassis, or it is connected via Ethernet with no intervening devices). The Detached Peer Discovery message, on the other hand, is sent by a "remote" client -- for example, a client at a satellite hub system might use a Detached Discovery Message in order to act as a proxy for remote ground terminals. To explain in another way, a detached client uses the variable link itself (the radio or satellite link) to establish a DLEP session with a remote server. 12.1 Attached11. Peer Discovery Message TheAttachedPeer Discovery Message is sentby an attached client to a serverto begin a new DLEP association. The Peer Offer message is required to complete the discovery process.The clientImplementations MAY implementitstheir own retry heuristics inthe eventcases where it(the client) determinesis determined theAttachedPeer Discovery Message has timed out.An AttachedA Peer Discovery Message received from apeerparticipant that is already in session MUST be processed as if a Peer Termination Message had been received. An implementation MAY then process the receivedAttachedPeer Discovery Message. Note that metricSub-TLVsdata items MAY be supplied with the PeerDiscovery order. IfDiscovery, in order to populate default metricSub-TLVsvalues, or to indicate a static, modem-wide environment. If metrics aresupplied, theysupplied with the Peer Discovery message, these metrics MUST be used asa default valuethe initial values for allneighbor sessionsneighbors established viathis peer. The Attached Peer Discovery Message containsthefollowing 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Msg Type = |Msg Flg|AddrLen| Message Size | | DLEP_MESSAGE | 0x1 | 0x0 | 22 + size of opt | | (value TBD) | | | sub-TLV | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Seq Num |TLVs Length =14 + opt sub-TLVs | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DLEP Attached |TLV Flags=0x10 | Length =11 + | Sub-TLVs | | Peer Discovery| | opt sub-TLVs | as noted below| | (Value TDB) | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Messagemodem. Given the packet format described in section 11, the initial TLV Type- DLEP_MESSAGE (value TBD) Message Flags - Set to 0x1 (bit 3, mhasseqnum bitvalue isset). No other bits are used and MUST beset to'0'. Message Address Length - 0x0 Message Size - 22 + size of optional sub-TLVs Message Sequence Number - A 16-bit unsigned integer field containing a sequence number generated byDLEP_PEER_DISCOVERY (value TBD). Mandatory TLVs are then placed into themessage originator. TLV Blockpacket: Mandatory Data Item TLVs: -TLVs Length: 14 + size of optional sub-TLVs. Sub-TLVs:Identification(MANDATORY)After the Mandatory data item, implementations MAY place any OPTIONAL TLVs they support: Optional Data Item TLVs: - DLEP Version(OPTIONAL)- DLEP Peer Type(OPTIONAL)- Heartbeat Interval(OPTIONAL)- Heartbeat Threshold(OPTIONAL)- Link Characteristics ACK Timer(OPTIONAL)- Maximum Data Rate(OPTIONAL)- Current Data Rate(OPTIONAL)- Latency(OPTIONAL)- Expected Forwarding Time(OPTIONAL)- Resources(OPTIONAL)- Relative Link Quality(OPTIONAL) 12.2 Detached12. PeerDiscoveryOffer Message TheDetachedPeerDiscoveryOffer Message is sent by adetached client proxyDLEP participant in response to aserver to beginPeer Discovery Message. Upon receipt, and successful processing, of anew DLEP session. ThePeer Offermessage is required to complete the discovery process. The client MAY implement its own retry heuristics in the event it (the client) determinesmessage, theDetached Peer Discovery Message has timed out. When a DLEP implementation responds to a Detached Discovery Messagerecipient MUST respond with a PeerOffer,Offer ACK message, completing theimplementation MUSTdiscovery phase of DLEP. Both DLEP participants (router and modem) would then enter an "in session"state with the peer.state. Any subsequentdiscovery messageDiscovery messages sent or receivedfromon this session MUST be considered an error, and thepeersession MUST beprocessedterminated as if a Peer Termination Message had beenreceived (e.g. the existing peer sessionreceived. The Peer Offer message MUST beterminated). An implementation MAY then processsent to the unicast address of the originator of Peer Discovery, regardless of whether thereceiveddiscoverymessage. If metric sub-TLVs (e.g. Maximum Data Rate) are supplied withwas received on theDetachedDLEP multicast address (TBD) or on a unicast address. To construct a PeerDiscoveryOffer message,these metrics MUST be used asthe initialvalues for all far-end sessions (neighbors) established via the peer.TLV type value is set to DLEP_PEER_OFFER (value TBD). TheDetached Peer Discovery Message containsIdentification data item TLV is placed in thefollowing 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Msg Type = |Msg Flg|AddrLen| Message Size | | DLEP_MESSAGE | 0x1 | 0x0 | 22 + size of opt | | (value TBD) | | | sub-TLV | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Seq Num |TLVs Length =14 + opt sub-TLVs | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |packet next, followed by any OPTIONAL Data Item TLVs the implementation supports: Optional Data Item TLVs: - DLEPDetached |TLV Flags=0x10 | Length = 11 + | Sub-TLVs as | |Version - PeerDiscovery| | opt sub-TLVs | noted below | | (Value TDB) | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ MessageType -DLEP_MESSAGE (value TBD) Message Flags - Set to 0x1 (bit 3, mhasseqnum bit is set). All other bits are not used and MUST be set to '0'. MessageIPv4 AddressLength - 0x0 Message Size-22 + size of optional sub-TLVs Message Sequence NumberIPv6 Address -A 16-bit unsigned integer field containing a sequence number, generated by the message originator. TLV BlockStatus -TLVs Length: 14 + size of optional sub-TLVs. Sub-TLVs Identification (MANDATORY) Version (OPTIONAL) Peer Type (OPTIONAL)Heartbeat Interval(OPTIONAL)- Heartbeat Threshold(OPTIONAL)- LinkChar.Characteristics ACK Timer(OPTIONAL) Maximum Data Rate (OPTIONAL) Current Data Rate (OPTIONAL) Latency (OPTIONAL) Expected Forwarding Time (OPTIONAL) Resources (OPTIONAL) Relative Link Quality (OPTIONAL) As in the Attached Peer Discovery, the client MAY include metric sub-TLVs. If included, the router SHOULD use these values as defaults that will apply to all sessions established via this client.13. Peer Offer ACK Message The Peer OfferMessage is sent by a server to a client in response toACK message acknowledges receipt of a PeerDiscovery Message. The PeerOfferMessage is the response to either of the Peer Discovery messages (Attached or Detached),message, and completes theDLEP peerrouter/modem sessionestablishment. Upon sending theestablishment for DLEP. The Peer OfferMessage, the server then enters an "in session" state with the client. FromACK message MUST be sent to unicast address of theclient perspective, receipt and successful parsingoriginator of a Peer Offerorder MUST causemessage. The Peer Offer ACK message MAY contain an OPTIONAL Status data item, indicating success or failure of theclientattempt toenterestablish a router/modem session. For implementations that do NOT support the"in session" state. Any subsequent Discovery messages sent or received onStatus data item (defined in section 10.13 of thissessiondocument), the Peer Offer ACK message MUST beconsidered an error, and theused ONLY to indicate successful session establishment; Peer Offer messages that are rejected MUST beterminated as if asilently dropped, allowing the PeerTermination Message had been received. TheOffer to time out. To construct a Peer OfferMessage containsACK message, thefollowing 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Msg Type = |Msg Flg|AddrLen| Message Size | | DLEP_MESSAGE | 0x1 | 0x0 | 22 + size of opt | | (value TBD) | | | sub-TLV | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Seq Num |TLVs Length =14 + opt sub-TLVs | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |DLEP Peer Offer|TLV Flags=0x10 | Length = 11 + | Sub-TLVs as | | (Value TBD) | | opt sub-TLVs | indicated | | | | | below | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Message Type - DLEP_MESSAGE (Value TBD) Message Flags - Set to 0x1 (bit 3, mhasseqnum bitinitial TLV type value isset). All other bits are unused and MUST beset to'0'. Message Address Length - 0x0 Message Size - 22 + size of optional sub-TLVs Message Sequence Number - A 16-bit unsigned integer field containing a sequence number, generated byDLEP_PEER_OFFER_ACK (value TBD). Mandatory data item TLV's are placed into themessage originator. TLV Blockpacket next: Mandatory Data Item TLVs: -TLV Length: 14 + size of optional sub-TLVs Sub TLVsIdentification(MANDATORY) Version (OPTIONAL) Peer Type (OPTIONAL) IPv4 Address (OPTIONAL) IPv6 Address (OPTIONAL)- Status(OPTIONAL) Heartbeat Interval (OPTIONAL) Heartbeat Threshold (OPTIONAL) Link Characteristics ACK Timer (OPTIONAL)Note that there are NO OPTIONAL data item TLVs specifed for this message. 14. 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 adevice-widemodem-wide basis. For example, addition of an IPv4 address to theserverrouter would prompt a Peer Update message to its attached DLEPclients.modems. Also, aclientmodem that changes its Maximum Data Rate for all destinations MAY reflect that change via a Peer Update Message to its attachedserver. Withrouter(s). Concerning Layer 3address changes,addresses, if theclientmodem is capable of understanding and forwarding thisinformation,information (via proprietary mechanisms), the address update would prompt any remote DLEPclients (DLEP clients that are on the far-end of the variable link)modems (DLEP-enabled modems in a remote node) to issue a "Neighbor Update" message to their localserversrouters with the new (or deleted) addresses.ClientsModems that do not track Layer 3 addressesMUSTSHOULD silently parse and ignore the Peer Update Message.ClientsModems that track Layer 3 addresses MUST acknowledge the Peer Update with a Peer Update ACK message.ServersRouters receiving a Peer Update with metric changes MUST apply the new metric to allneighbor sessions establishedneighbors (remote nodes) accessible via theclient. Peers MAYmodem. 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 aserver implementationeither participant (router or modem) determines thata clientthe other implementation does NOT support Layer 3 address tracking. Ifmetric Sub-TLVsmetrics 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 allneighbor sessions accessible vianeighbors in thepeer. The Peer Update Message containsinformation base associated with thefollowing 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Msg Type = |Msg Flg|AddrLen| Message Size | | DLEP_MESSAGE | 0x1 | 0x0 | 22 + size of opt | | (value TBD) | | | sub-TLVs | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Seq Num |TLVs Length =14 + opt sub-TLVs | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DLEProuter/modem session. To construct a Peer|TLV Flags=0x10 | Length = 11 + | Sub-TLVs as | |Update| | opt sub-TLVs | noted below | | (Value TDB) | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Message Type - DLEP_MESSAGE (Value TBD) Message Flags - Set to 0x1 (bit 3, mhasseqnum bitmessage, the initial TLV type value isset). All other bits are unused and MUST beset to'0'. Message Address Length - 0x0 Message Size - 22 + optional Sub-TLVs Message Sequence Number - A 16-bit unsigned integer containing a sequence number (generated by originator).DLEP_PEER_UPDATE (value TBD). The Identification data item TLVBlockis placed in the packet next, followed by any OPTIONAL Data Item TLVs. Optional Data Item TLVs: -TLV Length: 14 + length of optional sub-TLVs. Sub TLVs Identification (MANDATORY)IPv4 Address(OPTIONAL)- IPv6 Address(OPTIONAL)- Maximum Data Rate(OPTIONAL)- Current Data Rate(OPTIONAL)- Latency(OPTIONAL)- Expected Forwarding Time(OPTIONAL)- Resources(OPTIONAL)- Relative Link Quality(OPTIONAL)15. Peer Update ACK MessageA peer sends theThe Peer Update ACKMessagemessage 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.TheTo construct a Peer Update ACKmessage containsmessage, thefollowing 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Msg Type = |Msg Flg|AddrLen| Message Size | | DLEP_MESSAGE | 0x1 | 0x0 | 22 + size of opt | | (value TBD) | | | sub-TLVs | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Seq Num |TLVs Length =14 + opt sub-TLVs | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DLEP Peer |TLV Flags=0x10 | Length = 11 + | Sub-TLVs as | | Update ACK | | opt sub-TLVs | noted below | | (Value TDB) | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Message Type - DLEP_MESSAGE (Value TBD) Message Flags - Set to 0x1 (bit 3, mhasseqnum bitinitial TLV type value isset). All other bits are unused and MUST beset to'0'. Message Address Length - 0x0 Message Size - 22 + size of optional sub-TLVs. Message Sequence Number - A 16-bit unsigned integer field containingDLEP_PEER_UPDATE_ACK (value TBD). The Identification data item TLV is placed in thesequence number frompacket next, followed by any OPTIONAL TLVs theNeighbor Up Message that is being acknowledged. TLV Blockimplementation supports: Optional Data Item TLVs: -TLV Length: 14 + optional sub-TLVs Sub TLVs Identification (MANDATORY)Status(OPTIONAL)16. Peer Termination Message The Peer Termination Message is sent byeither the client or the server whena DLEP participant when the router/modem session needs to be terminated.Transmission ofImplementations receiving a Peer Termination message MUST send a Peer Termination ACK messageis requiredto confirm the termination process. The sender ofthea Peer Termination message is free to define its heuristics in event of a timeout. The receiver of a Peer Termination Message MUSTterminaterelease allneighbor sessionsresources allocated for the router/modem session, andrelease associated resources. StateMUST eliminate all neighbors in the information base accessible via the router/modem pair represented by the session. Router and modem state machines are returned to the "discovery" state. No Neighbor Down messages are sent.TheTo construct a Peer TerminationMessage containsmessage, thefollowing 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Msg Type = |Msg Flg|AddrLen| Message Size | | DLEP_MESSAGE | 0x1 | 0x0 | 22 + size of opt | | (value TBD) | | | sub-TLVs | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Seq Num |TLVs Length =14 + opt sub-TLVs | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DLEP Peer |TLV Flags=0x10 | Length = 11 + | Sub-TLVs as | | Termination | | opt sub-TLVs | noted below | | (Value TDB) | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Message Type - DLEP_MESSAGE (Value TBD) Message Flags - Set to 0x1 (bit 3, mhasseqnum bitinitial TLV type value isset). All other bits are unused and MUST beset to'0'. Message Address Length - 0x0 Message Size - 22 + size of optional sub-TLVs. Message Sequence Number - A 16-bit unsigned integer field containing a sequence number generatedDLEP_PEER_TERMINATION (value TBD). The Identification data item TLV is placed in the packet next, followed by any OPTIONAL Data Item TLVs themessage originator. TLV Blockimplementation supports: Optional Data Item TLVs: -TLV Length = 14 + optional sub-TLVs Sub TLVs Identification (MANDATORY)Status(OPTIONAL)17. Peer Termination ACK Message The Peer Termination Message ACK is sent by a DLEP peer in response to a received Peer Termination order.TheReceipt of a Peer Termination ACKMessage containsmessage completes thefollowing 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Msg Type = |Msg Flg|AddrLen| Message Size | | DLEP_MESSAGE | 0x1 | 0x0 | 22 + sizeteardown ofopt | | (value TBD) | | | sub-TLVs | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Seq Num |TLVs Length =14 + opt sub-TLVs | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DLEPthe router/modem session. To construct a PeerTerm|TLV Flags=0x10 | Length = 11 + | Sub-TLVs as | |Termination ACK| | opt sub-TLVs | noted below | | (Value TBD) | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Message Type - DLEP_MESSAGE (Value TBD) Message Flags - Set to 0x1 (bit 3, mhasseqnum bitmessage, the initial TLV type value isset). All other bits are unused and MUST beset to'0'. Message Address Length - 0x0 Message Size - 22 + optional sub-TLVs. Message Sequence Number - A 16-bit unsigned integer field containing the sequence numberDLEP_PEER_TERMINATION_ACK (value TBD). The Identification data item TLV is placed in thecorresponding Peer Termination Message being acknowledged. TLV Blockpacket next, followed by any OPTIONAL TLVs the implementation supports: Optional Data Item TLVs: -TLV Length = 14 + optional Sub-TLVs Sub-TLVs Identification (MANDATORY)Status(OPTIONAL)18. Neighbor Up Message ApeerDLEP participant sends the Neighbor Up message to report that a newpotential routing neighbor, or a newdestinationwithin the network,has been detected. A Neighbor Up ACK Message is required to confirm a received Neighbor Up. A Neighbor Up message can be sent either bya clientthe modem, tosignalindicate thatit (the client) has detecteda newneighbor,remote node has been detected, or by theserverrouter, to indicatethatthe presence of a newdestinations (e.g.logical destination (e.g., a Multicastgroups) exist withingroup) exists in the network. The sender of the Neighbor Up Message is free to define its retry heuristics in event of a timeout. When a Neighbor Up message is received and successfully parsed, the receiver shouldenter an "in session" state with regard toadd knowledge of thefar-end destination, and send an acknowledgementnew destination to its information base, indicating that theoriginating peer. The Neighbor Up Message containsdestination is accessible via thefollowing 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Msg Type = |Msg Flg|AddrLen| Message Size | | DLEP_MESSAGE | 0x1 | 0x0 | 31 + size of opt | | (value TBD) | | | sub-TLVs | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Seq Num |TLVs Length =23 + opt sub-TLVs | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DLEPmodem/router pair. To construct a Neighbor|TLV Flags=0x10 | Length =20 + | Sub-TLVs as | |Up(TBD) | | opt sub-TLVs | noted below | | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Message Type - DLEP_MESSAGE (Value TBD) Message Flags - Set to 0x1 (bit 3, mhasseqnum bitmessage, the initial TLV type value isset). All other bits are unused and MUST beset to'0'. Message Address Length - 0x0 Message Size - 31 + optional Sub-TLVs Message Sequence Number - A 16-bit unsigned integer field containing a sequence number generatedDLEP_NEIGHBOR_UP (value TBD). The Identification data item TLV is placed in the packet next, followed by themessage originator. TLV Block - TLV Length: 23 + optional Sub-TLVs. Sub-TLVs Identification (MANDATORY)MAC Address(MANDATORY)TLV, indicating the MAC address of the remote node or Multicast group. The implementation would then place any supported OPTIONAL Data Item TLVs into the packet: Optional Data Item TLVs: - IPv4 Address(OPTIONAL)- IPv6 Address(OPTIONAL)- Maximum Data Rate(OPTIONAL)- Current Data Rate(OPTIONAL)- Latency(OPTIONAL)- Expected Forwarding Time(OPTIONAL)- Resources(OPTIONAL)- Relative Link Factor(OPTIONAL)- Credit Window Status(OPTIONAL)19. Neighbor Up ACK Message ApeerDLEP participant sends the Neighbor Up ACK Message to indicate whether a Neighbor Up Message was successfully processed.When a peer receivesTo construct a Neighbor Up ACKmessage containing a Status Sub-TLV with a status code of 0, the receiving peer should enter an "in session" state with respect to the far-end destination. The Neighbor Up ACK message containsmessage, thefollowing 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Msg Type = |Msg Flg|AddrLen| Message Size | | DLEP_MESSAGE | 0x1 | 0x0 | 35 | | (value TBD) | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Seq Num |TLVs Length = 27 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DLEP Neighbor |TLV Flags=0x10 | Length = 24 | Sub-TLVs as | | Up ACK (TBD) | | | noted below | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Message Type - DLEP_MESSAGE (Value TBD) Message Flags - Set to 0x1 (bit 3, mhasseqnum bitinitial TLV type value isset). All other bits are unused and MUST beset to'0'. MessageDLEP_NEIGHBOR_UP_ACK (value TBD). The Identification data item TLV is placed in the packet next, followed by the MAC AddressLength - 0x0 Message Size - 35 Message Sequence Number - A 16-bit unsigned integer fieldTLV, containing thesequence number fromMAC address of theNeighbor Down Message that is being acknowledged. TLV Block - TLV Length: 27 Sub-TLVsDLEP neighbor. The implementation would then place any supported OPTIONAL Data Item TLVs into the packet: Optional Data Item TLVs: -Identification (MANDATORY) MAC Address Sub-TLV (MANDATORY) Status Sub-TLV (MANDATORY)Credit Window Status(OPTIONAL)20. Neighbor Down Message A DLEP peer sends the Neighbor Down message to report when a destination (arouting peerremote node or a multicast group) is no longer reachable. The Neighbor Down message MUST contain both the Identification data item TLV, and a MAC Address data item TLV.Any otherOther TLVspresentas listed are OPTIONAL, and MAY beignored.present if an implementation supports them. A Neighbor Down ACK Messageis requiredMUST be sent by the recipient of a Neighbor Down message to confirm that theprocess.relevant data has been removed from the information base. The sender of the Neighbor Down message is free to define its retry heuristics in event of a timeout.Upon successful receipt and parsing ofTo construct a Neighbor Down message, thereceiving peer MUST remove all state information for the destination, and send a Neighbor Down ACK message to the originating peer. The Neighbor Down Message 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Msg Type = |Msg Flg|AddrLen| Message Size | | DLEP_MESSAGE | 0x1 | 0x0 | 31 + optional | | (value TBD) | | | sub-TLV | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Seq Num | TLVs Length = 23 + optional | | | Sub-TLV | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TLV Type = |TLV Flags=0x10 | Length = 20 + | Sub-TLVs as | | DLEP Neighbor | | optional Sub- | noted below | | Down (TBD) | |initial TLV| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Message Type - DLEP_MESSAGE (Value TBD) Message Flags - Set to 0x1 (bit 3, mhasseqnum bittype value isset). All other bits are unused and MUST beset to'0'. Message Address Length - 0x0 Message Size - 31 + optional TLVs Message Sequence Number - A 16-bit unsigned integer field containing a sequence number generatedDLEP_NEIGHBOR_DOWN (value TBD). The signal TLV is followed by themessage originator. TLV Blockmandatory data item TLVs: -TLV Length: 23 + optional Sub-TLVs Sub TLVsIdentification(MANDATORY)- MAC Address(MANDATORY)Data item - Status(OPTIONAL)data item Note that there are NO OPTIONAL data item TLVs for this message. 21. Neighbor Down ACK Message ApeerDLEP participant sends the Neighbor Down ACK Message to indicate whether a received Neighbor Down Message was successfully processed. If successfully processed, thesending peersender of the ACK MUSTremovehave removed allstateentries in the informationonbase that pertain to the referencedneighbor session. Theneighbor. As with the Neighbor DownACK message containsmessage, there are NO OPTIONAL Data Item TLVs defined for thefollowing 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Msg Type = |Msg Flg|AddrLen| Message Size | | DLEP_MESSAGE | 0x1 | 0x0 | 35 | | (value TBD) | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Seq Num |TLVs Length = 27 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DLEPNeighbor|TLV Flags=0x10 | Length = 24 | Sub-TLVs as | |Down ACK(TBD)| | | noted below | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Message Type - DLEP_MESSAGE (Value TBD) Message Flags - Set to 0x1 (bit 3, mhasseqnum bit is set). All other bits are unused and MUST be set to '0'. Message Address Length - 0x0 Message Size - 35 Message Sequence Number - A 16-bit unsigned integer field containing the sequence number from themessage. To construct a Neighbor DownMessage that is being acknowledged.message, the initial TLVBlock -type value is set to DLEP_NEIGHBOR_DOWN_ACK (value TBD). The Identification data item TLVLength: 27 Sub-TLVsis placed in the packet next, followed by: -Identification (MANDATORY)MAC Address(MANDATORY)Data item - Status(MANDATORY)data item 22. Neighbor Update MessageThe clientA DLEP participant sends the Neighbor Update message whenait detects some change inlink metric parameters is detectedthe information base for adestination. Thegiven neighbor (remote node or multicast group). Some examples of changes that would prompt a Neighbor UpdateMessage 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Msg Type = |Msg Flg|AddrLen| Message Size | | DLEP_MESSAGE | 0x1 | 0x0 | 31 + optional | | (value TBD) | | | sub-TLV | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Seq Num | TLVs Length = 23 + optional | | | Sub-TLVs | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type = |TLV Flags=0x10 |Length = 20 + |Sub-TLVs as | |DLEP Neighbor | |optional Sub- |noted below | |Update (TBD) | |TLVs | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Message Typemessage are: -DLEP_MESSAGE (Value TBD) Message FlagsChange in link metrics (e.g., Data Rates) -Set to 0x1 (bit 3, mhasseqnum bitLayer 3 addressing change (for implementations that support it) To construct a Neighbor Update message, the initial TLV type value isset). All other bits are unused and MUST beset to'0'. MessageDLEP_NEIGHBOR_UPDATE (value TBD). Following the signal TLV are the mandatory Data Item TLVs: Identification Data Item TLV MAC AddressLength - 0x0 Message Size - 31 + optionaldata item TLV After placing the mandatory data item TLVsMessage Sequence Number - A 16-bit unsigned integer field containing a sequence number, generated byinto themessage originator. TLV Block -packet, the implementation would place any supported OPTIONAL data item TLVs. Possible OPTIONAL data item TLVsLengthare: -23 + optional Sub-TLVs. Sub TLVs Identification (MANDATORY) MACIPv4 Address - IPv6 Address(MANDATORY)- Maximum Data Rate(OPTIONAL)- Current Data Rate(OPTIONAL)- Latency(OPTIONAL)- Resources(OPTIONAL)- Relative Link Quality(OPTIONAL)- Credit Window Status(OPTIONAL)- Credit Grant(OPTIONAL)- Credit Request(OPTIONAL)23.Neighbor Address Update Message The client sends the Neighbor Address Update message when a change in Layer 3 addressing is detected for a neighbor session. The Neighbor Address Update Message 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Msg Type = |Msg Flg|AddrLen| Message Size | | DLEP_MESSAGE | 0x1 | 0x0 | 31 + size of opt | | (value TBD) | | | sub-TLVs | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Seq Num |TLVs Length =23 + opt sub-TLVs | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DLEP Neighbor |TLV Flags=0x10 | Length =20 + | Sub-TLVs as | | Address Update| | opt sub-TLVs | noted below | |(TBD) | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Message Type - DLEP_MESSAGE (Value TBD) Message Flags - Set to 0x1 (bit 3, mhasseqnum bit is set). All other bits are unused and MUST be set to '0'. Message Address Length - 0x0 Message Size - 31 + optional TLVs Message Sequence Number - A 16-bit unsigned integer field containing a sequence number, generated by the message originator. TLV Block - TLVs Length - 23 + optional Sub-TLVs. Sub TLVs Identification Sub-TLV (MANDATORY) MAC Address Sub-TLV (MANDATORY) IPv4 Address Sub-TLV (OPTIONAL) IPv6 Address Sub-TLV (OPTIONAL) 24. Neighbor Address Update ACK Message The server sends the Neighbor Address Update ACK Message to indicate whether a Neighbor Address Update Message was successfully processed. The Neighbor Address Update ACK message 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Msg Type = |Msg Flg|AddrLen| Message Size | | DLEP_MESSAGE | 0x1 | 0x0 | 35 | | (value TBD) | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Seq Num |TLVs Length = 27 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DLEP Neighbor |TLV Flags=0x10 | Length = 24 | Sub-TLVs as | | Address Update| | | noted below | | ACK (TBD) | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Message Type - DLEP_MESSAGE (Value TBD) Message Flags - Set to 0x1 (bit 3, mhasseqnum bit is set). All other bits are unused and MUST be set to '0'. Message Address Length - 0x0 Message Size - 35 Message Sequence Number - A 16-bit unsigned integer field containing the sequence number from the Neighbor Down Message that is being acknowledged. TLV Block - TLV Length: 27 Sub TLVs Identification Sub-TLV (MANDATORY) MAC Address Sub-TLV (MANDATORY) Status Sub-TLV (MANDATORY) 25.Heartbeat Message A Heartbeat Message is sent by apeerDLEP participant every N seconds, where N is defined in the "Heartbeat Interval" field of the discovery message. Note that implementations omitting the Heartbeat Interval effectively set the interval to an infinite value, therefore, in those cases, this message would NOT be sent. The message is used bypeersparticipants to detect when a DLEP session partner (either the modem or the router) is no longer communicating.PeersParticipants SHOULD allow some integral number of heartbeat intervals (default 4) to expire with no traffic on the router/modem session before initiating DLEP session termination procedures.TheTo construct a HeartbeatMessage containsmessage, thefollowing 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Msg Type = |Msg Flg|AddrLen| Message Size | | DLEP_MESSAGE | 0x1 | 0x0 | 22 | | (value TBD) | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Seq Num |TLVs Length = 14 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DLEP Heartbeat|TLV Flags=0x10 | Length = 11 | Sub-TLVs as | | (TBD) | | | noted below | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Message Type - DLEP_MESSAGE (Value TBD) Message Flags - Set to 0x1 (bit 3, mhasseqnum bitinitial TLV type value isset). All other bits are unused and SHOULD beset to'0'. Message Address Length - 0x0 Message Size - 22 Message Sequence Number - A 16-bit unsigned integer field containing a sequence number generatedDLEP_PEER_HEARTBEAT (value TBD). The signal TLV is followed by themessage originator. TLV Block - TLV Length = 14 Sub TLVsmandatory data item TLVs: - IdentificationSub-TLV (MANDATORY) 26.Note that there are NO OPTIONAL data item TLVs for this message. 24. Link Characteristics Request Message The Link Characteristics Request Message is an OPTIONAL message, and is sent by theserverrouter tothe client when the server detectsrequest thata different set of transmission characteristics is necessary (or desired) forthetypemodem initiate changes for specific characteristics oftraffic that is flowing onthe link.It is important to note thatSince thelinkrequest specifies a neighbor, it canbereference either a real destination (e.g., a remote node), or a logicallink fordestination (e.g., a multicastsession where more than one remote neighbor participates.destination) within the network. TherequestLink Characteristics Request message contains either a Current Data Rate (CDR) TLV to request a different amount of bandwidth 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.TheTo construct a Link Characteristics RequestMessage containsmessage, thefollowing 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Msg Type = |Msg Flg|AddrLen| Message Size | | DLEP_MESSAGE | 0x1 | 0x0 | 31 + size of opt | | (value TBD) | | | sub-TLVs | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Seq Num |TLVs Length =23 + opt sub-TLVs | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DLEP Link Char|TLV Flags=0x10 | Length =20 + | Sub-TLVs as | | Request (TBD) | | opt sub-TLVs | noted below | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Message Type - DLEP_MESSAGE (Value TBD) Message Flags - Set to 0x1 (bit 3, mhasseqnum bitinitial TLV type value isset). All other bits are unused and MUST beset to'0'. Message Address Length - 0x0 Message Size - 31 + length of optional (Current Data Rate and/or Latency) Sub-TLVs Message Sequence Number - A 16-bit unsigned integer field containing a sequence number generated byDLEP_NEIGHBOR_LINK_CHAR_REQ (value TBD). Following themessage originator.signal TLVBlock - Length: 23 + optional Sub-TLVs Sub TLVsare the mandatory Data Item TLVs: IdentificationSub-TLV (MANDATORY)Data Item TLV MAC AddressSub-TLV (MANDATORY)data item TLV After placing the mandatory data item TLVs into the packet, the implementation would place any supported OPTIONAL data item TLVs. Possible OPTIONAL data item TLVs are: Current Data RateSub-TLV-ifIf present, this value represents therequested data rateNEW (or unchanged, if the request is denied) Current Data Rate in bits per second (bps).(OPTIONAL)LatencyTLV-ifIf present, this value represents the maximumlatency, in milliseconds,desired latency (e.g., it is a not-to-exceed value) in milliseconds on the link.(OPTIONAL) 27.25. Link Characteristics ACK Message TheLinkLInk Characteristics ACKMessagemessage is an OPTIONAL message, and is sent bythe clientmodems supporting it to theserverrouter letting theserverrouter know the success(or failure)or failure ofthea 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.TheTo construct a Link Characteristics Request ACKMessage containsmessage, thefollowing 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Msg Type = |Msg Flg|AddrLen| Message Size | | DLEP_MESSAGE | 0x1 | 0x0 | 31 + size of opt | | (value TBD) | | | sub-TLVs | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Seq Num |TLVs Length =23 + opt sub-TLVs | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DLEP Link Char|TLV Flags=0x10 | Length =20 + | Sub-TLVs as | | ACK (TBD) | | opt sub-TLVs | noted below | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Message Type - DLEP_MESSAGE (Value TBD) Message Flags - Set to 0x1 (bit 3, mhasseqnum bitinitial TLV type value isset). All other bits are unused and MUST beset to'0'. Message Address Length - 0x0 Message Size - 31 + length of optional (Current Data Rate and/or Latency) TLVs Message Sequence Number - A 16-bit unsigned integer field containing the sequence number that appeared onDLEP_NEIGHBOR_LINK_CHAR_ACK (value TBD). Following thecorresponding Link Characteristics Request message.signal TLVBlock - TLVs Length = 23 + Optional TLVs Sub TLVsare the mandatory Data Item TLVs: IdentificationSub-TLV (MANDATORY)Data Item TLV MAC AddressSub-TLV (MANDATORY) Maximum Data Rate Sub-TLV (OPTIONAL)data item TLV After placing the mandatory data item TLVs into the packet, the implementation would place any supported OPTIONAL data item TLVs. Possible OPTIONAL data item TLVs are: Current Data RateSub-TLV-ifIf present, this value represents theNEW (or unchanged, if the request is denied) Current Data Raterequested data rate in bits per second (bps).(OPTIONAL)LatencySub-TLV-ifIf present, this value represents the NEW maximum latency (or unchanged, if the request is denied), expressed in milliseconds, on the link.(OPTIONAL) Resources Sub-TLV (OPTIONAL) Relative Link Quality Sub-TLV (OPTIONAL) 28.26. 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.29.27. IANA Considerations This section specifies requests to IANA.29.1 TLV27.1 Registrations This specification defines: oOne TLV types which must be allocated from the 0-223 range of the "Assigned Message TLV Types" repository of [RFC5444]. oA new repository for DLEPorders,signals, withseventeenfifteen values currently assigned. o Reservation of numbering space for Experimental DLEP signals. o A new repository for DLEPSub-TLV assignmentsData Items, withnineteeneighteen values currently assigned.29.2o 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.2 Expert Review: Evaluation GuidelinesFor the registriesNo additional guidelines forTLV type extensions where an Expert Review is required, the designatedexpertSHOULD take the same general recommendations into consideration asreview arespecified by [RFC5444]. 29.3 Messageanticipated. 27.3 Signal (Message) TLV Type RegistrationThe Message TLV specified below must be allocated from the "Message TLV Types" namespace of [RFC5444]. o DLEP_MESSAGE 29.4 DLEP Order RegistrationA new repository must be created with the values of the DLEPorders.signals. Validorderssignals are: oAttachedPeer DiscoveryMessageoDetachedPeerDiscovery MessageOffer o Peer OfferMessageACK o Peer UpdateMessageo Peer Update ACKMessageo Peer TerminationMessageo Peer Termination ACKMessageo Neighbor UpMessageo Neighbor Up ACKMessageo Neighbor DownMessageo Neighbor Down ACKMessageo Neighbor UpdateMessage o Neighbor Address Update Message o Neighbor Address Update ACK Messageo HeartbeatMessageo Link Characteristics RequestMessageo Link Characteristics ACKMessage This registry should be created according toIt is also requested that theguidelinesrepository contain space for'Message-Type-Specific TLV' registration as specified in section 6.2.1 of [RFC5444]. 29.5experimental signal types. 27.4 DLEPSub-TLV TypeData Item Registrations A new repository for DLEPSub-TLVsData Items must be created. ValidSub-TLVsData Items are: o IdentificationSub-TLVo DLEP VersionSub-TLVo Peer TypeSub-TLVo MAC AddressSub-TLVo IPv4 AddressSub-TLVo IPv6 AddressSub-TLVo Maximum Data RateSub-TLVo Current Data RateSub-TLVo LatencySub-TLVo Expected Forwarding TimeSub-TLVo ResourcesSub-TLVo Relative Link QualitySub-TLVo StatusSub-TLVo HeartbeatInterval Sub-TLV o Heartbeat Threshold Sub-TLVInterval/Threshold o Link Characteristics ACK TimerSub-TLVo Credit Window StatusSub-TLVo Credit GrantSub-TLVo Credit RequestSub-TLVIt is also requested that the registry allocation contain spacereservedfor experimentalsub-TLVs.data items. 27.5 DLEP Well-known Port It is requested that IANA allocate a well-known port number for DLEP communication. 27.6 DLEP Multicast Address It is requested that IANA allocate a multicast address for DLEP discovery messages. 30. Appendix A. 30.1 Peer Level Message Flows*Modem30.1.1 Modem Device(Client)Restarts DiscoveryServer ClientRouter Modem Message Description ==================================================================== <-------Peer Discovery---------ClientModem initiates discovery ---------Peer Offer----------->ServerRouter detects a problem, sends w/ Non-zero Status TLV Peer Offerw/ Statusw/Status TLV indicating the error.ClientModem accepts failure, restarts discovery process. <-------Peer Discovery---------ClientModem initiates discovery ---------Peer Offer----------->ServerRouter accepts, sends Peer Offer w/ Zero Status TLV w/ Status TLV indicating success. Discovery completed.*Modem30.1.2 Modem Device Detects Peer Offer TimeoutServer ClientRouter Modem Message Description ==================================================================== <-------Peer Discovery---------ClientModem initiates discovery, starts a guard timer.ClientModem guard timer expires.ClientModem restarts discovery process. <-------Peer Discovery---------ClientModem initiates discovery, starts a guard timer. ---------Peer Offer----------->ServerRouter accepts, sends Peer Offer w/ Zero Status TLV w/ Status TLV indicating success. Discovery completed.*Server30.1.3 Router Peer Offer LostServer ClientRouter Modem Message Description ==================================================================== <-------Peer Discovery---------ClientModem initiates discovery, starts a guard timer. ---------Peer Offer-------||ServerRouter offers availabilityClientModem times out on Peer Offer, restarts discovery process. <-------Peer Discovery---------ClientModem initiates discovery ---------Peer Offer----------->ServerRouter detects subsequent discovery, internally terminates the previous, accepts the new association, sends Peer Offerw/ Statusw/Status TLV indicating success. Discovery completed.*Discovery30.1.4 Discovery SuccessServer ClientRouter Modem Message Description ==================================================================== <-------Peer Discovery---------ClientModem initiates discovery ---------Peer Offer----------->ServerRouter offers availability -------Peer Heartbeat---------> <-------Peer Heartbeat--------- -------Peer Heartbeat---------> <==============================> Neighbor Sessions <-------Peer Heartbeat--------- -------Peer Heartbeat---------> --------Peer Term Req---------> Terminate Request <--------Peer Term Res--------- Terminate Response*Server30.1.5 Router Detects a Heartbeat timeoutServer ClientRouter Modem Message Description ==================================================================== <-------Peer Heartbeat--------- -------Peer Heartbeat---------> ||---Peer Heartbeat--------- ~ ~ ~ ~ ~ ~ ~ -------Peer Heartbeat---------> ||---Peer Heartbeat---------ServerRouter Heartbeat Timer expires, detects missing heartbeats.ServerRouter takes down all neighbor sessions and terminates the Peer association. ------Peer Terminate ---------> Peer Terminate RequestClientModem takes down all neighbor sessions, then acknowledges the Peer Terminate <----Peer Terminate ACK--------- Peer Terminate ACK*Client30.1.6 Modem Detects a Heartbeat timeoutServer ClientRouter Modem Message Description ==================================================================== <-------Peer Heartbeat--------- -------Peer Heartbeat------|| <-------Peer Heartbeat--------- ~ ~ ~ ~ ~ ~ ~ -------Peer Heartbeat------|| <-------Peer Heartbeat---------ClientModem Heartbeat Timer expires, detects missing heartbeats. Modem takes down all neighbor sessionsand terminates the Peer association.<-------Peer Terminate-------- Peer Terminate RequestServerRouter takes down all neighbor sessions, then acknowledges the Peer Terminate ------Peer Terminate ACK-----> Peer Terminate ACK*Peer30.1.7 Peer Terminate (fromClient)Modem) LostServer ClientRouter Modem Message Description ==================================================================== ||------Peer Terminate--------ClientModem Peer Terminate RequestServerRouter Heartbeat times out, terminates association. --------Peer Terminate------->ServerRouter Peer Terminate <-----Peer Terminate ACK------ClientModem sends Peer Terminate ACK*Peer30.1.8 Peer Terminate (fromserver)Router) LostServer ClientRouter Modem Message Description ==================================================================== -------Peer Terminate-------->ServerRouter Peer Terminate RequestClientModem HB times out, terminates association. <------Peer Terminate--------ClientModem Peer Terminate ------Peer Terminate ACK-----> Peer Terminate ACK 30.2 NeighborLevelSpecific Message Flows*Client30.2.1 Modem Neighbor Up LostServer ClientRouter Modem Message Description ==================================================================== ||-----Neighbor Up ------------ClientModem sends Neighbor UpClientModem timesout on ACK <------Neighbor Up ------------ClientModem sends Neighbor Up ------Neighbor Up ACK--------->ServerRouter accepts the neighbor session <------Neighbor Update---------ClientModem Neighbor Metrics . . . . . . . . <------Neighbor Update---------ClientModem Neighbor Metrics*Server30.2.2 Router Detects Duplicate Neighbor UpsServer ClientRouter Modem Message Description ==================================================================== <------Neighbor Up ------------ClientModem sends Neighbor Up ------Neighbor Up ACK-------||ServerRouter accepts the neighbor sessionClientModem timesout on ACK <------Neighbor Up ------------ClientModem resends Neighbor UpServerRouter detects duplicate Neighbor, takes down the previous, accepts the new Neighbor. ------Neighbor Up ACK--------->ServerRouter accepts the neighbor session <------Neighbor Update---------ClientModem Neighbor Metrics . . . . . . . . <------Neighbor Update---------ClientModem Neighbor Metrics*Neighbor30.2.3 Neighbor Up, No Layer 3 AddressesServer ClientRouter Modem Message Description ==================================================================== <------Neighbor Up ------------ClientModem sends Neighbor Up ------Neighbor Up ACK--------->ServerRouter accepts the neighbor sessionServerRouter ARPs for IPv4 if defined.ServerRouter drives ND for IPv6 if defined. <------Neighbor Update---------ClientModem Neighbor Metrics . . . . . . . . <------Neighbor Update---------ClientModem Neighbor Metrics*Neighbor30.2.4 Neighbor Up with IPv4, No IPv6Server ClientRouter Modem Message Description ==================================================================== <------Neighbor Up ------------ClientModem sends Neighbor Up with the IPv4 TLV ------Neighbor Up ACK--------->ServerRouter accepts the neighbor sessionServerRouter drives ND for IPv6 if defined. <------Neighbor Update---------ClientModem Neighbor Metrics . . . . . . . . <------Neighbor Update---------ClientModem Neighbor Metrics*Neighbor30.2.5 Neighbor Up with IPv4 and IPv6Server ClientRouter Modem Message Description ==================================================================== <------Neighbor Up ------------ClientModem sends Neighbor Up with the IPv4 and IPv6 TLVs ------Neighbor Up ACK--------->ServerRouter accepts the neighbor session <------Neighbor Update---------ClientModem Neighbor Metrics . . . . . . . .<------Neighbor Update--------- Client30.2.6 NeighborMetrics *NeighborSession SuccessServer ClientRouter Modem Message Description ==================================================================== ---------Peer Offer----------->ServerRouter offers availability -------Peer Heartbeat---------> <------Neighbor Up -----------ClientModem ------Neighbor Up ACK-------->ServerRouter <------Neighbor Update---------ClientModem . . . . . . . . <------Neighbor Update---------Client ClientModem Modem initiates the terminate <------Neighbor Down ----------ClientModem ------Neighbor Down ACK------->ServerRouter orServerRouter initiates the terminate ------Neighbor Down ---------->ServerRouter <------Neighbor Down ACK-------ClientModem Acknowledgements The authors would like to acknowledge the influence and contributions of Chris Olsen, Teco Boot, Subir Das, Jaewon Kang, Vikram Kaul, Rick Taylor,andJohnDowdell.Dowdell, Nelson Powell, Bow-Nan Cheng, and Henning Rogge. Normative References[RFC5444] Clausen, T., Ed,. "Generalized Mobile Ad Hoc Network (MANET) Packet/Message Format", RFC 5444, Februar, 2009.[RFC5578] Berry, B., Ed., "PPPoE with Credit Flow and Metrics", RFC 5578, February 2010. [RFC2119] Bradner, S., "Key words for use in RFCs to IndicateRequirement Levels", RFC 2119, March 1997.Informative References [DTLS] Rescorla, E., Ed,. "Datagram Transport Layer Security", RFC 4347, April 2006. 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 Jury NetApp 7301 Kit Creek Road, Building 2 Research Triangle Park, NC 27709 USA Email: shawn.jury@netapp.com Darryl Satterwhite Cisco 170 West Tasman Drive San Jose, CA 95134 USA Email: dsatterw@cisco.com