draft-ietf-manet-dlep-02.txt   draft-ietf-manet-dlep-03.txt 
Mobile Ad hoc Networks Working S. Ratliff Mobile Ad hoc Networks Working S. Ratliff
Group B. Berry Group B. Berry
Internet-Draft G. Harrison Internet-Draft G. Harrison
Intended status: Standards Track D. Satterwhite Intended status: Standards Track D. Satterwhite
Expires: August 10, 2012 Cisco Systems Expires: March 3, 2013 Cisco Systems
S. Jury S. Jury
NetApp NetApp
February 6, 2012 August 30, 2012
Dynamic Link Exchange Protocol (DLEP) Dynamic Link Exchange Protocol (DLEP)
draft-ietf-manet-dlep-02 draft-ietf-manet-dlep-03
Abstract Abstract
When routing devices rely on modems to effect communications over When routing devices rely on modems to effect communications over
wireless links, they need timely and accurate knowledge of the wireless links, they need timely and accurate knowledge of the
characteristics of the link (speed, state, etc.) in order to make characteristics of the link (speed, state, etc.) in order to make
forwarding decisions. In mobile or other environments where these forwarding decisions. In mobile or other environments where these
characteristics change frequently, manual configurations or the characteristics change frequently, manual configurations or the
inference of state through routing or transport protocols does not inference of state through routing or transport protocols does not
allow the router to make the best decisions. A bidirectional, event- allow the router to make the best decisions. A bidirectional, event-
skipping to change at page 1, line 47 skipping to change at page 1, line 48
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on August 10, 2012 . This Internet-Draft will expire on February 21, 2013.
Copyright Notice Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the Copyright (c) 2012 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . 6 1.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . 7
2. Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . 6 2. Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3. Credits . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3. Credits . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4. Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4. Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5. Extensions to DLEP . . . . . . . . . . . . . . . . . . . . . . 8 5. Extensions to DLEP . . . . . . . . . . . . . . . . . . . . . . 10
6. Normal Session Flow . . . . . . . . . . . . . . . . . . . . . 8 6. Normal Session Flow . . . . . . . . . . . . . . . . . . . . . . 10
7. Generic DLEP Packet Definition . . . . . . . . . . . . . . . . 9 7. Mandatory Signals and Data Items . . . . . . . . . . . . . . . 12
8. Message Header Format . . . . . . . . . . . . . . . . . . . . 10 8. Generic DLEP Packet Definition . . . . . . . . . . . . . . . . 13
9. Message TLV Block Format . . . . . . . . . . . . . . . . . . . 10 9. DLEP Data Items . . . . . . . . . . . . . . . . . . . . . . . . 13
10. DLEP Sub-TLVs . . . . . . . . . . . . . . . . . . . . . . . . 11 9.1 Identification . . . . . . . . . . . . . . . . . . . . . . 14
10.1. Identification Sub-TLV. . . . . . . . . . . . . . . . . . 12 9.2 DLEP Version . . . . . . . . . . . . . . . . . . . . . . . 15
10.2. DLEP Version Sub-TLV. . . . . . . . . . . . . . . . . . . 13 9.3 Peer Type . . . . . . . . . . . . . . . . . . . . . . . . . 16
10.3. Peer Type Sub-TLV . . . . . . . . . . . . . . . . . . . . 14 9.4 MAC Address . . . . . . . . . . . . . . . . . . . . . . . . 16
10.4. MAC Address Sub-TLV . . . . . . . . . . . . . . . . . . . 14 9.5 IPv4 Address . . . . . . . . . . . . . . . . . . . . . . . 17
10.5. IPv4 Address Sub-TLV. . . . . . . . . . . . . . . . . . . 15 9.6 IPv6 Address . . . . . . . . . . . . . . . . . . . . . . . 18
10.6. IPv6 Address Sub-TLV. . . . . . . . . . . . . . . . . . . 16 9.7 Maximum Data Rate . . . . . . . . . . . . . . . . . . . . . 18
10.7. Maximum Data Rate Sub-TLV . . . . . . . . . . . . . . . . 16 9.8 Current Data Rate . . . . . . . . . . . . . . . . . . . . . 19
10.8. Current Data Rate Sub-TLV . . . . . . . . . . . . . . . . 17 9.9 Expected Forwarding Time . . . . . . . . . . . . . . . . . 20
10.9. Latency Sub-TLV . . . . . . . . . . . . . . . . . . . . . 18 9.10 Latency . . . . . . . . . . . . . . . . . . . . . . . . . 20
10.10. Resources Sub-TLV . . . . . . . . . . . . . . . . . . . . 18 9.11 Resources . . . . . . . . . . . . . . . . . . . . . . . . 21
10.11. Expected Forwarding Time Sub-TLV. . . . . . . . . . . . . 19 9.12 Relative Link Quality . . . . . . . . . . . . . . . . . . 22
10.12. Relative Link Quality Sub-TLV . . . . . . . . . . . . . . 20 9.13 Status . . . . . . . . . . . . . . . . . . . . . . . . . . 22
10.13. Peer Termination Sub-TLV. . . . . . . . . . . . . . . . . 20 9.14 Heartbeat Interval/Threshold . . . . . . . . . . . . . . . 23
10.14. Heartbeat Interval Sub-TLV. . . . . . . . . . . . . . . . 21 9.15 Link Characteristics ACK Timer . . . . . . . . . . . . . . 24
10.15. Heartbeat Threshold Sub-TLV . . . . . . . . . . . . . . . 21 9.16 Credit Window Status . . . . . . . . . . . . . . . . . . . 24
10.16. Link Characteristics ACK Timer Sub-TLV. . . . . . . . . . 22 9.17 Credit Grant Request . . . . . . . . . . . . . . . . . . . 25
10.17. Credit Window Status Sub-TLV. . . . . . . . . . . . . . . 23 9.18 Credit Request . . . . . . . . . . . . . . . . . . . . . . 26
10.18. Credit Grant Sub-TLV. . . . . . . . . . . . . . . . . . . 24 10. DLEP Protocol Messages . . . . . . . . . . . . . . . . . . . . 27
10.19. Credit Request Sub-TLV. . . . . . . . . . . . . . . . . . 24 10.1 Signal TLV Values . . . . . . . . . . . . . . . . . . . . 27
11. DLEP Protocol Messages . . . . . . . . . . . . . . . . . . . 25 11. Peer Discovery Message . . . . . . . . . . . . . . . . . . . . 28
11.1. Message Block TLV Values . . . . . . . . . . . . . . . . 25 12. Peer Offer Message . . . . . . . . . . . . . . . . . . . . . . 28
12. Peer Discovery Messages . . . . . . . . . . . . . . . . . . . 26 13. Peer Offer ACK Message . . . . . . . . . . . . . . . . . . . . 29
12.1. Attached Peer Discovery Message . . . . . . . . . . . . . 26 14. Peer Update Message . . . . . . . . . . . . . . . . . . . . . 30
12.2. Detached Peer Discovery Message . . . . . . . . . . . . . 27 15. Peer Update ACK Message . . . . . . . . . . . . . . . . . . . 31
13. Peer Offer Message . . . . . . . . . . . . . . . . . . . . . . 29 16. Peer Termination Message . . . . . . . . . . . . . . . . . . . 31
14. Peer Update Message. . . . . . . . . . . . . . . . . . . . . . 30 17. Peer Termination ACK Message . . . . . . . . . . . . . . . . . 31
15. Peer Update ACK Message. . . . . . . . . . . . . . . . . . . . 31 18. Neighbor Up Message . . . . . . . . . . . . . . . . . . . . . 32
16. Peer Termination Message . . . . . . . . . . . . . . . . . . . 32 19. Neighbor Up ACK Message . . . . . . . . . . . . . . . . . . . 32
17. Peer Termination ACK Message . . . . . . . . . . . . . . . . . 33 20. Neighbor Down Message . . . . . . . . . . . . . . . . . . . . 33
18. Neighbor Up Message . . . . . . . . . . . . . . . . . . . . . 33 21. Neighbor Down ACK Message . . . . . . . . . . . . . . . . . . 33
19. Neighbor Up ACK Message. . . . . . . . . . . . . . . . . . . . 35 22. Neighbor Update Message . . . . . . . . . . . . . . . . . . . 34
20. Neighbor Down Message . . . . . . . . . . . . . . . . . . . . 35 23. Heartbeat Message . . . . . . . . . . . . . . . . . . . . . . 34
21. Neighbor Down ACK Message. . . . . . . . . . . . . . . . . . . 36 24. Link Characteristics Request Message . . . . . . . . . . . . . 35
22. Neighbor Update Message . . . . . . . . . . . . . . . . . . . 37 25. Link Characteristics ACK Message . . . . . . . . . . . . . . . 36
23. Neighbor Address Update Message. . . . . . . . . . . . . . . . 38 26. Security Considerations . . . . . . . . . . . . . . . . . . . 36
24. Neighbor Address Update ACK Message. . . . . . . . . . . . . . 39 27. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 36
25. Heartbeat Message . . . . . . . . . . . . . . . . . . . . . . 40 27.1 Registrations . . . . . . . . . . . . . . . . . . . . . . 36
26. Link Characteristics Message . . . . . . . . . . . . . . . . . 40 27.2 Expert Review: Evaluation Guidelines . . . . . . . . . . . 37
27. Link Characteristics ACK Message . . . . . . . . . . . . . . . 42 27.3 Signal (Message) TLV Type Registration . . . . . . . . . . 37
28. Security Considerations. . . . . . . . . . . . . . . . . . . . 43 27.4 DLEP Data Item Registrations . . . . . . . . . . . . . . . 38
29. IANA Considerations. . . . . . . . . . . . . . . . . . . . . . 43 27.5 DLEP Well-known Port . . . . . . . . . . . . . . . . . . . 38
29.1 TLV Registrations. . . . . . . . . . . . . . . . . . . . . 43 27.6 DLEP Multicast Address . . . . . . . . . . . . . . . . . . 38
29.2 Expert Review: Evaluation Guidelines . . . . . . . . . . . 43 30. Appendix A. . . . . . . . . . . . . . . . . . . . . . . . . . 38
29.3 Message TLV Type Registrations . . . . . . . . . . . . . . 43 30.1 Peer Level Message Flows . . . . . . . . . . . . . . . . . 38
29.4 DLEP Order Registrations . . . . . . . . . . . . . . . . . 44 30.1.1 Modem Device Restarts Discovery . . . . . . . . . . . 38
29.5 DLEP Sub-TLV Type Registrations. . . . . . . . . . . . . . 44 30.1.2 Modem Device Detects Peer Offer Timeout . . . . . . . 39
30. Appendix A . . . . . . . . . . . . . . . . . . . . . . . . . . 45 30.1.3 Router Peer Offer Lost . . . . . . . . . . . . . . . . 40
30.1.4 Discovery Success . . . . . . . . . . . . . . . . . . 40
30.1.5 Router Detects a Heartbeat timeout . . . . . . . . . . 41
30.1.6 Modem Detects a Heartbeat timeout . . . . . . . . . . 41
30.1.7 Peer Terminate (from Modem) Lost . . . . . . . . . . . 42
30.1.8 Peer Terminate (from Router) Lost . . . . . . . . . . 42
30.2 Neighbor Specific Message Flows . . . . . . . . . . . . . 42
30.2.1 Modem Neighbor Up Lost . . . . . . . . . . . . . . . . 43
30.2.2 Router Detects Duplicate Neighbor Ups . . . . . . . . 43
30.2.3 Neighbor Up, No Layer 3 Addresses . . . . . . . . . . 44
30.2.4 Neighbor Up with IPv4, No IPv6 . . . . . . . . . . . . 44
30.2.5 Neighbor Up with IPv4 and IPv6 . . . . . . . . . . . . 44
30.2.6 Neighbor Session Success . . . . . . . . . . . . . . . 45
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . 45
Normative References . . . . . . . . . . . . . . . . . . . . . . . 45
Informative References . . . . . . . . . . . . . . . . . . . . . . 46
Author's Addresses . . . . . . . . . . . . . . . . . . . . . . . . 46
1. Introduction 1. Introduction
There exist today a collection of modem devices that control links of There exist today a collection of modem devices that control links of
variable bandwidth and quality. Examples of these types of links variable bandwidth and quality. Examples of these types of links
include line-of-sight (LOS) radios, satellite terminals, and cable/ include line-of-sight (LOS) radios, satellite terminals, and
DSL modems. Fluctuations in speed and quality of these links can cable/DSL modems. Fluctuations in speed and quality of these links
occur due to configuration (in the case of cable/DSL modems), or on a can occur due to configuration (in the case of cable/DSL modems), or
moment-to-moment basis, due to physical phenomena like multipath on a moment-to-moment basis, due to physical phenomena like multipath
interference, obstructions, rain fade, etc. It is also quite possible interference, obstructions, rain fade, etc. It is also quite possible
that link quality and bandwidth varies with respect to individual that link quality and bandwidth varies with respect to individual
neighbors on a link, and with the type of traffic being sent. As an 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 example, consider the case of an 802.11g access point, serving 2
associated laptop computers. In this environment, the answer to the associated laptop computers. In this environment, the answer to the
question "What is the bandwidth on the 802.11g link?" is "It depends 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 on which associated laptop we're talking about, and on what kind of
traffic is being sent." While the first laptop, being physically traffic is being sent." While the first laptop, being physically
close to the access point, may have a bandwidth of 54Mbps for close to the access point, may have a bandwidth of 54Mbps for unicast
unicast traffic, the other laptop, being relatively far away, or traffic, the other laptop, being relatively far away, or obstructed
obstructed by some object, can simultaneously have a bandwidth of by some object, can simultaneously have a bandwidth of only 32Mbps
only 32Mbps for unicast. However, for multicast traffic sent from the for unicast. However, for multicast traffic sent from the access
access point, all traffic is sent at the base transmission rate point, all traffic is sent at the base transmission rate (which is
(which is configurable, but depending on the model of the access configurable, but depending on the model of the access point, is
point, is usually 24Mbps or less). usually 24Mbps or less).
In addition to utilizing variable bandwidth links, mobile networks In addition to utilizing variable bandwidth links, mobile networks
are challenged by the notion that link connectivity will come and go are challenged by the notion that link connectivity will come and go
over time. Effectively utilizing a relatively short-lived connection over time. Effectively utilizing a relatively short-lived connection
is problematic in IP routed networks, as routing protocols tend to is problematic in IP routed networks, as routing protocols tend to
rely on independent timers at OSI Layer 3 to maintain network rely on independent timers at OSI Layer 3 to maintain network
convergence (e.g. HELLO messages and/or recognition of DEAD routing convergence (e.g. HELLO messages and/or recognition of DEAD routing
adjacencies). These short-lived connections can be better utilized adjacencies). These short-lived connections can be better utilized
with an event-driven paradigm, where acquisition of a new neighbor with an event-driven paradigm, where acquisition of a new neighbor
(or loss of an existing one) is somehow signaled, as opposed to a (or loss of an existing one) is signaled, as opposed to a timer-
timer-driven paradigm. driven paradigm.
Another complicating factor for mobile networks are the different Another complicating factor for mobile networks are the different
methods of physically connecting the modem devices to the router. methods of physically connecting the modem devices to the router.
Modems can be deployed as an interface card in a router's Modems can be deployed as an interface card in a router's chassis, or
chassis, or as a standalone device connected to the router via as a standalone device connected to the router via Ethernet, USB, or
Ethernet, USB, or even a serial link. In the case of Ethernet or even a serial link. In the case of Ethernet or serial attachment,
serial attachment, with existing protocols and techniques, routing with existing protocols and techniques, routing software cannot be
software cannot be aware of convergence events occurring on the aware of convergence events occurring on the radio link (e.g.
radio link (e.g. acquisition or loss of a potential routing acquisition or loss of a potential routing neighbor), nor can the
neighbor), nor can the router be aware of the actual capacity of router be aware of the actual capacity of the link. This lack of
the link. This lack of awareness, along with the variability in awareness, along with the variability in bandwidth, leads to a
bandwidth, leads to a situation where quality of service (QoS) situation where quality of service (QoS) profiles are extremely
profiles are extremely difficult to establish and properly difficult to establish and properly maintain. This is especially true
maintain. This is especially true of demand-based access schemes of demand-based access schemes such as Demand Assigned Multiple
such as Demand Assigned Multiple Access (DAMA) implementations Access (DAMA) implementations used on some satellite systems. With a
used on some satellite systems. With a DAMA-based system, DAMA-based system, additional bandwidth may be available, but will
additional bandwidth may be available, but will not be used not be used unless the network devices emit traffic at rate higher
unless the network devices emit traffic at rate higher than the than the currently established rate. Increasing the traffic rate does
currently established rate. Increasing the traffic rate does not not guarantee additional bandwidth will be allocated; rather, it may
guarantee additional bandwidth will be allocated; rather, it may
result in data loss and additional retransmissions on the link. result in data loss and additional retransmissions on the link.
In attempting to address the challenges listed above, the authors Addressing the challenges listed above, the authors have developed
have developed the Data Link Exchange Protocol, or DLEP. The DLEP the Data Link Exchange Protocol, or DLEP. The DLEP protocol runs
protocol runs between a router and its attached modem devices, between a router and its attached modem devices, allowing the modem
allowing the modem to communicate link characteristics as they to communicate link characteristics as they change, and convergence
change, and convergence events (acquisition and loss of potential events (acquisition and loss of potential routing neighbors). The
routing neighbors). The following diagrams are used to illustrate following diagrams are used to illustrate the scope of DLEP packets.
the scope of DLEP sessions.
|-----Local Neighbor-----| |-----Remote Neighbor----|
| | | (far-end device) |
|-------Local Node-------| |-------Remote Node------|
| | | |
+--------+ +-------+ +-------+ +--------+ +--------+ +-------+ +-------+ +--------+
| Router |=======| Modem |{~~~~~~~~}| Modem |=======| Router | | Router |=======| Modem |{~~~~~~~~}| Modem |=======| Router |
| | | Device| | Device| | | | | | Device| | Device| | |
+--------+ +-------+ +-------+ +--------+ +--------+ +-------+ +-------+ +--------+
| | | Link | | | | | | Link | | |
|-DLEP--| | Protocol | |-DLEP--| |-DLEP--| | Protocol | |-DLEP--|
| | | (e.g. | | | | | | (e.g. | | |
| | | 802.11) | | | | | | 802.11) | | |
Figure 1: DLEP Network Figure 1: DLEP Network
In Figure 1, when a local client (Modem device) detects the In Figure 1, when the local modem detects the presence of a remote
presence of a remote neighbor, it sends an indication to its node, it (the local modem) sends a signal to its router via the DLEP
local router via the DLEP session. Upon receipt of the indication, protocol. Upon receipt of the signal, the local router may take
the local router would take appropriate action (e.g. initiation whatever action it deems appropriate, such as initiating discovery
of discovery or HELLO protocols) to converge the network. After protocols, and/or issuing HELLO messages to converge the network. On
notification of the new neighbor, the modem device utilizes the a continuing, as-needed basis, the modem devices utilize DLEP to
DLEP session to report the characteristics of the link (bandwidth, report any characteristics of the link (bandwidth, latency, etc) that
latency, etc) to the router on an as-needed basis. have changed. DLEP is independent of the link type and topology
supported by the modem.
DLEP is independent of the underlying link type and topology. Figure 2 shows how DLEP can support a configuration where routers are
Figure 2 shows how DLEP can support a configuration whereby connected with different link types. In this example, Modem A
routers are connected with different link types and with different implements a point-to-point link, and Modem B is connected via a
network configurations. In this setup, the routers are connected shared medium. In both cases, the DLEP protocol is used to report the
with two different devices (Modem device A and Modem device B). characteristics of the link (bandwidth, latency, etc.) to routers.
Modem A is connected via a point-to-point link, whereas Modem B The modem is also able to use the DLEP session to notify the router
is connected via a shared medium. In both cases, the DLEP session when the remote node is lost, shortening the time required to re-
is used to report the characteristics of the link (bandwidth, converge the network.
latency, etc.) to network neighbors on an as-needed basis. The
modem is also able to use the DLEP session to notify the router
when the remote neighbor is lost, shortening the time required to
re-converge the network.
+--------+ +--------+ +------+ Modem A| | Modem A+-----+ | | Device | <===== // ======> | Device | | | +--------+ P-t-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 +--------+ +--------+
+----+ Modem A| | Modem A+---+
| | Device | <===== // ======> | Device | |
| +--------+ P-2-P Link +--------+ |
+---+----+ +---+----+
| Router | | Router |
| | | |
+---+----+ +---+----+
| +--------+ +--------+ |
+-----+ Modem B| | Modem B| |
| Device | o o o o o o o o | Device +--+
+--------+ o Shared o +--------+
o Medium o
o o
o o
o o
o
+--------+
| Modem B|
| Device |
+---+----+
|
|
+---+----+
| Router |
| |
+--------+
DLEP exists as a collection of type-length-value (TLV) based messages Figure 2: DLEP Network with Multiple Modem Devices
using [RFC5444] formatting. The protocol can be used for both Ethernet
attached modems (utilizing, for example, a UDP socket for transport DLEP defines a set of logical signals used by modems and their
of the RFC 5444 packets), or in environments where the modem is an attached routers. The signals are used to communicate events that
interface card in a chassis (via a message passing scheme). DLEP occur on the physical link(s) managed by the modem: for example, a
utilizes a session paradigm between the modem device and its remote node entering or leaving the network, or that the link has
associated router. If multiple modem devices are attached to a changed. Associated with these signals are a set of data items -
router (as in FIgure 2), a separate DLEP session MUST exist for each information that describes the remote node (e.g., address
information), and/or the characteristics of the link to the remote
node.
The protocol is defined as a collection of type-length-value (TLV)
based messages, specifying the signals that are exchanged between a
router and a modem, and the data items associated with the signal.
This document specifies transport of DLEP signals and data items via
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 a session-oriented paradigm between the modem device and
its associated router. If multiple modem devices are attached to a
router (as in Figure 2), a separate DLEP session MUST exist for each
modem. If a modem device supports multiple connections to a router modem. If a modem device supports multiple connections to a router
(via multiple logical or physical interfaces), or supports (via multiple logical or physical interfaces), or supports
connections to multiple routers, a separate DLEP session MUST exist connections to multiple routers, a separate DLEP session MUST exist
for each connection. 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 1.1 Requirements
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14, RFC 2119 document are to be interpreted as described in BCP 14, RFC 2119
[RFC2119]. [RFC2119].
2. Assumptions 2. Assumptions
In order to implement discovery in the DLEP protocol (thereby Routers and modems that exist as part of the same node (e.g., that
avoiding some configuration), we have defined a first-speaker and a are locally connected) can utilize a discovery technique to locate
passive-listener scheme. Borrowing from existing terminology, this each other, thus avoiding a-priori configuration. Either entity (the
document refers to the first-speaker as the 'client', and the passive router or the modem) can initiate the discovery process. In cases
listener as the 'server', even though there is no client/server where both entities initiate discovery, a race condition can occur.
relationship in the classic sense. In a typical deployment, a router When this race condition occurs, the router MUST cease its active
would appear as the DLEP 'server', and an attached modem device would discovery, and respond to the modem's request.
act as the 'client' (e.g. the initiator for discovery).
DLEP assumes that participating clients appear to the server as a DLEP utilizes a session-oriented paradigm. A router and modem form a
transparent bridge - specifically, the assumption is that the session by completing the discovery process. This router-modem
destination MAC address for data traffic in any frame emitted by session persists unless or until it either (1) times out, based on
the server should be the MAC address of the next-hop router or end- the timeout values supplied, or (2) is explicitly torn down by one of
device, and not the MAC address of any of the intervening clients. 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 security on the session (e.g. authentication of DLEP assumes that participating modems, and their physical links, act
session partners, encryption of traffic, or both) is dealt with by as a transparent bridge. Specifically, the assumption is that the
the underlying transport mechanism for the RFC 5444 packets (e.g. by destination MAC address for data traffic in any frame emitted by the
using a transport such as DTLS [DTLS]). router should be the MAC address of a device in the remote node. DLEP
also assumes that MAC addresses are unique within the context of the
router-modem session.
DLEP utilizes a session-oriented paradigm. There are two classes This document refers to a remote node as a "Neighbor". Neighbors can
of sessions - the first is identified as a 'peer session'. The be identified by either the router or the modem, and represent a
peer session exists between a DLEP server and a DLEP client. All specific destination (e.g., an address) that exists on the link(s)
DLEP messages between client and server are transmitted within the managed by the modem. Examples of a destination include a MAC
context of the peer session. address, a unicast Layer 3 address, or a multicast Layer 3 address.
As "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 neighbor
(destination) specific.
The other type of DLEP session is referred to as a 'neighbor session'. The DLEP signals concerning neighbors thus become the way for routers
Neighbor sessions can be instantiated by either the DLEP server or and modems to maintain, and notify each other about, an information
client, and represent an identifiable destination (i.e. an address) base representing the physical and logical (e.g., multicast)
within the network. Examples of a destination would be a unicast destinations accessible via the modem device. The information base
address (for either a next-hop router, or for an end-station), or would contain addressing information (e.g., MAC address, and
a multicast address. A DLEP neighbor session MUST exist for every OPTIONALLY, Layer 3 addresses), link characteristics (metrics), and
destination that exists in the network. OPTIONALLY, flow control information (credits).
The optional [RFC5444] message header Sequence Number MUST be DLEP assumes that security on the session (e.g. authentication of
included in all DLEP packets. Sequence Numbers start at 1 and are session partners, encryption of traffic, or both) is dealt with by
incremented by one for each original and retransmitted message. The the underlying transport mechanism (e.g., by using a transport such
unsigned 16-bit Sequence Number rolls over at 65535 to 1. A as DTLS [DTLS]).
Sequence Number of 0 is not valid. Sequence Numbers are unique
Sequence Numbers for DLEP messages start at 0 and are incremented by
one for each original and retransmitted message. The unsigned 16-bit
Sequence Number rolls over at 65535 to 0. Sequence Numbers are unique
within the context of a DLEP session. Sequence numbers are used in within the context of a DLEP session. Sequence numbers are used in
DLEP to correlate a response to a request. 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 3. Credits
DLEP includes an OPTIONAL credit-windowing scheme analogous to the DLEP includes an OPTIONAL credit-windowing scheme analogous to the
one documented in [RFC5578]. In this scheme, traffic between the one documented in [RFC5578]. In this scheme, traffic between the
DLEP client and the DLEP server is treated as two unidirectional router and modem is treated as two unidirectional windows. This
windows. This document identifies these windows as the "Client document identifies these windows as the "Modem Receive Window", or
Receive Window", or CRW, and the "Server Receive Window", or SRW. MRW, and the "Router Receive Window", or RRW.
If credits are used, they MUST be granted by the receiver on a If credits are used, they MUST be granted by the receiver on a given
given window - that is, on the "Client Receive Window" (CRW), window - that is, on the "Modem Receive Window" (MRW), the modem is
the DLEP client is responsible for granting credits to the server, responsible for granting credits to the router, allowing it (the
allowing it (the server) to send data to the client. Likewise, router) to send data to the modem. Likewise, the router is
the DLEP server is responsible for granting credits on the SRW, responsible for granting credits on the RRW, which allows the modem
which allows the client to send data to the server. to send data to the router.
DLEP expresses all credit data in number of octets. The total number 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 of credits on a window, and the increment to add to a grant, are
always expressed as a 64-bit unsigned quantity. always expressed as a 64-bit unsigned quantity.
If used, credits are managed on a neighbor session basis; that is, If used, credits are managed on a neighbor-specific basis; that is,
separate credit counts are maintained for each neighbor session separate credit counts are maintained for each neighbor requiring the
requiring the service. Credits do not apply to DLEP peer sessions. service. Credits do not apply to the DLEP session that exists between
routers and modems.
4. Metrics 4. Metrics
DLEP includes the ability for the client and server to communicate DLEP includes the ability for the router and modem to communicate
metrics that reflect the characteristics (e.g. bandwidth, latency) metrics that reflect the characteristics (e.g. bandwidth, latency) of
of the variable-quality link in use. As mentioned in the the variable-quality link in use. As mentioned in the introduction
introduction section of this document, metrics have to be used section of this document, metrics have to be used within a context -
within a context - for example, metrics to a unicast address in for example, metrics to a unicast address in the network. DLEP allows
the network. DLEP allows for metrics to be sent within two for metrics to be sent within two contexts - metrics for a specific
contexts - neighbor session context (those for a given destination neighbor (those for a given destination within the network), and
within the network), and peer session context (those that apply "modem-wide" (those that apply to all destinations accessed via the
to all destinations accessed via the DLEP client). Metrics modem). Metrics supplied on DLEP Peer signals are, by definition,
supplied on DLEP Peer messages are, by definition, in the context modem-wide; metrics supplied on Neighbor signals are, by definition,
of a peer session; metrics supplied on Neighbor messages are, by used for the specific neighbor only.
definition, used in the context of a neighbor session.
Supplying metrics in a peer session context gives clients the It is left to implementations to choose sensible default values based
ability to supply default metrics on a 'device-wide' basis. It is on their specific characteristics. Additionally, this mechanism
left to implementations to choose sensible default values based on (either at a modem-wide or specific neighbor context) MAY be used to
their specific characteristics. Additionally, the metrics (either report non-changing, or static, metrics. Modems having static link
at a peer or neighbor session context) MAY be used to report non- metric characteristics MAY report metrics only once for a given
changing, or static, metrics. Clients having static link metric neighbor (or once on a modem-wide basis, if all connections via the
characteristics SHOULD report metrics only once for a given modem are of this static nature).
neighbor session (or peer session, if all connections via the client
are of this static nature).
The approach of allowing for different contexts for metric data The approach of allowing for different contexts for metric data
increases both the flexibility and the complexity of using metric increases both the flexibility and the complexity of using metric
data. This document details the mechanism whereby the data is data. This document details the mechanism whereby the data is
transmitted, however, the specific algorithms for utilizing the transmitted, however, the specific algorithms (precedence, etc) for
dual-context metrics is out of scope and not addressed by this utilizing the dual-context metrics is out of scope and not addressed
document. by this document.
5. Extensions to DLEP 5. Extensions to DLEP
While this draft represents the best efforts of the co-authors, and While this draft represents the best efforts of the co-authors, and
the working group, to be functionally complete, it is recognized the working group, to be functionally complete, it is recognized that
that extensions to DLEP will in all likelihood be necessary as more extensions to DLEP will in all likelihood be necessary as more link
link types are utilized. To allow for future innovation, the draft types are utilized. To allow for future innovation, the draft
allocates numbering space for experimental orders and sub-TLVs. DLEP allocates numbering space for experimental implementations of both
implementations MUST be capable of parsing and acting on the orders signals and data items.
and sub-TLVs as documented in this specification. DLEP orders/sub-TLVs
in the experimental numbering range SHOULD be silently dropped by an
implementation if they are not understood. The intent of the
experimental numbering space is to allow for further development of
DLEP protocol features and function. If subsequent development yields
new features with sufficient applicability, those features should be
either included in an update of this specification, or documented in
a standalone specification.
6. Normal Session Flow
A session between a client and a server is established by exchanging
the "Peer Discovery" and "Peer Offer" messages described below.
The flows described in this document create a state-full protocol
between client and server. Both client and server initialize in a
"discovery" state, and the client issues a "Peer Discovery" message.
When the server receives a Peer Discovery, it responds with a "Peer
Offer" message, and enters an "in session" state with the client.
Receipt of the Peer Offer at the client causes it (the client) to
transition into the "in session" state.
Once that exchange has successfully occurred, messages transferred
in the context of the peer session will consist of
o Periodic 'Heartbeat' messages, intended to keep the peer session
alive, and to verify bidirectional connectivity, and/or
o Peer Update messages, indicating some change in status that one
of the peers needs to communicate to the other.
In addition to the messages above, the peers will transmit DLEP
messages concerning destinations in the network. These messages
trigger creation/maintenance/termination of 'neighbor sessions'. For
example, a peer will inform its DLEP partner of the presence of a
new destination via the "Neighbor Up" message. Receipt of a Neighbor
Up causes the receiving peer to allocate the necessary resources,
creating a neighbor session, and transition to an "in session" state
on the newly created neighbor session. The in-session state persists
until notification of neighbor loss is received, or by optional
timeout due to inactivity.
The loss of a destination is communicated via the "Neighbor Down" DLEP implementations MUST be capable of parsing and acting on the
message, and changes in status to the destination (e.g. varying mandatory signals and data items as documented in this specification.
link quality, or addressing changes) are communicated via a DLEP signals/data items that are optional, or are in the experimental
"Neighbor Update" message. numbering range SHOULD be silently dropped by an implementation if
they are not understood.
Again, metrics can be expressed within the context of a neighbor The intent of the optional signals and data items, as well as the
session via the Neighbor Update message, or within the context of experimental numbering space, is to allow for further development of
a peer session (reflecting the link as a whole) via the Peer Update DLEP protocol features and function. Having experimental space
message. In cases where metrics are provided on the peer session, the reserved for both signals and data items gives maximum flexibility
receiving peer MUST propagate the metrics to all neighbor sessions for extending the protocol as conditions warrant. For example,
accessed via the peer. A DLEP peer MAY send metrics both in a peer experimental data items could be used by implementations to send
session context (via the Peer Update message) and a neighbor session additional metrics. A combination of experimental signals, and
context (via Neighbor Update) at any time. The heuristics for associated data items, could be used to implement new flow control
applying received peer session and neighbor session metrics is left schemes. If subsequent research and development define new features
to implementations. and function, then it should be standardized either as an update to
this document, or as an additional stand-alone specification.
In addition to receiving metrics about the link, DLEP provides for 6. Normal Session Flow
the ability for a server to request a different amount of bandwidth,
or latency, from the client via the Link Characteristics Message.
This allows the server 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 At the start of a run, DLEP implementations (both router and modem)
initialize the communications path. In a UDP 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" message. The Peer Discovery MAY be sent
either via the multicast address allocated for DLEP (TBD), or via a
unicast address, or drop into a "passive receive" mode, waiting on
receipt of a Peer Discovery.
The Generic DLEP Packet Definition follows the format for packets Both modem and router initialize in a "discovery" state. Either the
defined in [RFC5444]. modem, the router, or both, will then issue a "Peer Discovery"
signal. The Peer Discovery signal MAY be issued to a unicast address
(if a-priori knowledge of the address exists), or to the multicast
address TBD.
The Generic DLEP Packet Definition contains the following fields: The receiver of a Peer Discovery message responds with a "Peer Offer"
signal to indicate readiness to participate in the DLEP session. The
receiver of a Peer Offer message responds with a "Peer Offer ACK"
message, completing discovery. While the 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) transition to the "in session" state,
creating a logical, stateful session between the modem and the
router. Subsequent DLEP signals are then processed within the context
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.
0 1 2 3 The "in session" state created by the discovery signals is maintained
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 until one of the following conditions occur:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Flags | Packet Sequence Number | Packet TLV |
| | | | Block... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message (Contains DLEP message)... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Version - Version of RFC 5444 specification on o The session is explicitly terminated (using Peer Termination), or
which the packet/messages/TLVs are o The session times out, based on supplied timeout values.
constructed.
Flags - 4 bit field. All bits MUST be ignored In order to maintain the session between router and modem, OPTIONAL
by DLEP implementations. periodic "Heartbeat" messages MAY be exchanged. These messages are
intended to keep the session alive, and to verify bidirectional
connectivity between the two participants. DLEP also provides for an
OPTIONAL Peer Update message, intended to communicate some change in
status (e.g., a change of layer 3 address parameters, or a modem-wide
link change).
Packet Sequence Number - If present, the packet sequence number In addition to the messages above, the participants will transmit
is parsed and ignored. DLEP does NOT DLEP messages concerning destinations in the network. These messages
use or generate packet sequence numbers. trigger creation/maintenance/deletion of "neighbors" in the
information base of the recipient. For example, a modem will inform
its attached router of the presence of a new destination via the
"Neighbor Up" signal. Receipt of a Neighbor Up causes the router to
allocate the necessary resources, creating an entry in the
information base with the specifics (e.g., MAC Address, Latency, Data
Rate, etc) of the neighbor. The loss of a destination is communicated
via the "Neighbor Down" signal, and changes in status to the
destination (e.g. varying link quality, or addressing changes) are
communicated via the "Neighbor Update" signal. The information on a
given neighbor will persist in the router's information base until
(1) a "Neighbor Down" is received, indicating that the modem has lost
contact with the remote node, or (2) the router/modem session
terminates, indicating that the router has lost contact with its own
local modem.
Packet TLV block - A TLV block which contains packet level Again, metrics can be expressed within the context of a specific
TLV information. DLEP implementations neighbor via the Neighbor Update message, or on a modem-wide basis
MUST NOT use this TLV block. via the Peer Update message. In cases where metrics are provided on
the router/modem session, the receiver MUST propagate the metrics to
all neighbors in its information base that are accessed via the
originator. A DLEP participant MAY send metrics both in a
router/modem session context (via the Peer Update message) and a
specific neighbor context (via Neighbor Update) at any time. The
heuristics for applying received metrics is left to implementations.
Message - The packet MAY contain zero or more In addition to receiving metrics about the link, DLEP provides an
messages, however, DLEP messages are OPTIONAL signal allowing a router to request a different amount of
encoded within an RFC 5444 Message bandwidth, or latency, from the modem. This signal is referred to as
TLV Block. the Link Characteristics Message, and gives the router the ability to
deal with requisite increases (or decreases) of allocated
bandwidth/latency in demand-based schemes in a more deterministic
manner.
8. Message Header Format 7. Mandatory Signals and Data Items
DLEP utilizes the following format for the RFC 5444 message header The following DLEP signals are considered core to the specification;
implementations MUST support these signals, and the associated data
items, in order to be considered compliant:
0 1 2 3 Signal Data Items
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 ====== ==========
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Attached Peer Discovery Identification
| Msg Type |Msg Flg|AddrLen| Message Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Seq Num | TLV Block... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Message Type - An 8-bit field which specifies the type Peer Offer Identification
of the message. For DLEP, this field
contains DLEP_MESSAGE (value TBD)
Message Flags - Set to 0x1 (bit 3, mhasseqnum bit is Peer Offer ACK Status
set). All other bits are unused and MUST
be set to '0'.
Message Address Length - A 4-bit unsigned integer field encoding the Peer Termination Identification
length of all addresses included in this
message. DLEP implementations do not use
this field; contents SHOULD be ignored.
Message Size - A 16-bit unsigned integer field which Peer Termination ACK Status
specifies the number of octets that make up
the message including the message header.
Message Sequence Number - A 16-bit unsigned integer field that Neighbor Up Identification
contains a sequence number, generated by MAC Address
the originator of the message. Sequence Maximum Data Rate
numbers range from 1 to 65535. Sequence Current Data Rate
numbers roll over at 65535 to 1; 0 is Latency
invalid. Resources
Relative Link Quality
TLV Block - TLV Block included in the message. Neighbor Update Identification
MAC Address
Maximum Data Rate
Current Data Rate
Latency
Resources
Relative Link Quality
9. Message TLV Block Format Neighbor Down Identification
MAC Address
The DLEP protocol is organized as a set of orders, each with a All other DLEP signals and data items are OPTIONAL. Implementations
collection of Sub-TLVs. The Sub-TLVs carry information needed MAY choose to provide them. Implementations that do not support
to process and/or establish context (e.g. the MAC address of a optional signals and data items SHOULD parse, and silently drop, all
far-end router), and the 'tlv-type' field in the message TLV unsupported signals and/or data items.
block carries the DLEP order itself. The DLEP orders are
enumerated in section 11.1 of this document, and the messages
created using these orders are documented in sections 12 through
27.
DLEP uses the following settings for an RFC 5444 Message TLV 8. Generic DLEP Packet Definition
block:
0 1 2 3 The Generic DLEP Packet consists of a sequence of TLVs. The first TLV
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 represents the signal being communicated (e.g., a "Neighbor Up", or a
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ "Peer Offer"). Subsequent TLVs contain the data items pertinent to
| TLVs Length | TLV Type | TLV Flags | the signal (e.g., Maximum Data Rate, or Latency, etc).
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length | Value... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLVs Length - A 16-bit unsigned integer field that contains the total The Generic DLEP Packet Definition contains the following fields:
number of octets in all of the immediately following
TLV elements (tlvs-length not included).
TLV Type - An 8-bit unsigned integer field specifying the type 0 1 2 3
of the TLV. DLEP uses this field to specify the DLEP 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
order. Valid DLEP orders are defined in section 11.1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
of this document. |Signal TLV Type | Length | DLEP data items... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLV Flags - An 8-bit flags bit field. Bit 3 (thasvalue) MUST be Signal - One of the DLEP Signal TLV type values
set; all other bits are not used and MUST be set defined in this document.
to '0'.
Length - Length of the 'Value' field of the TLV Length - The length of all of the DLEP data items
associated with this signal.
Value - A field of length <Length> which contains data DLEP data items - One or more data items, encoded in TLVs,
specific to a particular TLV type. In the DLEP as defined in this document.
case, this field will consist of a collection of
DLEP sub-TLVs appropriate for the DLEP action
specified in the TLV type field.
10. DLEP sub-TLVs 9. DLEP Data Items
DLEP protocol messages are transported in an RFC 5444 message TLV. As mentioned earlier, DLEP protocol messages are transported as a
All DLEP messages use the RFC 5444 DLEP_MESSAGE value (TBD). The collection of TLVs. The first TLV present in a DLEP message MUST be
protocol messages consist of a DLEP order, encoded in the 'tlv-type' one of the Signal TLVs, documented in section [INSERT REFERENCE
field in the message TLV block, with the 'value' field of the TLV HERE]. The signals are followed by one or more data items, indicating
block containing a collection (1 or more) DLEP sub-TLVs. the specific changes that need to be instantiated in the receiver's
information base.
The format of DLEP Sub-TLVs is consistent with RFC 5444 in that the Valid DLEP Data Items are:
Sub-TLVs contain a flag field in addition to the type, length, and
value fields. Valid DLEP Sub-TLVs are:
TLV TLV TLV TLV
Value Description Value Description
========================================= =========================================
TBD Identification sub-TLV TBD Identification
TBD DLEP Version sub-TLV TBD DLEP Version
TBD Peer Type sub-TLV TBD Peer Type
TBD MAC Address sub-TLV TBD IPv4 Address
TBD IPv4 Address sub-TLV TBD IPv6 Address
TBD IPv6 Address sub-TLV TBD Maximum Data Rate (MDR)
TBD Maximum Data Rate (MDR) sub-TLV TBD Current Data Rate (CDR)
TBD Current Data Rate (CDR) sub-TLV TBD Latency
TBD Latency sub-TLV TBD Resources
TBD Resources sub-TLV TBD Expected Forwarding Time (EFT)
TBD Expected Forwarding Time (ETX) sub-TLV TBD Relative Link Quality (RLQ)
TBD Relative Link Quality (RLQ) sub-TLV TBD Status
TBD Status sub-TLV TBD Heartbeat Interval/Threshold
TBD Heartbeat Interval sub-TLV TBD Neighbor down ACK timer
TBD Heartbeat Threshold sub-TLV TBD Link Characteristics ACK timer
TBD Neighbor down ACK timer sub-TLV TBD Credit Window Status
TBD Link Characteristics ACK timer sub-TLV TBD Credit Grant
TBD Credit Window Status sub-TLV TBD Credit Request
TBD Credit Grant sub-TLV
TBD Credit Request sub-TLV
DLEP sub-TLVs contain the following fields:
0 1 2 3 DLEP data item TLVs contain the following fields:
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 the type 0 1 2 3
of the sub-TLV. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TLV Type | Length | Value... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLV Flags - An 8-bit flags bit field. Bit 3 (thasvalue) MUST be TLV Type - An 8-bit unsigned integer field specifying the data
set, all other bits are not used and MUST be set to item being sent.
'0'.
Length - An 8-bit length of the value field of the sub-TLV Length - An 8-bit length of the value field of the data item
Value - A field of length <Length> which contains data Value - A field of length <Length> which contains data
specific to a particular sub-TLV. specific to a particular data item.
10.1 Identification Sub-TLV 9.1 Identification
This Sub-TLV MUST exist in the TLV Block for all DLEP messages, and This data item MUST exist in all DLEP messages, and MUST be the first
MUST be the first Sub-TLV of the message. Further, there MUST be ONLY data item of the message (e.g., it MUST immediately follow the signal
one Identification Sub-TLV in an RFC 5444 message TLV block. The TLV). Further, there MUST be ONLY one Identification data item in a
Identification sub-TLV contains client and server identification DLEP message. The data item contains identification information used
information used to establish the proper context for processing DLEP to establish the proper context (e.g., the router/modem session) for
protocol messages. processing DLEP protocol messages.
The Identification sub-TLV contains the following fields: The format of the Identification Data Item is:
0 1 2 3 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 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 | Server ID | |TLV Type = TBD | Length = 8 | Router ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Server ID | Client ID | | Router ID | Modem ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Client ID | | Modem ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLV Type - Value TBD TLV Type - Value TBD
TLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are
unused and MUST be set to '0'.
Length - 8 Length - 8
Server ID - Indicates the Server ID of the DLEP session. Router ID - Indicates the Router ID of the DLEP session.
Client ID - indicates the Client ID of the DLEP session. Modem ID - indicates the Modem ID of the DLEP session.
When the client initiates discovery (via the Peer Discovery message), During transmission of a DLEP Peer Discovery signal, the transmitter
it MUST set the Client ID to a 32-bit quantity that will be used to MUST set its ID to a 32-bit quantity that will be used to uniquely
uniquely identify this session from the client-side. The client MUST identify this session from the transmitter's perspective. The other
set the Server ID to '0'. When responding to the Peer Discovery ID value MUST be set the to '0'. When responding to the Peer
message, the server MUST echo the Client ID, and MUST supply its own Discovery signal (via the Peer Offer signal), the transmitter MUST
unique 32-bit quantity to identify the session from the server's echo any received ID value, and MUST supply its own unique 32-bit
perspective. After the Peer Discovery/Peer Offer exchange, both the quantity to identify the session from its perspective. After the Peer
Client ID and the Server ID MUST be set to the values obtained from Discovery/Peer Offer exchange, subsequent signals on this DLEP
the Peer DIscovery/Peer Offer sequence. session MUST contain the ID values obtained from the Peer
Discovery/Peer Offer sequence.
10.2 DLEP Version Sub-TLV 9.2 DLEP Version
The DLEP Version Sub-TLV is an OPTIONAL TLV in both the Peer The DLEP Version TLV is an OPTIONAL TLV in both the Peer Discovery
Discovery and Peer Offer messages. The Version Sub-TLV is used to and Peer Offer messages. The Version TLV is used to indicate the
indicate the client or server version of the protocol. The client version of the protocol running in the originator. A participant MAY
and server MAY use this information to decide if the peer is running use this information to decide if the potential session partner is
at a supported level. running at a supported level.
The DLEP Version Sub-TLV contains the following fields: The DLEP Version TLV contains the following fields:
0 1 2 3 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 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 | |TLV Type =TBD |Length=4 | Major Version |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Major Version | Minor Version | | Minor Version |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLV Type - TBD TLV Type - TBD
TLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are
not used and MUST be set to '0'.
Length - Length is 4 Length - Length is 4
Major Version - Major version of the client or router protocol. Major Version - Major version of the modem or router protocol.
Minor Version - Minor version of the client or router protocol. Minor Version - Minor version of the modem or router protocol.
Support of this draft is indicated by setting the Major Version Support of this draft is indicated by setting the Major Version
to '1', and the Minor Version to '2' (e.g. Version 1.2). to '1', and the Minor Version to '3' (e.g. Version 1.3).
10.3 Peer Type Sub-TLV 9.3 Peer Type
The Peer Type Sub-TLV is used by the server and client to give The Peer Type TLV is an OPTIONAL TLV in both the Peer Discovery and
additional information as to its type. It is an OPTIONAL sub-TLV in Peer Offer messages. The Peer Type TLV is used by the router and
both the Peer Discovery Message and the Peer Offer message. The peer modem to give additional information as to its type. The peer type is
type is a string and is envisioned to be used for informational a string and is envisioned to be used for informational purposes
purposes (e.g. as output in a display command). (e.g. as output in a display command).
The Peer Type sub-TLV contains the following fields: The Peer Type TLV contains the following fields:
0 1 2 3 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 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 Type Str | |TLV Type =TBD |Length= peer |Peer Type String |
| | |type string len|Max Len = 80 | | |type string len|Max Len = 80 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLV Type - TBD TLV Type - TBD
TLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits Length - Length of peer type string (80 octets maximum).
are not used and MUST be set to '0'.
Length - Length of peer type string (80 bytes maximum).
Peer Type String - Non-Null terminated peer type string, maximum Peer Type String - Non-Null terminated string, maximum length of 80
length of 80 bytes. For example, a satellite octets. For example, a satellite modem might set
modem might set this variable to 'Satellite this variable to 'Satellite terminal'.
terminal'.
10.4 MAC Address Sub-TLV 9.4 MAC Address
The MAC address Sub-TLV MUST appear in all neighbor-oriented The MAC address TLV MUST appear in all neighbor-oriented signals
messages (e.g. Neighbor Up, Neighbor Up ACK, Neighbor Down, Neighbor (e.g. Neighbor Up, Neighbor Up ACK, Neighbor Down, Neighbor Down ACK,
Down ACK, Neighbor Update, Link Characteristics Request, and Link Neighbor Update, Link Characteristics Request, and Link
Characteristics ACK). The MAC Address sub-TLV contains the address Characteristics ACK). The MAC Address TLV contains the address of the
of the far-end (neighbor) destination, and may be either a physical destination on the remote node. The MAC address MAY be either a
or a virtual destination. Examples of a virtual destination would physical or a virtual destination. Examples of a virtual destination
be a multicast MAC address, or the broadcast MAC (0xFFFFFFFFFFFF). 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
0 1 2 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 |TLV Type =TBD |Length = 6 | MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|TLV Type =TBD |TLV Flags=0x10 |Length = 6 |MAC Address | | MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MAC Address |
+-+-+-+-+-+-+-+-+
TLV Type - TBD TLV Type - TBD
TLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are not
used and MUST be set to '0'.
Length - 6 Length - 6
MAC Address - MAC Address of the destination (either physical or MAC Address - MAC Address of the destination (either physical or
virtual). virtual).
10.5 IPv4 Address Sub-TLV 9.5 IPv4 Address
The IPv4 Address Sub-TLV MAY be used in Neighbor Up, Neighbor The IPv4 Address TLV is an OPTIONAL TLV. If supported, it MAY appear
Update, and Peer Update Messages, if the client is aware of the in Neighbor Up, Neighbor Update, and Peer Update messages. When
Layer 3 address. When included in Neighbor messages, the IPv4 included in Neighbor messages, the IPv4 Address TLV contains the IPv4
Address sub-TLV contains the IPv4 address of the far-end neighbor. address of the neighbor, as well as a subnet mask value. In the Peer
In the Peer Update message, it contains the IPv4 address of the Update message, it contains the IPv4 address of the originator of the
sending peer. In either case, the sub-TLV also contains an message. In either case, the TLV also contains an indication of
indication of whether this is a new or existing address, or is a whether this is a new or existing address, or is a deletion of a
deletion of a previously known address. previously known address.
The IPv4 Address Sub-TLV contains the following fields: The IPv4 Address TLV contains the following fields:
0 1 2 3 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 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 = 5 | Add/Drop | |TLV Type =TBD |Length = 6 | Add/Drop | IPv4 Address |
| | | | Indicator | | | | Indicator |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 Address | | IPv4 Address | Subnet Mask |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLV Type - TBD TLV Type - TBD
TLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are not Length - 6
used and MUST be set to '0'.
Length - 5
Add/Drop - Value indicating whether this is a new or existing Add/Drop - Value indicating whether this is a new or existing
Indicator address (0x01), or a withdrawal of an address (0x02). IPv4 address
IPv4 Address - IPv4 Address of the far-end neighbor or peer. IPv4 Address - The IPv4 address of the neighbor or peer.
10.6 IPv6 Address Sub-TLV Subnet Mask - A subnet mask (0-32) to be applied to the IPv4
address.
The IPv6 Address Sub-TLV MAY be used in Neighbor Up, Neighbor 9.6 IPv6 Address
Update, and Peer Update Messages, if the client is aware of the
Layer 3 address. When included in Neighbor messages, the IPv6
Address sub-TLV contains the IPv6 address of the far-end neighbor.
In the Peer Update, it contains the IPv6 address of the
originating peer. In either case, the sub-TLV also contains an
indication of whether this is a new or existing address, or is a
deletion of a previously known address.
The IPv6 Address sub-TLV contains the following fields: The IPv6 Address TLV is an OPTIONAL TLV. If supported, it MAY be used
in the Neighbor Up, Neighbor Update, Peer Discovery, and Peer Update
Messages. When included in Neighbor messages, this data item contains
the IPv6 address of the neighbor. In the Peer Discovery and Peer
Update, it contains the IPv6 address of the originating peer. In
either case, the data item also contains an indication of whether
this is a new or existing address, or is a deletion of a previously
known address, as well as a subnet mask.
0 1 2 3 The IPv6 Address TLV contains the following fields:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 0 1 2 3
|TLV Type =TBD |TLV Flags=0x10 |Length = 17 | Add/Drop | 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
| | | | Indicator | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |TLV Type =TBD |Length = 18 | Add/Drop | IPv6 Address |
| IPv6 Address | | | | Indicator | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 Address | | IPv6 Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 Address | | IPv6 Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 Address | | IPv6 Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 Address | Subnet Mask |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLV Type - TBD TLV Type - TBD
TLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are not Length - 18
used and MUST be set to '0'.
Length - 17 Add/Drop - Value indicating whether this is a new or existing
address (0x01), or a withdrawal of an address (0x02).
Add/Drop - Value indicating whether this is a new or IPv6 Address - IPv6 Address of the neighbor or peer.
Indicator existing address (0x01), or a withdrawal of
an address (0x02).
IPv6 Address - IPv6 Address of the far-end neighbor or peer. Subnet Mask - A subnet mask value (0-128) to be applied to the Ipv6
address.
10.7 Maximum Data Rate Sub-TLV 9.7 Maximum Data Rate
The Maximum Data Rate (MDR) Sub-TLV is used in Neighbor Up, Neighbor The Maximum Data Rate (MDR) TLV is used in Neighbor Up, Neighbor
Update, Peer Discovery, Peer Update, and Link Characteristics ACK Update, Peer Discovery, Peer Update, and Link Characteristics ACK
Messages to indicate the maximum theoretical data rate, in bits per Messages to indicate the maximum theoretical data rate, in bits per
second, that can be achieved on the link. When metrics are reported second, that can be achieved on the link. When metrics are reported
via the messages listed above, the maximum data rate MUST be 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 - TBD 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|TLV Type =TBD |Length = 8 | MDR (bps) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MDR (bps) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MDR (bps) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLV Flags - 0x10, Bit 3 (thasvalue) is set, all other TLV Type - TBD
bits are not used and MUST be set to '0'.
Length - 8 Length - 8
Maximum Data Rate - A 64-bit unsigned number, representing the Maximum Data Rate - A 64-bit unsigned number, representing the
maximum theoretical data rate, in bits per maximum theoretical data rate, in bits per
second (bps), that can be achieved on the second (bps), that can be achieved on the link.
link.
10.8 Current Data Rate Sub-TLV 9.8 Current Data Rate
The Current Data Rate (CDR) Sub-TLV is used in Neighbor Up, Neighbor The Current Data Rate (CDR) TLV is used in Neighbor Up, Neighbor
Update, Peer Discovery, Peer Update, Link Characteristics Request, Update, Peer Discovery, Peer Update, Link Characteristics Request,
and Link Characteristics ACK messages to indicate the rate at which and Link Characteristics ACK messages to indicate the rate at which
the link is currently operating, or in the case of the Link the link is currently operating, or in the case of the Link
Characteristics Request, the desired data rate for the link. Characteristics Request, the desired data rate for the link. When
metrics are reported via the messages above, the current data rate
The Current Data Rate sub-TLV contains the following fields: 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 = 8 |CDR (bps) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CDR (bps) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CDR (bps) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLV Type - TBD The Current Data Rate TLV contains the following fields:
TLV Flags - 0x10, Bit 3 (thasvalue) is set, all other 0 1 2 3
bits are not used and MUST be set to '0'. 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) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Length - 8 TLV Type - TBD
Current Data Rate - A 64-bit unsigned number, representing the Length - 8
current rate, in bits per second (bps),
on the link. When reporting metrics (e.g,
in Neighbor Up, Neighbor Down, Peer
Discovery, Peer Update, or Link
Characteristics ACK), if there is no
distinction between current and maximum
data rates, current data rate SHOULD be
set equal to the maximum data rate.
10.9 Expected Forwarding Time Sub-TLV Current Data Rate - A 64-bit unsigned number, representing the
current data rate, in bits per second, that is
currently be achieved on the link, or the
desired data rate in bits per second in the Link
Characteristics Request message. If there is no
distinction between current and maximum data
rates, current data rate MUST be set equal to
the maximum data rate.
The Expected Forwarding Time (EFT) Sub-TLV is used in Neighbor Up, 9.9 Expected Forwarding Time
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 Time sub-TLV contains the following fields: The Expected Forwarding Time (EFT) TLV 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.
0 1 2 3 The Expected Forwarding Time TLV contains the following fields:
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLV Type - TBD 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|TLV Type =TBD |Length = 4 | EFT (ms) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| EFT (ms) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLV Flags - 0x10, Bit 3 (thasvalue) is set, all other TLV Type - TBD
bits are not used and MUST be set to '0'.
Length - 4 Length - 4
Current Data Rate - A 32-bit unsigned number, representing the EFT - A 32-bit unsigned number, representing the expected
expected forwarding time, in milliseconds, forwarding time, in milliseconds, on the link.
on the link.
10.10 Latency Sub-TLV 9.10 Latency
The Latency Sub-TLV is used in Neighbor Up, Neighbor Update, Peer The Latency TLV is used in Neighbor Up, Neighbor Update, Peer
Discovery, Peer Update, Link Characteristics Request, and Link Discovery, Peer Update, Link Characteristics Request, and Link
Characteristics ACK messages to indicate the amount of latency on Characteristics ACK messages to indicate the amount of latency on the
the link, or in the case of the Link Characteristics Request, to link, or in the case of the Link Characteristics Request, to indicate
indicate the maximum latency required (e.g. a should-not-exeed value) the maximum latency required on the link. When metrics are reported
on the link. via the messages above, Latency MUST be reported.
The Latency 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 = 2 |Latency (ms) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Latency (ms) |
+-+-+-+-+-+-+-+-+
TLV Type - TBD 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|TLV Type =TBD |Length = 2 | Latency (ms) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLV Flags - 0x10, Bit 3 (thasvalue) is set, all other TLV Type - TBD
bits are not used and MUST be set to '0'.
Length - 2 Length - 2
Latency - The transmission delay that a packet Latency - A 16-bit unsigned value, representing the transmission
encounters as it is transmitted over the delay that a packet encounters as it is transmitted
link. In Neighbor Up, Neighbor Update, over the link. In Neighbor Up, Neighbor Update, and
and Link Characteristics ACK, this value Link Characteristics ACK, this value is reported as
is reported in absolute delay, in delay, in milliseconds. The calculation of latency is
milliseconds. The calculation of latency implementation dependent. For example, the latency may
is implementation dependent. For example, be a running average calculated from the internal
the latency may be a running average queuing. If a device cannot calculate latency, it MUST
calculated from the internal queuing. If be reported as 0. In the Link Characteristics Request
a device cannot calculate latency, it Message, this value represents the maximum delay, in
SHOULD be reported as 0. In the Link milliseconds, expected on the link.
Characteristics Request Message, this value
represents the maximum delay, in
milliseconds, expected on the link.
10.11 Resources Sub-TLV 9.11 Resources
The Resources Sub-TLV is used in Neighbor Up, Neighbor Update, Peer The Resources TLV is used in Neighbor Up, Neighbor Update, Peer
Discovery, Peer Update, and Link Characteristics ACK messages to Discovery, Peer Update, and Link Characteristics ACK messages to
indicate a percentage (0-100) amount of resources (e.g. battery indicate a percentage (0-100) amount of resources (e.g. battery
power) remaining on the originating peer. 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: The Resources 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 | Resources |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLV Type - TBD 0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|TLV Type =TBD |Length = 1 | Resources |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLV Flags - 0x10, Bit 3 (thasvalue) is set, all other TLV Type - TBD
bits are not used and MUST be set to '0'.
Length - 1 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 100 SHOULD be
reported.
10.12 Relative Link Quality Sub-TLV Resources - A percentage, 0-100, representing the amount of
remaining resources, such as battery power. If
resources cannot be calculated, a value of 100 MUST be
reported.
The Relative Link Quality (RLQ) Sub-TLV is used in Neighbor Up, 9.12 Relative Link Quality
Neighbor Update, Peer Discovery, Peer Update, and Link
Characteristics ACK messages to indicate the quality of the link
as calculated by the originating peer.
The Relative Link Quality sub-TLV contains the following fields: The Relative Link Quality (RLQ) TLV 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.
0 1 2 3 The Relative Link Quality TLV contains the following fields:
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 |Relative Link |
| | | |Quality (RLQ) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLV Type - TBD 0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|TLV Type =TBD |Length = 1 |Relative Link |
| | |Quality (RLQ) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLV Flags - 0x10, Bit 3 (thasvalue) is set, all other TLV Type - TBD
bits are not used and MUST be set to '0'.
Length - 1 Length - 1
Relative Link Quality - A non-dimensional number, 0-100, Relative Link Quality - A non-dimensional number, 0-100,
representing relative link quality. A value representing relative link quality. A value of
of 100 represents a link of the highest 100 represents a link of the highest quality.
quality. If the RLQ cannot be calculated, a If the RLQ cannot be calculated, a value of
value of 100 SHOULD be reported. 100 MUST be reported.
10.13 Status Sub-TLV 9.13 Status
The Status Sub-TLV is sent from either the client or server to The Status TLV is an OPTIONAL TLV. It is sent as part of an
indicate the success or failure of a given request acknowledgement message, from either the modem or the router, to
indicate the success or failure of a given request.
The Status Sub-TLV contains the following fields: The Status TLV contains the following fields:
0 1 2 3 0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|TLV Type =TBD |TLV Flags=0x10 |Length = 1 | Code | |TLV Type =TBD |Length = 1 | Code |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLV Type - TBD TLV Type - TBD
TLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits
are not used and MUST be set to '0'.
Length - 1 Length - 1
Termination Code - 0 = Success Termination Code - 0 = Success, Non-zero = Failure. Specific values
Non-zero = Failure. Specific values of a non- of a non-zero termination code depend on the
zero termination code depend on the operation operation requested (e.g. Neighbor Up,
requested (e.g. Neighbor Up, Neighbor Down, etc). Neighbor Down, etc).
10.14 Heartbeat Interval Sub-TLV 9.14 Heartbeat Interval/Threshold
The Heartbeat Interval Sub-TLV MAY be sent from the client during The Heartbeat Interval/Threshold TLV is an OPTIONAL TLV. If
Peer Discovery to indicate the desired Heartbeat timeout window. supported, it MAY be sent during Peer Discovery to indicate the
If included in the Peer Discovery, the server MUST either accept the desired Heartbeat timeout window. If the modem includes the Heartbeat
timeout interval, or reject the Peer Discovery. Failing to include Interval TLV in Peer Discovery, the router MUST either accept the
the Heartbeat Interval Sub-TLV in Peer Discovery indicates a timeout interval supplied by the modem, or reject the Peer Discovery.
desire to establish the peer-to-peer DLEP session without an Peer Discovery messages that do not include the Heartbeat Interval
activity timeout (e.g. an infinite timeout value). TLV in Peer Discovery indicates a desire to establish the
router/modem session without an activity timeout (e.g. an infinite
timeout value). If an activity timeout is supported, implementations
MAY choose to implement heuristics such that signals sent/received
reset the timer window.
The Heartbeat Interval Sub-TLV contains the following fields: The Interval is used to specify a period (in seconds) for Heartbeat
Messages (See Section 23). The Threshold value is used to indicate
the desired number of windows, each of time (Heartbeat Interval)
seconds, to wait before either participant declares the router/modem
session lost. In this case, the overall amount of time before a
router/modem is declared lost is expressed as (Interval * Threshold).
Specifying an Interval value of 0 indicates the desire to disable
Heartbeat messages entirely (e.g., the Interval is set to an infinite
value). Setting the Threshold value to 0 is undefined, and TLVs with
a Threshold value of 0 MUST be rejected by the recipient.
0 1 2 3 The Heartbeat Interval/Threshold TLV contains the following fields:
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLV Type - TBD 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|TLV Type =TBD |Length = 1 | Interval | Threshold |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are TLV Type - TBD
not used and MUST be set to '0'.
Length - 1 Length - 1
Interval - 0 = Do NOT use heartbeats on this peer-to-peer Interval - 0 = Do NOT use heartbeats on this peer-to-peer
session. Non-zero = Interval, in seconds, for session. Non-zero = Interval, in seconds, for
heartbeat messages. heartbeat messages.
10.15 Heartbeat Threshold Sub-TLV Threshold - Number of windows, of Heartbeat Interval seconds,
to wait before declaring a peer-to-peer session to
The Heartbeat Threshold Sub-TLV MAY be sent from the client during be lost.
Peer Discovery to indicate the desired number of windows, of time
(Heartbeat Interval) seconds, to wait before either peer declares
the peer session lost. In this case, the overall amount of time
before a peer session is declared lost is expressed as
(Interval * Threshold), where 'Interval' is the value in the
Heartbeat Interval sub-TLV, documented above. If this sub-TLV is
included by the client in the Peer Discovery, the client MUST also
specify the Heartbeat Interval sub-TLV with a non-zero interval. If
this sub-TLV is received during Peer Discovery, the server MUST
either accept the threshold, or reject the Peer Discovery. If the
Heartbeat Interval Sub-TLV is included, but this Sub-TLV is
omitted, then a threshold of '1' is assumed.
The Heartbeat Threshold 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 = 1 | Threshold |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLV Type - TBD
TLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are
not used and MUST be set to '0'.
Length - 1
Threshold - 0 = Do NOT use heartbeats on this peer-to-peer
session. Non-zero = Number of windows, of
Heartbeat Interval seconds, to wait before
declaring a peer-to-peer session to be lost.
10.16 Link Characteristics ACK Timer Sub-TLV
The Link Characteristic ACK Timer Sub-TLV MAY be sent from the 9.15 Link Characteristics ACK Timer
client during Peer Discovery to indicate the desired number of
seconds the server should wait for a response to a Link
Characteristics Request. If this sub-TLV is received during Peer
Discovery, the server MUST either accept the timeout value, or
reject the Peer Discovery. If this Sub-TLV is omitted,
implementations SHOULD choose a default value.
The Link Characteristics ACK Timer Sub-TLV contains the The Link Characteristics ACK Timer TLV is an OPTIONAL TLV. If
following fields: supported, it MAY be sent during Peer Discovery to indicate the
desired number of seconds to wait for a response to a Link
Characteristics Request. If a router receives this TLV from a modem
during Peer Discovery, the router MUST either accept the timeout
value, or reject the Peer Discovery. If this TLV is omitted,
implementations supporting the Link Characteristics Request SHOULD
choose a default value.
0 1 2 3 The Link Characteristics ACK Timer TLV contains the following fields:
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLV Type - TBD 0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|TLV Type =TBD |Length = 1 | Interval |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits are TLV Type - TBD
not used and MUST be set to '0'.
Length - 1 Length - 1
Interval - 0 = Do NOT use timeouts for Link Characteristics Interval - 0 = Do NOT use timeouts for Link Characteristics
requests on this peer-to-peer session. requests on this router/modem session. Non-zero =
Non-zero = Interval, in seconds, to wait before Interval, in seconds, to wait before considering a
considering a Link Characteristics Request has Link Characteristics Request has been lost.
been lost.
10.17 Credit Window Status Sub-TLV 9.16 Credit Window Status
The Credit Window Status Sub-TLV MUST be sent by the DLEP peer The Credit Window Status TLV is an OPTIONAL TLV. If credits are
originating a Neighbor Up message when use of credits is desired supported by the DLEP participants (both the router and the modem),
for a given session. In the Neighbor Up message, when credits the Credit Window Status TLV MUST be sent by the participant
are desired, the originating peer MUST set the value of the receiving a Credit Grant Request for a given neighbor.
window it controls (e.g. the Client Receive Window, or Server
Receive Window) to an initial, non-zero value. The peer receiving
a Neighbor Up message with a Credit Window Status Sub-TLV MUST
either reject the use of credits, via a Neighbor Up ACK response
with the correct Status Sub-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-TLV contains the following fields: The Credit Window Status TLV contains the following fields:
0 1 2 3 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 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| |TLV Type =TBD |Length = 16 | Modem Receive Window Value |
| | | | Window value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Modem Receive Window Value |
| Client Receive Window Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Modem Receive Window Value | Router Receive Window Value |
| Client Receive Window Value | Server Receive| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Window Value | | Router Receive Window Value |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Server Receive Window Value | | Router Receive Window Value |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Server Receive Window Value |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLV Type - TBD TLV Type - TBD
TLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits Length - 16
are not used and MUST be set to '0'.
Length - 16 Modem Receive Window Value - A 64-bit unsigned number, indicating
the current (or initial) number of
credits available on the Modem Receive
Window.
Client Receive - A 64-bit unsigned number, indicating the Router Receive Window Value - A 64-bit unsigned number, indicating
Window value current (or initial) number of credits the current (or initial) number of
available on the Client Receive Window. credits available on the Router Receive
Window.
Server Receive - A 64-bit unsigned number, indicating the 9.17 Credit Grant Request
Window Value current (or initial) number of credits
available on the Server Receive Window.
10.18 Credit Grant Sub-TLV The Credit Grant Request TLV is an OPTIONAL TLV. If credits are
supported, the Credit Grant Request TLV is sent from a DLEP
participant to grant an increment to credits on a window. The Credit
Grant TLV is sent as a data item in either the Neighbor Up or
Neighbor Update messages. The value in a Credit Grant TLV represents
an increment to be added to any existing credits available on the
window. Upon successful receipt and processing of a Credit Grant TLV,
the receiver MUST respond with a message containing a Credit Window
Status TLV to report the updated aggregate values for synchronization
purposes.
The Credit Grant Request Sub-TLV MAY be sent from either DLEP In the Neighbor Up message, when credits are desired, the originating
peer to grant an increment to credits on a window. The Credit peer MUST set the initial credit value of the window it controls
Grant Sub-TLV is sent as part of a Neighbor Update message. The (e.g. the Modem Receive Window, or Router Receive Window) to an
value in a Credit Grant Sub-TLV represents an increment to be initial, non-zero value. If the receiver of a Neighbor Up message
added to any existing credits available on the window. Upon with a Credit Grant Request TLV supports credits, the receiver MUST
successful receipt and processing of a Credit Grant Sub-TLV, the either reject the use of credits, via a Neighbor Up ACK response with
receiving peer SHOULD respond with a DLEP Neighbor Update message the correct Status TLV, or set the initial value from the data
containing a Credit Window Status Sub-TLV to report the updated contained in the Credit Window Status TLV. If the initialization
aggregate values for synchronization purposes. 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 Grant Sub-TLV contains the following fields: The Credit Grant TLV contains the following fields:
0 1 2 3 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 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 | |TLV Type =TBD |Length = 8 | Credit Increment |
| | | | Increment | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Credit Increment |
| Credit Increment | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Credit Increment |
| Credit Increment | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLV Type - TBD TLV Type - TBD
TLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits Length - 8
are not used and MUST be set to '0'.
Length - 0
Reserved - A 64-bit unsigned number representing the Reserved - A 64-bit unsigned number representing the
additional credits to be assigned to the additional credits to be assigned to the credit
credit window. Since credits can only be window. Since credits can only be granted by the
granted by the receiver on a window, the receiver on a window, the applicable credit window
applicable credit window (either the CRW or (either the MRW or the RRW) is derived from the
the SRW) is derived from the sender of the sender of the grant. The Credit Increment MUST NOT
grant. The Credit Increment MUST NOT cause cause the window to overflow; if this condition
the window to overflow; if this condition occurs, implementations MUST set the credit window
occurs, implementations MUST set the credit to the maximum value contained in a 64-bit
window to the maximum value contained in a quantity.
64-bit quantity.
10.19 Credit Request Sub-TLV 9.18 Credit Request
The Credit Request Sub-TLV MAY be sent from either DLEP peer, via The Credit Request TLV is an OPTIONAL TLV. If credits are supported,
a Neighbor Update order, to indicate the desire for the partner to the Credit Request TLV MAY be sent from either DLEP participant, via
grant additional credits in order for data transfer to proceed on a Neighbor Update signal, to indicate the desire for the partner to
the session. If the corresponding Neighbor Up message for this grant additional credits in order for data transfer to proceed on the
session did NOT contain a Credit Window Status Sub-TLV, indicating session. If the corresponding Neighbor Up message for this session
that credits are to be used on the session, then the Credit Request did NOT contain a Credit Window Status TLV, indicating that credits
Sub-TLV MUST be rejected, by sending a Neighbor Update ACK containing are to be used on the session, then the Credit Request TLV MUST be
a Status Sub-TLV, by the receiving peer. If credits are in use on rejected by the receiver via a Neighbor Update ACK message.
the session, then the receiving peer MAY respond with a DLEP
Neighbor Update message containing a Credit Grant Sub-TLV with
an increment of credits for the session.
The Credit Request Sub-TLV contains the following fields: The Credit Request TLV contains the following fields:
0 1 2 3 0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|TLV Type =TBD |TLV Flags=0x10 |Length = 0 | Reserved, MUST| |TLV Type =TBD |Length = 0 | Reserved, MUST|
| | | | be set to 0 | | | | be set to 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TLV Type - TBD TLV Type - TBD
TLV Flags - 0x10, Bit 3 (thasvalue) is set, all other bits Length - 0
are not used and MUST be set to '0'.
Length - 0 Reserved - This field is currently unused and MUST be set to 0.
Reserved - 0 = This field is currently unused and MUST be 10. DLEP Protocol Messages
set to 0.
11. DLEP Protocol Messages DLEP messages are encoded as a string of Type-Length-Value (TLV)
constructs. The first TLV in a DLEP message MUST be a valid DLEP
signal, as defined in section 11.1 of this document. The second TLV
MUST be the Identification data item, defined in section 10.1
Following those two TLVs are 0 or more TLVs, representing the data
items that are appropriate for the signal. The layout of a DLEP
message is thus:
DLEP places no additional requirements on the RFC 5444 Packet 0 1 2 3
formats, or the packet header. DLEP does require that the optional 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-seq-num' in the message header exist, and defines a set of +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
values for the 'tlv-type' field in the RFC 5444 TLV block. Therefore, | DLEP Signal |DLEP Message |Identification |Identification |
a DLEP message, starting from the RFC 5444 Message header, would | Type value |length (9 + |TLV Type |TLV length |
appear as follows: | (value TBD) |optional TLVs) |(TBD) |(8) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Router ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Modem ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Start of optional DLEP |
| TLVs... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 All DLEP messages (signals) begin with this structure. Therefore, in
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 the following descriptions of specific messages, this header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ structure is assumed, and will not be replicated.
| Msg Type = |Msg Flg|AddrLen| Message Size |
| DLEP_MESSAGE | 0x1 | 0x0 | |
| (value TBD) | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Seq Num | TLV block length (length of |
| | DLEP order + Sub-TLVs) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DLEP Message |TLV Flags=0x10 | Length | Start of DLEP |
| Block value | | | Sub-TLVs... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
11.1 Message Block TLV Values 10.1 Signal TLV Values
As mentioned above, all DLEP messages utilize a single RFC 5444 As mentioned above, all DLEP messages begin with the Type value of
message type, the DLEP_MESSAGE (TBD). DLEP further identifies the appropriate DLEP signal. Valid DLEP signals are:
protocol messages by using the 'tlv-type' field in the RFC 5444
message TLV block. DLEP defines the following Message-Type-
specific values for the tlv-type field:
TLV TLV TLV TLV
Value Description Value Description
========================================= =========================================
TBD Attached Peer Discovery TBD Peer Discovery
TBD Detached Peer Discovery
TBD Peer Offer TBD Peer Offer
TBD Peer Offer ACK
TBD Peer Update TBD Peer Update
TBD Peer Update ACK TBD Peer Update ACK
TBD Peer Termination TBD Peer Termination
TBD Peer Termination ACK TBD Peer Termination ACK
TBD Neighbor Up TBD Neighbor Up
TBD Neighbor Up ACK TBD Neighbor Up ACK
TBD Neighbor Down TBD Neighbor Down
TBD Neighbor Down ACK TBD Neighbor Down ACK
TBD Neighbor Update TBD Neighbor Update
TBD Neighbor Address Update
TBD Neighbor Address Update ACK
TBD Heartbeat TBD Heartbeat
TBD Link Characteristics Request TBD Link Characteristics Request
TBD Link Characteristics ACK TBD Link Characteristics ACK
In all of the diagrams following, the message layouts begin with the 11. Peer Discovery Message
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 Attached Peer Discovery Message
The Attached Peer Discovery Message is sent by an attached client
to a server to begin a new DLEP association. The Peer Offer message
is required to complete the discovery process. The client MAY
implement its own retry heuristics in the event it (the client)
determines the Attached Peer Discovery Message has timed out. An
Attached Peer Discovery Message received from a peer that is already
in session MUST be processed as if a Peer Termination Message had
been received. An implementation MAY then process the received
Attached Peer Discovery Message.
Note that metric Sub-TLVs MAY be supplied with the Peer Discovery
order. If metric Sub-TLVs are supplied, they MUST be used as a
default value for all neighbor sessions established via this peer.
The Attached Peer Discovery 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 | 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) | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Message Type - DLEP_MESSAGE (value TBD)
Message Flags - Set to 0x1 (bit 3, mhasseqnum
bit is set). No other bits are
used and MUST be set 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 by the message
originator.
TLV Block - TLVs Length: 14 + size of optional
sub-TLVs.
Sub-TLVs:
Identification (MANDATORY)
Version (OPTIONAL)
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 Detached Peer Discovery Message
The Detached Peer Discovery Message is sent by a detached client
proxy to a server to begin a new DLEP session. The Peer Offer
message is required to complete the discovery process. The client
MAY implement its own retry heuristics in the event it (the client)
determines the Detached Peer Discovery Message has timed out. When
a DLEP implementation responds to a Detached Discovery Message with
a Peer Offer, the implementation MUST enter an "in session" state
with the peer. Any subsequent discovery message received from the
peer MUST be processed as if a Peer Termination Message had been
received (e.g. the existing peer session MUST be terminated). An
implementation MAY then process the received discovery message.
If metric sub-TLVs (e.g. Maximum Data Rate) are supplied with the
Detached Peer Discovery message, these metrics MUST be used as the
initial values for all far-end sessions (neighbors) established via
the peer.
The Detached Peer Discovery 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 | 22 + size of opt |
| (value TBD) | | | sub-TLV |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Seq Num |TLVs Length =14 + opt sub-TLVs |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DLEP Detached |TLV Flags=0x10 | Length = 11 + | Sub-TLVs as |
| Peer Discovery| | opt sub-TLVs | noted below |
| (Value TDB) | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Message Type - 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'.
Message Address Length - 0x0
Message Size - 22 + size of optional The Peer Discovery Message is sent to begin a new DLEP association.
sub-TLVs The Peer Offer message is required to complete the discovery process.
Implementations MAY implement their own retry heuristics in cases
where it is determined the Peer Discovery Message has timed out. A
Peer Discovery Message received from a participant that is already in
session MUST be processed as if a Peer Termination Message had been
received. An implementation MAY then process the received Peer
Discovery Message.
Message Sequence Number - A 16-bit unsigned integer Note that metric data items MAY be supplied with the Peer Discovery,
field containing a sequence in order to populate default metric values, or to indicate a static,
number, generated by the modem-wide environment. If metrics are supplied with the Peer
message originator. Discovery message, these metrics MUST be used as the initial values
for all neighbors established via the modem.
TLV Block - TLVs Length: 14 + size of Given the packet format described in section 11, the initial TLV Type
optional sub-TLVs. value is set to DLEP_PEER_DISCOVERY (value TBD). Mandatory TLVs are
then placed into the packet:
Sub-TLVs Mandatory Data Item TLVs:
Identification (MANDATORY) - Identification
Version (OPTIONAL)
Peer Type (OPTIONAL)
Heartbeat Interval (OPTIONAL)
Heartbeat Threshold (OPTIONAL)
Link Char. 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 After the Mandatory data item, implementations MAY place any OPTIONAL
sub-TLVs. If included, the router SHOULD use these values as defaults TLVs they support:
that will apply to all sessions established via this client.
13. Peer Offer Message Optional Data Item TLVs:
- DLEP Version
- DLEP Peer Type
- Heartbeat Interval
- Heartbeat Threshold
- Link Characteristics ACK Timer
- Maximum Data Rate
- Current Data Rate
- Latency
- Expected Forwarding Time
- Resources
- Relative Link Quality
The Peer Offer Message is sent by a server to a client in response 12. Peer Offer Message
to a Peer Discovery Message. The Peer Offer Message is the response The Peer Offer Message is sent by a DLEP participant in response to a
to either of the Peer Discovery messages (Attached or Detached), Peer Discovery Message. Upon receipt, and successful processing, of a
and completes the DLEP peer session establishment. Upon sending the Peer Offer message, the recipient MUST respond with a Peer Offer ACK
Peer Offer Message, the server then enters an "in session" state message, completing the discovery phase of DLEP. Both DLEP
with the client. From the client perspective, receipt and successful participants (router and modem) would then enter an "in session"
parsing of a Peer Offer order MUST cause the client to enter the "in state. Any subsequent Discovery messages sent or received on this
session" state. Any subsequent Discovery messages sent or received session MUST be considered an error, and the session MUST be
on this session MUST be considered an error, and the session MUST be
terminated as if a Peer Termination Message had been received. terminated as if a Peer Termination Message had been received.
The Peer Offer Message contains the following fields: The Peer Offer message MUST be sent to the unicast address of the
originator of Peer Discovery, regardless of whether the discovery was
received on the DLEP multicast address (TBD) or on a unicast
address.
0 1 2 3 To construct a Peer Offer message, the initial TLV type value is set
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 to DLEP_PEER_OFFER (value TBD). The Identification data item TLV is
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ placed in the packet next, followed by any OPTIONAL Data Item TLVs
| Msg Type = |Msg Flg|AddrLen| Message Size | the implementation supports:
| 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) Optional Data Item TLVs:
Message Flags - Set to 0x1 (bit 3, mhasseqnum bit - DLEP Version
is set). All other bits are unused and - Peer Type
MUST be set to '0'. - IPv4 Address
- IPv6 Address
- Status
- Heartbeat Interval
- Heartbeat Threshold
- Link Characteristics ACK Timer
Message Address Length - 0x0 13. Peer Offer ACK Message
Message Size - 22 + size of optional sub-TLVs The Peer Offer ACK message acknowledges receipt of a Peer Offer
message, and completes the router/modem session establishment for
DLEP. The Peer Offer ACK message MUST be sent to unicast address of
the originator of a Peer Offer message. The Peer Offer ACK message
MAY contain an OPTIONAL Status data item, indicating success or
failure of the attempt to establish a router/modem session. For
implementations that do NOT support the Status data item (defined in
section 10.13 of this document), the Peer Offer ACK message MUST be
used ONLY to indicate successful session establishment; Peer Offer
messages that are rejected MUST be silently dropped, allowing the
Peer Offer to time out.
Message Sequence Number - A 16-bit unsigned integer field containing To construct a Peer Offer ACK message, the initial TLV type value is
a sequence number, generated by the message set to DLEP_PEER_OFFER_ACK (value TBD). Mandatory data item TLV's are
originator. placed into the packet next:
TLV Block - TLV Length: 14 + size of optional sub-TLVs Mandatory Data Item TLVs:
- Identification
- Status
Sub TLVs Note that there are NO OPTIONAL data item TLVs specifed for this
Identification (MANDATORY) message.
Version (OPTIONAL)
Peer Type (OPTIONAL)
IPv4 Address (OPTIONAL)
IPv6 Address (OPTIONAL)
Status (OPTIONAL)
Heartbeat Interval (OPTIONAL)
Heartbeat Threshold (OPTIONAL)
Link Characteristics ACK Timer (OPTIONAL)
14. Peer Update Message 14. Peer Update Message
The Peer Update message is sent by a DLEP peer to indicate local The Peer Update message is an OPTIONAL message, sent by a DLEP peer
Layer 3 address changes, or for metric changes on a device-wide to indicate local Layer 3 address changes, or for metric changes on a
basis. For example, addition of an IPv4 address to the server would modem-wide basis. For example, addition of an IPv4 address to the
prompt a Peer Update message to its attached DLEP clients. Also, a router would prompt a Peer Update message to its attached DLEP
client that changes its Maximum Data Rate for all destinations MAY modems. Also, a modem that changes its Maximum Data Rate for all
reflect that change via a Peer Update Message to its attached server. destinations MAY reflect that change via a Peer Update Message to its
attached router(s).
With Layer 3 address changes, if the client is capable of
understanding and forwarding this information, the address update
would prompt any remote DLEP clients (DLEP clients that are on the
far-end of the variable link) to issue a "Neighbor Update" message to
their local servers with the new (or deleted) addresses. Clients that
do not track Layer 3 addresses MUST silently parse and ignore the Peer
Update Message. Clients that track Layer 3 addresses MUST acknowledge
the Peer Update with a Peer Update ACK message. Servers receiving a
Peer Update with metric changes MUST apply the new metric to all
neighbor sessions established via the client. Peers MAY employ
heuristics to retransmit Peer Update messages. The sending of Peer
Update Messages for Layer 3 address changes SHOULD cease when a server
implementation determines that a client does NOT support Layer 3
address tracking.
If metric Sub-TLVs are supplied with the Peer Update message (e.g.
Maximum Data Rate), these metrics MUST be applied to all neighbor
sessions accessible via the peer.
The Peer 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 | 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 | | opt sub-TLVs | noted below |
| (Value TDB) | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Message Type - DLEP_MESSAGE (Value TBD)
Message Flags - Set to 0x1 (bit 3, mhasseqnum bit Concerning Layer 3 addresses, if the modem is capable of
is set). All other bits are unused and understanding and forwarding this information (via proprietary
MUST be set to '0'. mechanisms), the address update would prompt any remote DLEP modems
(DLEP-enabled modems in a remote node) to issue a "Neighbor Update"
message to their local routers with the new (or deleted) addresses.
Modems that do not track Layer 3 addresses SHOULD silently parse and
ignore the Peer Update Message. Modems that track Layer 3 addresses
MUST acknowledge the Peer Update with a Peer Update ACK message.
Routers receiving a Peer Update with metric changes MUST apply the
new metric to all neighbors (remote nodes) accessible via the modem.
Supporting implementations are free to employ heuristics to
retransmit Peer Update messages. The sending of Peer Update Messages
for Layer 3 address changes SHOULD cease when a either participant
(router or modem) determines that the other implementation does NOT
support Layer 3 address tracking.
Message Address Length - 0x0 If metrics are supplied with the Peer Update message (e.g. Maximum
Data Rate), these metrics are considered to be modem-wide, and
therefore MUST be applied to all neighbors in the information base
associated with the router/modem session.
Message Size - 22 + optional Sub-TLVs To construct a Peer Update message, the initial TLV type value is set
to DLEP_PEER_UPDATE (value TBD). The Identification data item TLV is
placed in the packet next, followed by any OPTIONAL Data Item TLVs.
Message Sequence Number - A 16-bit unsigned integer containing a Optional Data Item TLVs:
sequence number (generated by originator).
TLV Block - TLV Length: 14 + length of optional - IPv4 Address
sub-TLVs. - IPv6 Address
Sub TLVs - Maximum Data Rate
Identification (MANDATORY) - Current Data Rate
IPv4 Address (OPTIONAL) - Latency
IPv6 Address (OPTIONAL) - Expected Forwarding Time
Maximum Data Rate (OPTIONAL) - Resources
Current Data Rate (OPTIONAL) - Relative Link Quality
Latency (OPTIONAL)
Expected Forwarding Time (OPTIONAL)
Resources (OPTIONAL)
Relative Link Quality (OPTIONAL)
15. Peer Update ACK Message 15. Peer Update ACK Message
A peer sends the Peer Update ACK Message to indicate whether a The Peer Update ACK message is an OPTIONAL message, and is sent by
Peer Update Message was successfully processed. implementations supporting Layer 3 address tracking and/or modem-wide
metrics to indicate whether a Peer Update Message was successfully
The Peer Update ACK message contains the following fields: processed.
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 bit
is set). All other bits are unused and
MUST be set to '0'.
Message Address Length - 0x0
Message Size - 22 + size of optional sub-TLVs.
Message Sequence Number - A 16-bit unsigned integer field containing To construct a Peer Update ACK message, the initial TLV type value is
the sequence number from the Neighbor Up set to DLEP_PEER_UPDATE_ACK (value TBD). The Identification data item
Message that is being acknowledged. TLV is placed in the packet next, followed by any OPTIONAL TLVs the
implementation supports:
TLV Block - TLV Length: 14 + optional sub-TLVs Optional Data Item TLVs:
Sub TLVs - Status
Identification (MANDATORY)
Status (OPTIONAL)
16. Peer Termination Message 16. Peer Termination Message
The Peer Termination Message is sent by either the client or the The Peer Termination Message is sent by a DLEP participant when the
server when a session needs to be terminated. Transmission of a router/modem session needs to be terminated. Implementations
Peer Termination ACK message is required to confirm the receiving a Peer Termination message MUST send a Peer Termination ACK
termination process. The sender of the Peer Termination message message to confirm the termination process. The sender of a Peer
is free to define its heuristics in event of a timeout. The Termination message is free to define its heuristics in event of a
receiver of a Peer Termination Message MUST terminate all timeout. The receiver of a Peer Termination Message MUST release all
neighbor sessions and release associated resources. State resources allocated for the router/modem session, and MUST eliminate
machines are returned to the "discovery" state. No Neighbor Down all neighbors in the information base accessible via the router/modem
messages are sent. pair represented by the session. Router and modem state machines are
returned to the "discovery" state. No Neighbor Down messages are
The Peer Termination Message contains the following fields: sent.
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
bit is set). All other bits are
unused and MUST be set to '0'.
Message Address Length - 0x0
Message Size - 22 + size of optional sub-TLVs.
Message Sequence Number - A 16-bit unsigned integer field To construct a Peer Termination message, the initial TLV type value
containing a sequence number is set to DLEP_PEER_TERMINATION (value TBD). The Identification data
generated by the message originator. item TLV is placed in the packet next, followed by any OPTIONAL Data
Item TLVs the implementation supports:
TLV Block - TLV Length = 14 + optional sub-TLVs Optional Data Item TLVs:
Sub TLVs - Status
Identification (MANDATORY)
Status (OPTIONAL)
17. Peer Termination ACK Message 17. Peer Termination ACK Message
The Peer Termination Message ACK is sent by a DLEP peer in response The Peer Termination Message ACK is sent by a DLEP peer in response
to a received Peer Termination order. to a received Peer Termination order. Receipt of a Peer Termination
ACK message completes the teardown of the router/modem session.
The Peer Termination 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 | 22 + size of opt |
| (value TBD) | | | sub-TLVs |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Seq Num |TLVs Length =14 + opt sub-TLVs |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DLEP Peer Term|TLV Flags=0x10 | Length = 11 + | Sub-TLVs as |
| ACK | | opt sub-TLVs | noted below |
| (Value 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 - 22 + optional sub-TLVs.
Message Sequence Number - A 16-bit unsigned integer field To construct a Peer Termination ACK message, the initial TLV type
containing the sequence number in value is set to DLEP_PEER_TERMINATION_ACK (value TBD). The
the corresponding Peer Termination Identification data item TLV is placed in the packet next, followed
Message being acknowledged. by any OPTIONAL TLVs the implementation supports:
TLV Block - TLV Length = 14 + optional Sub-TLVs Optional Data Item TLVs:
Sub-TLVs - Status
Identification (MANDATORY)
Status (OPTIONAL)
18. Neighbor Up Message 18. Neighbor Up Message
A peer sends the Neighbor Up message to report that a new A DLEP participant sends the Neighbor Up message to report that a new
potential routing neighbor, or a new destination within the destination has been detected. A Neighbor Up ACK Message is required
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 by the modem, to indicate that a new remote node has been
to confirm a received Neighbor Up. A Neighbor Up message can be detected, or by the router, to indicate the presence of a new logical
sent by a client to signal that it (the client) has detected a new destination (e.g., a Multicast group) exists in the network.
neighbor, or by the server to indicate that new destinations
(e.g. Multicast groups) exist within 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
should enter an "in session" state with regard to the far-end
destination, and send an acknowledgement to the originating peer.
The Neighbor Up 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 |
| Up (TBD) | | opt sub-TLVs | 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 - 31 + optional Sub-TLVs 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 should add knowledge
of the new destination to its information base, indicating that the
destination is accessible via the modem/router pair.
Message Sequence Number - A 16-bit unsigned integer field containing To construct a Neighbor Up message, the initial TLV type value is set
a sequence number generated by the message to DLEP_NEIGHBOR_UP (value TBD). The Identification data item TLV is
originator. placed in the packet next, followed by the MAC Address 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:
TLV Block - TLV Length: 23 + optional Sub-TLVs. Optional Data Item TLVs:
Sub-TLVs - IPv4 Address
Identification (MANDATORY) - IPv6 Address
MAC Address (MANDATORY) - Maximum Data Rate
IPv4 Address (OPTIONAL) - Current Data Rate
IPv6 Address (OPTIONAL) - Latency
Maximum Data Rate (OPTIONAL) - Expected Forwarding Time
Current Data Rate (OPTIONAL) - Resources
Latency (OPTIONAL) - Relative Link Factor
Expected Forwarding Time (OPTIONAL) - Credit Window Status
Resources (OPTIONAL)
Relative Link Factor (OPTIONAL)
Credit Window Status (OPTIONAL)
19. Neighbor Up ACK Message 19. Neighbor Up ACK Message
A peer sends the Neighbor Up ACK Message to indicate whether a A DLEP participant sends the Neighbor Up ACK Message to indicate
Neighbor Up Message was successfully processed. When a peer whether a Neighbor Up Message was successfully processed.
receives a Neighbor Up ACK message 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 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 |
| Up 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 the Neighbor Down
Message that is being acknowledged.
TLV Block - TLV Length: 27 To construct a Neighbor Up ACK message, the initial TLV type value is
set to DLEP_NEIGHBOR_UP_ACK (value TBD). The Identification data item
TLV is placed in the packet next, followed by the MAC Address TLV,
containing the MAC address of the DLEP neighbor. The implementation
would then place any supported OPTIONAL Data Item TLVs into the
packet:
Sub-TLVs - Identification (MANDATORY) Optional Data Item TLVs:
MAC Address Sub-TLV (MANDATORY) - Credit Window Status
Status Sub-TLV (MANDATORY)
Credit Window Status (OPTIONAL)
20. Neighbor Down Message 20. Neighbor Down Message
A DLEP peer sends the Neighbor Down message to report when a A DLEP peer sends the Neighbor Down message to report when a
destination (a routing peer or a multicast group) is no longer destination (a remote node or a multicast group) is no longer
reachable. The Neighbor Down message MUST contain a MAC Address TLV. reachable. The Neighbor Down message MUST contain both the
Any other TLVs present MAY be ignored. A Neighbor Down ACK Message is Identification data item TLV, and a MAC Address data item TLV. Other
required to confirm the process. The sender of the Neighbor Down TLVs as listed are OPTIONAL, and MAY be present if an implementation
message is free to define its retry heuristics in event of a timeout. supports them. A Neighbor Down ACK Message MUST be sent by the
Upon successful receipt and parsing of a Neighbor Down message, the recipient of a Neighbor Down message to confirm that the relevant
receiving peer MUST remove all state information for the destination, data has been removed from the information base. The sender of the
and send a Neighbor Down ACK message to the originating peer. Neighbor Down message is free to define its retry heuristics in event
of a timeout.
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) | | TLV | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 To construct a Neighbor Down message, the initial TLV type value is
containing a sequence number generated set to DLEP_NEIGHBOR_DOWN (value TBD). The signal TLV is followed by
by the message originator. the mandatory data item TLVs:
TLV Block - TLV Length: 23 + optional Sub-TLVs - Identification
- MAC Address Data item
- Status data item
Sub TLVs Note that there are NO OPTIONAL data item TLVs for this message.
Identification (MANDATORY)
MAC Address (MANDATORY)
Status (OPTIONAL)
21. Neighbor Down ACK Message 21. Neighbor Down ACK Message
A peer sends the Neighbor Down ACK Message to indicate whether A DLEP participant sends the Neighbor Down ACK Message to indicate
a received Neighbor Down Message was successfully processed. If whether a received Neighbor Down Message was successfully processed.
successfully processed, the sending peer MUST remove all state If successfully processed, the sender of the ACK MUST have removed
information on the referenced neighbor session. all entries in the information base that pertain to the referenced
neighbor. As with the Neighbor Down message, there are NO OPTIONAL
The Neighbor Down ACK message contains the following fields: Data Item TLVs defined for the Neighbor Down ACK message.
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 |
| 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 the Neighbor Down
Message that is being acknowledged.
TLV Block - TLV Length: 27 To construct a Neighbor Down message, the initial TLV type value is
set to DLEP_NEIGHBOR_DOWN_ACK (value TBD). The Identification data
item TLV is placed in the packet next, followed by:
Sub-TLVs - Identification (MANDATORY) - MAC Address Data item
MAC Address (MANDATORY) - Status data item
Status (MANDATORY)
22. Neighbor Update Message 22. Neighbor Update Message
The client sends the Neighbor Update message when a change in link A DLEP participant sends the Neighbor Update message when it detects
metric parameters is detected for a destination. some change in the information base for a given neighbor (remote node
or multicast group). Some examples of changes that would prompt a
The Neighbor Update Message contains the following fields: Neighbor Update message are:
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 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 (MANDATORY)
MAC 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 a peer every N seconds, where N is
defined in the "Heartbeat Interval" field of the discovery message.
The message is used by peers to detect when a DLEP session partner
is no longer communicating. Peers SHOULD allow some integral number
of heartbeat intervals (default 4) to expire with no traffic on the
session before initiating DLEP session termination procedures.
The Heartbeat 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 | 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 bit is
set). All other bits are unused and SHOULD
be set to '0'.
Message Address Length - 0x0 - Change in link metrics (e.g., Data Rates)
- Layer 3 addressing change (for implementations that support it)
Message Size - 22 To construct a Neighbor Update message, the initial TLV type value is
set to DLEP_NEIGHBOR_UPDATE (value TBD). Following the signal TLV are
the mandatory Data Item TLVs:
Message Sequence Number - A 16-bit unsigned integer field containing Identification Data Item TLV
a sequence number generated by the message MAC Address data item TLV
originator.
TLV Block - TLV Length = 14 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:
Sub TLVs - - IPv4 Address
Identification Sub-TLV (MANDATORY) - IPv6 Address
- Maximum Data Rate
- Current Data Rate
- Latency
- Resources
- Relative Link Quality
- Credit Window Status
- Credit Grant
- Credit Request
26. Link Characteristics Request Message 23. Heartbeat Message
The Link Characteristics Request Message is sent by the server to A Heartbeat Message is sent by a DLEP participant every N seconds,
the client when the server detects that a different set of where N is defined in the "Heartbeat Interval" field of the discovery
transmission characteristics is necessary (or desired) for the message. Note that implementations omitting the Heartbeat Interval
type of traffic that is flowing on the link. It is important to effectively set the interval to an infinite value, therefore, in
note that the link can be a logical link for a multicast session those cases, this message would NOT be sent.
where more than one remote neighbor participates. The request
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.
The Link Characteristics Request Message contains the following The message is used by participants to detect when a DLEP session
fields: partner (either the modem or the router) is no longer communicating.
Participants 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.
0 1 2 3 To construct a Heartbeat message, the initial TLV type value is set
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 to DLEP_PEER_HEARTBEAT (value TBD). The signal TLV is followed by the
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ mandatory data item TLVs:
| 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) - Identification
Message Flags - Set to 0x1 (bit 3, mhasseqnum bit Note that there are NO OPTIONAL data item TLVs for this message.
is set). All other bits are unused and
MUST be set to '0'.
Message Address Length - 0x0 24. Link Characteristics Request Message
Message Size - 31 + length of optional (Current Data The Link Characteristics Request Message is an OPTIONAL message, and
Rate and/or Latency) Sub-TLVs is sent by the router to request that the modem initiate changes for
specific characteristics of the link. Since the request specifies a
neighbor, it can reference either a real destination (e.g., a remote
node), or a logical destination (e.g., a multicast destination)
within the network.
Message Sequence Number - A 16-bit unsigned integer field containing The Link Characteristics Request message contains either a Current
a sequence number generated by the message Data Rate (CDR) TLV to request a different amount of bandwidth than
originator. 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.
TLV Block - Length: 23 + optional Sub-TLVs To construct a Link Characteristics Request message, the initial TLV
type value is set to DLEP_NEIGHBOR_LINK_CHAR_REQ (value TBD).
Following the signal TLV are the mandatory Data Item TLVs:
Sub TLVs Identification Data Item TLV
Identification Sub-TLV (MANDATORY) MAC Address data item TLV
MAC Address Sub-TLV (MANDATORY)
Current Data Rate Sub-TLV - if present,
this value represents the requested data
rate in bits per second (bps). (OPTIONAL)
Latency TLV - if present, this value
represents the maximum latency, in
milliseconds, desired on the link.
(OPTIONAL)
27. Link Characteristics ACK Message 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:
The Link Characteristics ACK Message is sent by the client to the Current Data Rate - If present, this value represents the NEW (or
server letting the server know the success (or failure) of the unchanged, if the request is denied) Current
requested change in link characteristics. The Link Characteristics Data Rate in bits per second (bps).
ACK message SHOULD contain a complete set of metric TLVs. It MUST
contain the same TLV types as the request. The values in the
metric TLVs in the Link Characteristics ACK message MUST reflect
the link characteristics after the request has been processed.
The Link Characteristics ACK Message contains the following fields: Latency - If present, this value represents the maximum
desired latency (e.g., it is a not-to-exceed
value) in milliseconds on the link.
0 1 2 3 25. Link Characteristics ACK Message
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) The LInk Characteristics ACK message is an OPTIONAL message, and is
sent by modems supporting it to the router letting the router know
the success or failure of a requested change in link characteristics.
The Link Characteristics ACK message SHOULD contain a complete set
of metric data item TLVs. It MUST contain the same TLV types as the
request. The values in the metric data item TLVs in the Link
Characteristics ACK message MUST reflect the link characteristics
after the request has been processed.
Message Flags - Set to 0x1 (bit 3, mhasseqnum bit To construct a Link Characteristics Request ACK message, the initial
is set). All other bits are unused and TLV type value is set to DLEP_NEIGHBOR_LINK_CHAR_ACK (value TBD).
MUST be set to '0'. Following the signal TLV are the mandatory Data Item TLVs:
Message Address Length - 0x0 Identification Data Item TLV
MAC Address data item TLV
Message Size - 31 + length of optional (Current Data After placing the mandatory data item TLVs into the packet, the
Rate and/or Latency) TLVs implementation would place any supported OPTIONAL data item TLVs.
Possible OPTIONAL data item TLVs are:
Message Sequence Number - A 16-bit unsigned integer field containing Current Data Rate - If present, this value represents the requested
the sequence number that appeared on the data rate in bits per second (bps).
corresponding Link Characteristics Request
message.
TLV Block - TLVs Length = 23 + Optional TLVs Latency - If present, this value represents the NEW
maximum latency (or unchanged, if the request
is denied), expressed in milliseconds, on the
link.
Sub TLVs 26. Security Considerations
Identification Sub-TLV (MANDATORY)
MAC Address Sub-TLV (MANDATORY)
Maximum Data Rate Sub-TLV (OPTIONAL)
Current Data Rate Sub-TLV - if present, The protocol does not contain any mechanisms for security (e.g.
this value represents the NEW (or authentication or encryption). The protocol assumes that any security
unchanged, if the request is denied) would be implemented in the underlying transport (for example, by use
Current Data Rate in bits per second (bps). of DTLS or some other mechanism), and is therefore outside the scope
(OPTIONAL) of this document.
Latency Sub-TLV - if 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) 27. IANA Considerations
Relative Link Quality Sub-TLV (OPTIONAL) This section specifies requests to IANA.
28. Security Considerations 27.1 Registrations
The protocol does not contain any mechanisms for security (e.g. This specification defines:
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. IANA Considerations o A new repository for DLEP signals, with fifteen values currently
assigned.
This section specifies requests to IANA. o Reservation of numbering space for Experimental DLEP signals.
29.1 TLV Registrations o A new repository for DLEP Data Items, with eighteen values
currently assigned.
This specification defines: o Reservation of numbering space in the Data Items repository for
experimental data items.
o One TLV types which must be allocated from the 0-223 range o A request for allocation of a well-known port for DLEP
of the "Assigned Message TLV Types" repository of [RFC5444]. communication.
o A new repository for DLEP orders, with seventeen values currently o A request for allocation of a multicast address for DLEP
assigned. discovery.
o A new repository for DLEP Sub-TLV assignments with nineteen values 27.2 Expert Review: Evaluation Guidelines
currently assigned.
29.2 Expert Review: Evaluation Guidelines No additional guidelines for expert review are anticipated.
For the registries for TLV type extensions where an Expert Review is 27.3 Signal (Message) TLV Type Registration
required, the designated expert SHOULD take the same general
recommendations into consideration as are specified by [RFC5444].
29.3 Message TLV Type Registration A new repository must be created with the values of the DLEP signals.
Valid signals are:
The Message TLV specified below must be allocated from the "Message o Peer Discovery
TLV Types" namespace of [RFC5444]. o Peer Offer
o Peer Offer ACK
o Peer Update
o Peer Update ACK
o Peer Termination
o Peer Termination ACK
o Neighbor Up
o Neighbor Up ACK
o Neighbor Down
o Neighbor Down ACK
o Neighbor Update
o Heartbeat
o Link Characteristics Request
o Link Characteristics ACK
o DLEP_MESSAGE It is also requested that the repository contain space for
experimental signal types.
29.4 DLEP Order Registration 27.4 DLEP Data Item Registrations
A new repository must be created with the values of the DLEP orders. A new repository for DLEP Data Items must be created. Valid Data
Valid orders are: Items are:
o Attached Peer Discovery Message o Identification
o Detached Peer Discovery Message o DLEP Version
o Peer Offer Message o Peer Type
o Peer Update Message o MAC Address
o Peer Update ACK Message o IPv4 Address
o Peer Termination Message o IPv6 Address
o Peer Termination ACK Message o Maximum Data Rate
o Neighbor Up Message o Current Data Rate
o Neighbor Up ACK Message o Latency
o Neighbor Down Message o Expected Forwarding Time
o Neighbor Down ACK Message o Resources
o Neighbor Update Message o Relative Link Quality
o Neighbor Address Update Message o Status
o Neighbor Address Update ACK Message o Heartbeat Interval/Threshold
o Heartbeat Message o Link Characteristics ACK Timer
o Link Characteristics Request Message o Credit Window Status
o Link Characteristics ACK Message o Credit Grant
o Credit Request
This registry should be created according to the guidelines for It is also requested that the registry allocation contain space for
'Message-Type-Specific TLV' registration as specified in section experimental data items.
6.2.1 of [RFC5444].
29.5 DLEP Sub-TLV Type Registrations 27.5 DLEP Well-known Port
A new repository for DLEP Sub-TLVs must be created. Valid Sub-TLVs are: It is requested that IANA allocate a well-known port number for DLEP
communication.
o Identification Sub-TLV 27.6 DLEP Multicast Address
o DLEP Version Sub-TLV
o Peer Type Sub-TLV
o MAC Address Sub-TLV
o IPv4 Address Sub-TLV
o IPv6 Address Sub-TLV
o Maximum Data Rate Sub-TLV
o Current Data Rate Sub-TLV
o Latency Sub-TLV
o Expected Forwarding Time Sub-TLV
o Resources Sub-TLV
o Relative Link Quality Sub-TLV
o Status Sub-TLV
o Heartbeat Interval Sub-TLV
o Heartbeat Threshold Sub-TLV
o Link Characteristics ACK Timer Sub-TLV
o Credit Window Status Sub-TLV
o Credit Grant Sub-TLV
o Credit Request Sub-TLV
It is also requested that the registry allocation contain space It is requested that IANA allocate a multicast address for DLEP
reserved for experimental sub-TLVs. discovery messages.
30. Appendix A. 30. Appendix A.
Peer Level Message Flows 30.1 Peer Level Message Flows
*Modem Device (Client) Restarts Discovery 30.1.1 Modem Device Restarts Discovery
Server Client Message Description Router Modem Message Description
==================================================================== ====================================================================
<-------Peer Discovery--------- Modem initiates discovery
<-------Peer Discovery--------- Client initiates discovery ---------Peer Offer-----------> Router detects a problem, sends
w/ Non-zero Status TLV Peer Offer w/Status TLV indicating
---------Peer Offer-----------> Server detects a problem, sends
w/ Non-zero Status TLV Peer Offer w/ Status TLV indicating
the error. the error.
Client accepts failure, restarts Modem accepts failure, restarts
discovery process. discovery process.
<-------Peer Discovery--------- Client initiates discovery <-------Peer Discovery--------- Modem initiates discovery
---------Peer Offer-----------> Server accepts, sends Peer Offer ---------Peer Offer-----------> Router accepts, sends Peer Offer
w/ Zero Status TLV w/ Status TLV indicating success. w/ Zero Status TLV w/ Status TLV indicating success.
Discovery completed. Discovery completed.
*Modem Device Detects Peer Offer Timeout 30.1.2 Modem Device Detects Peer Offer Timeout
Server Client Message Description Router Modem Message Description
==================================================================== ====================================================================
<-------Peer Discovery--------- Client initiates discovery, <-------Peer Discovery--------- Modem initiates discovery, starts
starts a guard timer. a guard timer.
Client guard timer expires. Modem guard timer expires. Modem
Client restarts discovery process. restarts discovery process.
<-------Peer Discovery--------- Client initiates discovery, <-------Peer Discovery--------- Modem initiates discovery, starts
starts a guard timer. a guard timer.
---------Peer Offer-----------> Server accepts, sends Peer Offer ---------Peer Offer-----------> Router accepts, sends Peer Offer
w/ Zero Status TLV w/ Status TLV indicating success. w/ Zero Status TLV w/ Status TLV indicating success.
Discovery completed. Discovery completed.
*Server Peer Offer Lost 30.1.3 Router Peer Offer Lost
Server Client Message Description Router Modem Message Description
==================================================================== ====================================================================
<-------Peer Discovery--------- Client initiates discovery, <-------Peer Discovery--------- Modem initiates discovery, starts
starts a guard timer. a guard timer.
---------Peer Offer-------|| Server offers availability ---------Peer Offer-------|| Router offers availability
Client times out on Peer Offer, Modem times out on Peer Offer,
restarts discovery process. restarts discovery process.
<-------Peer Discovery--------- Client initiates discovery <-------Peer Discovery--------- Modem initiates discovery
---------Peer Offer-----------> Server detects subsequent discovery, ---------Peer Offer-----------> Router detects subsequent
internally terminates the previous, discovery, internally terminates
accepts the new association, sends the previous, accepts the new
Peer Offer w/ Status TLV indicating association, sends Peer Offer
success. w/Status TLV indicating success.
Discovery completed. Discovery completed.
*Discovery Success 30.1.4 Discovery Success
Server Client Message Description Router Modem Message Description
==================================================================== ====================================================================
<-------Peer Discovery--------- Client initiates discovery <-------Peer Discovery--------- Modem initiates discovery
---------Peer Offer-----------> Server offers availability ---------Peer Offer-----------> Router offers availability
-------Peer Heartbeat---------> -------Peer Heartbeat--------->
<-------Peer Heartbeat--------- <-------Peer Heartbeat---------
-------Peer Heartbeat---------> -------Peer Heartbeat--------->
<==============================> Neighbor Sessions <==============================> Neighbor Sessions
<-------Peer Heartbeat--------- <-------Peer Heartbeat---------
-------Peer Heartbeat---------> -------Peer Heartbeat--------->
--------Peer Term Req---------> Terminate Request --------Peer Term Req---------> Terminate Request
<--------Peer Term Res--------- Terminate Response <--------Peer Term Res--------- Terminate Response
*Server Detects a Heartbeat timeout 30.1.5 Router Detects a Heartbeat timeout
Server Client Message Description Router Modem Message Description
==================================================================== ====================================================================
<-------Peer Heartbeat--------- <-------Peer Heartbeat---------
-------Peer Heartbeat---------> -------Peer Heartbeat--------->
||---Peer Heartbeat--------- ||---Peer Heartbeat---------
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
-------Peer Heartbeat---------> -------Peer Heartbeat--------->
||---Peer Heartbeat--------- ||---Peer Heartbeat---------
Server Heartbeat Timer expires, Router Heartbeat Timer expires,
detects missing heartbeats. Server detects missing heartbeats. Router
takes down all neighbor sessions takes down all neighbor sessions
and terminates the Peer association. and terminates the Peer
association.
------Peer Terminate ---------> Peer Terminate Request ------Peer Terminate ---------> Peer Terminate Request
Client takes down all neighbor Modem takes down all neighbor
sessions, then acknowledges the sessions, then acknowledges the
Peer Terminate Peer Terminate
<----Peer Terminate ACK--------- Peer Terminate ACK <----Peer Terminate ACK--------- Peer Terminate ACK
*Client Detects a Heartbeat timeout 30.1.6 Modem Detects a Heartbeat timeout
Server Client Message Description Router Modem Message Description
==================================================================== ====================================================================
<-------Peer Heartbeat--------- <-------Peer Heartbeat---------
-------Peer Heartbeat------|| -------Peer Heartbeat------||
<-------Peer Heartbeat--------- <-------Peer Heartbeat---------
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
-------Peer Heartbeat------|| -------Peer Heartbeat------||
<-------Peer Heartbeat--------- <-------Peer Heartbeat---------
Client Heartbeat Timer expires, Modem Heartbeat Timer expires,
detects missing heartbeats. Modem detects missing heartbeats. Modem
takes down all neighbor sessions takes down all neighbor sessions
and terminates the Peer association.
<-------Peer Terminate-------- Peer Terminate Request <-------Peer Terminate-------- Peer Terminate Request
Server takes down all neighbor Router takes down all neighbor
sessions, then acknowledges the sessions, then acknowledges the
Peer Terminate Peer Terminate
------Peer Terminate ACK-----> Peer Terminate ACK ------Peer Terminate ACK-----> Peer Terminate ACK
*Peer Terminate (from Client) Lost 30.1.7 Peer Terminate (from Modem) Lost
Server Client Message Description Router Modem Message Description
==================================================================== ====================================================================
||------Peer Terminate-------- Client Peer Terminate Request ||------Peer Terminate-------- Modem Peer Terminate Request
Server Heartbeat times out, Router Heartbeat times out,
terminates association. terminates association.
--------Peer Terminate-------> Server Peer Terminate --------Peer Terminate-------> Router Peer Terminate
<-----Peer Terminate ACK------ Client sends Peer Terminate ACK <-----Peer Terminate ACK------ Modem sends Peer Terminate ACK
*Peer Terminate (from server) Lost 30.1.8 Peer Terminate (from Router) Lost
Server Client Message Description Router Modem Message Description
==================================================================== ====================================================================
-------Peer Terminate--------> Server Peer Terminate Request -------Peer Terminate--------> Router Peer Terminate Request
Client HB times out, Modem HB times out,
terminates association. terminates association.
<------Peer Terminate-------- Client Peer Terminate <------Peer Terminate-------- Modem Peer Terminate
------Peer Terminate ACK-----> Peer Terminate ACK ------Peer Terminate ACK-----> Peer Terminate ACK
Neighbor Level Message Flows 30.2 Neighbor Specific Message Flows
30.2.1 Modem Neighbor Up Lost
*Client Neighbor Up Lost
Server Client Message Description Router Modem Message Description
==================================================================== ====================================================================
||-----Neighbor Up ------------ Client sends Neighbor Up ||-----Neighbor Up ------------ Modem sends Neighbor Up
Client timesout on ACK Modem timesout on ACK
<------Neighbor Up ------------ Client sends Neighbor Up <------Neighbor Up ------------ Modem sends Neighbor Up
------Neighbor Up ACK---------> Server accepts the neighbor ------Neighbor Up ACK---------> Router accepts the neighbor
session session
<------Neighbor Update--------- Client Neighbor Metrics <------Neighbor Update--------- Modem Neighbor Metrics
. . . . . . . . . . . . . . . .
<------Neighbor Update--------- Client Neighbor Metrics <------Neighbor Update--------- Modem Neighbor Metrics
*Server Detects Duplicate Neighbor Ups 30.2.2 Router Detects Duplicate Neighbor Ups
Server Client Message Description Router Modem Message Description
==================================================================== ====================================================================
<------Neighbor Up ------------ Client sends Neighbor Up <------Neighbor Up ------------ Modem sends Neighbor Up
------Neighbor Up ACK-------|| Server accepts the neighbor ------Neighbor Up ACK-------|| Router accepts the neighbor
session session
Client timesout on ACK Modem timesout on ACK
<------Neighbor Up ------------ Client resends Neighbor Up <------Neighbor Up ------------ Modem resends Neighbor Up
Server detects duplicate Router detects duplicate Neighbor,
Neighbor, takes down the takes down the previous, accepts
previous, accepts the new the new Neighbor.
Neighbor.
------Neighbor Up ACK---------> Server accepts the neighbor ------Neighbor Up ACK---------> Router accepts the neighbor
session session
<------Neighbor Update--------- Client Neighbor Metrics <------Neighbor Update--------- Modem Neighbor Metrics
. . . . . . . . . . . . . . . .
<------Neighbor Update--------- Client Neighbor Metrics <------Neighbor Update--------- Modem Neighbor Metrics
*Neighbor Up, No Layer 3 Addresses 30.2.3 Neighbor Up, No Layer 3 Addresses
Server Client Message Description Router Modem Message Description
==================================================================== ====================================================================
<------Neighbor Up ------------ Client sends Neighbor Up <------Neighbor Up ------------ Modem sends Neighbor Up
------Neighbor Up ACK---------> Server accepts the neighbor ------Neighbor Up ACK---------> Router accepts the neighbor
session session
Server ARPs for IPv4 if defined. Router ARPs for IPv4 if defined.
Server drives ND for IPv6 if Router drives ND for IPv6 if
defined. defined.
<------Neighbor Update--------- Client Neighbor Metrics <------Neighbor Update--------- Modem Neighbor Metrics
. . . . . . . . . . . . . . . .
<------Neighbor Update--------- Client Neighbor Metrics <------Neighbor Update--------- Modem Neighbor Metrics
*Neighbor Up with IPv4, No IPv6 30.2.4 Neighbor Up with IPv4, No IPv6
Server Client Message Description Router Modem Message Description
==================================================================== ====================================================================
<------Neighbor Up ------------ Client sends Neighbor Up with <------Neighbor Up ------------ Modem sends Neighbor Up with
the IPv4 TLV the IPv4 TLV
------Neighbor Up ACK---------> Server accepts the neighbor ------Neighbor Up ACK---------> Router accepts the neighbor
session session
Server drives ND for IPv6 if Router drives ND for IPv6 if
defined. defined.
<------Neighbor Update--------- Client Neighbor Metrics <------Neighbor Update--------- Modem Neighbor Metrics
. . . . . . . . . . . . . . . .
<------Neighbor Update--------- Client Neighbor Metrics <------Neighbor Update--------- Modem Neighbor Metrics
*Neighbor Up with IPv4 and IPv6 30.2.5 Neighbor Up with IPv4 and IPv6
Server Client Message Description Router Modem Message Description
==================================================================== ====================================================================
<------Neighbor Up ------------ Client sends Neighbor Up with <------Neighbor Up ------------ Modem sends Neighbor Up with
the IPv4 and IPv6 TLVs the IPv4 and IPv6 TLVs
------Neighbor Up ACK---------> Server accepts the neighbor ------Neighbor Up ACK---------> Router accepts the neighbor
session session
<------Neighbor Update--------- Client Neighbor Metrics <------Neighbor Update--------- Modem Neighbor Metrics
. . . . . . . . . . . . . . . .
<------Neighbor Update--------- Client Neighbor Metrics
*Neighbor Session Success 30.2.6 Neighbor Session Success
Server Client Message Description Router Modem Message Description
==================================================================== ====================================================================
---------Peer Offer-----------> Server offers availability ---------Peer Offer-----------> Router offers availability
-------Peer Heartbeat---------> -------Peer Heartbeat--------->
<------Neighbor Up ----------- Client <------Neighbor Up ----------- Modem
------Neighbor Up ACK--------> Server ------Neighbor Up ACK--------> Router
<------Neighbor Update--------- Client <------Neighbor Update--------- Modem
. . . . . . . . . . . . . . . .
<------Neighbor Update--------- Client <------Neighbor Update--------- Modem
Client initiates the terminate Modem initiates the terminate
<------Neighbor Down ---------- Client <------Neighbor Down ---------- Modem
------Neighbor Down ACK-------> Server ------Neighbor Down ACK-------> Router
or or
Server initiates the terminate Router initiates the terminate
------Neighbor Down ----------> Server ------Neighbor Down ----------> Router
<------Neighbor Down ACK------- Client <------Neighbor Down ACK------- Modem
Acknowledgements Acknowledgements
The authors would like to acknowledge the influence and contributions The authors would like to acknowledge the influence and contributions
of Chris Olsen, Teco Boot, Subir Das, Jaewon Kang, Vikram Kaul, Rick of Chris Olsen, Teco Boot, Subir Das, Jaewon Kang, Vikram Kaul, Rick
Taylor, and John Dowdell. Taylor, John Dowdell, Nelson Powell, Bow-Nan Cheng, and Henning
Rogge.
Normative References 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", [RFC5578] Berry, B., Ed., "PPPoE with Credit Flow and Metrics",
RFC 5578, February 2010. RFC 5578, February 2010.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", RFC 2119, March 1997.
Informative References Informative References
[DTLS] Rescorla, E., Ed,. "Datagram Transport Layer Security", [DTLS] Rescorla, E., Ed,. "Datagram Transport Layer Security",
RFC 4347, April 2006. RFC 4347, April 2006.
Author's Addresses Author's Addresses
Stan Ratliff Stan Ratliff
Cisco Cisco
 End of changes. 415 change blocks. 
1897 lines changed or deleted 1385 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/