Mobile Ad-hoc Networks H. Rogge Internet-Draft Fraunhofer FKIE Intended status: Informational November 5, 2012 Expires: May 9, 2013 Stateless RFC5444-based Dynamic Link Exchange Protocol (DLEP) draft-rogge-stateless-rfc5444-dlep-00 Abstract This document provides material for the discussion in the MANET WG about the Dynamic Link Exchange Protocol (DLEP). This document reflects the authors' thoughts about how a stateless DLEP protocol compliant with RFC5444 could look like. Status of this Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on May 9, 2013. Copyright Notice Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Rogge Expires May 9, 2013 [Page 1] Internet-Draft Stateless RFC5444-DLEP November 2012 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 3. Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . 6 4. Protocol Overview and Functioning . . . . . . . . . . . . . . 7 4.1. Routers and Radios . . . . . . . . . . . . . . . . . . . . 7 4.2. Information Base Overview . . . . . . . . . . . . . . . . 8 4.3. Signaling Overview . . . . . . . . . . . . . . . . . . . . 9 4.3.1. Automatic Radio Interface Discovery . . . . . . . . . 10 4.3.2. Setup Radio . . . . . . . . . . . . . . . . . . . . . 10 4.3.3. Interface Updates . . . . . . . . . . . . . . . . . . 10 4.3.4. Local Destinations . . . . . . . . . . . . . . . . . . 11 4.3.5. Neighbor Updates . . . . . . . . . . . . . . . . . . . 11 5. Protocol Parameters . . . . . . . . . . . . . . . . . . . . . 12 5.1. Port Number and Multicast Address . . . . . . . . . . . . 12 5.2. DLEP-Radio Parameters . . . . . . . . . . . . . . . . . . 12 5.3. DLEP-Router Parameters . . . . . . . . . . . . . . . . . . 13 6. Local Radio Information Base . . . . . . . . . . . . . . . . . 15 6.1. Local Interface Set . . . . . . . . . . . . . . . . . . . 15 6.2. Interface Neighbor Set . . . . . . . . . . . . . . . . . . 15 6.3. Lost Neighbor Set . . . . . . . . . . . . . . . . . . . . 16 6.4. Interface Data Set . . . . . . . . . . . . . . . . . . . . 16 6.5. Neighbor Data Set . . . . . . . . . . . . . . . . . . . . 17 7. Configuration Information Base . . . . . . . . . . . . . . . . 18 7.1. Interface Configuration Set . . . . . . . . . . . . . . . 18 7.2. Local Destination Set . . . . . . . . . . . . . . . . . . 18 8. Local Router Information Base . . . . . . . . . . . . . . . . 20 8.1. Radio Interface Configuration Set . . . . . . . . . . . . 20 8.2. Destination Configuration Set . . . . . . . . . . . . . . 20 9. Network Information Base . . . . . . . . . . . . . . . . . . . 22 9.1. Discovered Interface Set . . . . . . . . . . . . . . . . . 22 9.2. Network Local Destination Set . . . . . . . . . . . . . . 22 9.3. Network Interface Data Set . . . . . . . . . . . . . . . . 23 9.4. Network Neighbor Set . . . . . . . . . . . . . . . . . . . 24 9.5. Network Neighbor Data Set . . . . . . . . . . . . . . . . 24 10. Local Radio Information Base Changes . . . . . . . . . . . . . 26 10.1. New Radio Interface Neighbor . . . . . . . . . . . . . . . 26 10.2. Lost Radio Interface Neighbor . . . . . . . . . . . . . . 27 10.3. Radio Interface Status . . . . . . . . . . . . . . . . . . 28 11. Packets and Messages . . . . . . . . . . . . . . . . . . . . . 29 11.1. DLEP Messages . . . . . . . . . . . . . . . . . . . . . . 29 11.1.1. DLEP Message Orders . . . . . . . . . . . . . . . . . 30 11.2. Message TLVs . . . . . . . . . . . . . . . . . . . . . . . 30 11.3. Address Block TLVs . . . . . . . . . . . . . . . . . . . . 31 12. Interface Update Order . . . . . . . . . . . . . . . . . . . . 36 12.1. Interface Update Order Generation . . . . . . . . . . . . 36 12.2. Interface Update Order Processing . . . . . . . . . . . . 37 Rogge Expires May 9, 2013 [Page 2] Internet-Draft Stateless RFC5444-DLEP November 2012 13. Local Destination Order . . . . . . . . . . . . . . . . . . . 39 13.1. Local Destination Order Generation . . . . . . . . . . . . 39 13.2. Local Destination Order Processing . . . . . . . . . . . . 40 14. Neighbor Update Order . . . . . . . . . . . . . . . . . . . . 42 14.1. Neighbor Update Order Generation . . . . . . . . . . . . . 42 14.2. Neighbor Update Order Discarding . . . . . . . . . . . . . 44 14.3. Neighbor Update Order Processing . . . . . . . . . . . . . 44 15. Setup Radio Order . . . . . . . . . . . . . . . . . . . . . . 46 15.1. Setup Radio Order Generation . . . . . . . . . . . . . . . 46 15.2. Setup Radio Order Processing . . . . . . . . . . . . . . . 47 16. Setup Destination Order . . . . . . . . . . . . . . . . . . . 48 16.1. Setup Destination Order Generation . . . . . . . . . . . . 48 16.2. Setup Destination Order Processing . . . . . . . . . . . . 49 17. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 51 17.1. Expert Review: Evaluation Guidelines . . . . . . . . . . . 51 17.2. Message Types . . . . . . . . . . . . . . . . . . . . . . 51 17.3. Message-Type-Specific TLV Type Registries . . . . . . . . 51 17.4. Message TLV Types . . . . . . . . . . . . . . . . . . . . 52 17.5. Address Block TLV Types . . . . . . . . . . . . . . . . . 52 18. Further work . . . . . . . . . . . . . . . . . . . . . . . . . 53 19. Security Considerations . . . . . . . . . . . . . . . . . . . 54 20. References . . . . . . . . . . . . . . . . . . . . . . . . . . 55 20.1. Normative References . . . . . . . . . . . . . . . . . . . 55 20.2. Informative References . . . . . . . . . . . . . . . . . . 55 Appendix A. RFC5444-DLEP Message Examples . . . . . . . . . . . . 56 A.1. Interface Update Order Example . . . . . . . . . . . . . . 56 A.2. Neighbor Update Order Example . . . . . . . . . . . . . . 59 A.3. Setup Radio Order Example . . . . . . . . . . . . . . . . 61 A.4. Setup Destination Order . . . . . . . . . . . . . . . . . 62 A.5. Local Destination Order Example . . . . . . . . . . . . . 65 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 66 Rogge Expires May 9, 2013 [Page 3] Internet-Draft Stateless RFC5444-DLEP November 2012 1. Introduction This document is not intented to go forward on its own, but provides input for the discussion in the MANET WG about DLEP, in particular for (1) allowing to use preexisting RFC5444 parsers and generators with DLEP, and (2) to simplify the protocol by proposing a "stateless" protocol specification of DLEP. It is the opinion of the author of this document that delivering this input for the discussion may help to clarify some proposals that have been made on the MANET mailing list. Dynamic Link Exchange Protocol (DLEP, as defined in [dlep02]) is a proposal for a cross-layer protocol between a layer-2 entity like a radio and a layer-3 router to transport layer-2 metric, statistic and status data from the radio to the router. In addition, it allows the router to control and configure aspects of the radio, such as radio status, channel or link speed. DLEP does not communicate via radio links, it is only used locally. Therefore DLEP does not need to focus on payload efficiency as other protocols of the MANET working group. A DLEP-capable radio works as a transparent bridge for the data- plane. DLEP is used to transport meta-information like link metrics, detected neighbors and configuration options between radio and router via a separate control plane. This document does not discuss the Link Characteristic configuration and Credit Granting parts of [dlep02], it rather concentrates on a [RFC5444] compatible packet format, so a standard compliant generic parser/generator code can be used for this. Instead of copying the functionality of the [dlep02] state machine and session handling, this document tries to reproduce the functionality with a stateless design similar to the mechanisms in [RFC6130] and [olsrv2]. If this aproach is adopted by the Working Group, parts of this document could be folded back into the draft-ietf-manet-dlep. Rogge Expires May 9, 2013 [Page 4] Internet-Draft Stateless RFC5444-DLEP November 2012 2. Terminology The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL NOT','SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document are to be interpreted as described in [RFC2119]. The terminology introduced in [RFC5444] and [RFC5497], including the terms "packet", "message", "Address Block", "TLV Block","TLV", "address", "address prefix", and "address object" are to be interpreted as described therein. Additionally, this document uses the following terminology and notational conventions: Order - This specification uses a single [RFC5444] Message Type to transmit several different kinds of information. The Order of the Message specifies the type of information that is contained in the Message. DLEP-router - a router which runs DLEP, also called Server in [dlep02]. DLEP-radio - a radio (or modem) which runs DLEP with one or more external layer-2 interfaces (e.g. WLAN interfaces). It also has a connection to attach a DLEP-router. A DLEP-radio is also called Client in [dlep02]. Radio Interface - an external interface of a DLEP-radio. Radio Interface ID - an unique 6 octet identifier for an radio interface of a DLEP-radio has. A DLEP-radio MAY use MAC-addresses as interface IDs. There MAY be special IDs for defining the receiving part of a multicast or broadcast transmission. Destination - A MAC-address of a device attached a DLEP-radio that can be reached through the radio interface of the DLEP-radio. This can be a unicast, multicast or broadcast MAC. Neighbor - A Destination that can be reached through a remote radio interface. Network - In the context of this document, a network is a group of layer-2 radio devices talking to each other. Rogge Expires May 9, 2013 [Page 5] Internet-Draft Stateless RFC5444-DLEP November 2012 3. Assumptions This protocol keeps most assumptions as defined in [dlep02]. [dlep02] and this specification assume that participating DLEP-radios appear to the DLEP-routers as a transparent bridge - specifically, the assumption is that the destination MAC address for data-plane traffic in any frame emitted by the DLEP-router should be the MAC address of the next-hop router or end-device, and not the MAC address of any of the intervening devices (like DLEP-radios). [dlep02] and this specification assume that security on the protocol (e.g. authentication of DLEP-radio/router, encryption of data- and/or control-plane traffic) is dealt with by the underlying transport mechanism for the [RFC5444] packets. As an alternative this specification would suggest using the signature support for [RFC5444] itself (as defined in [RFC6622]). [dlep02] and this specification assume that the DLEP-radios will be only connected to a single DLEP-router, not multiple devices. It might be investigate if this assumption can be relaxed later. This specification assumes that the DLEP-radio is capable to determine the Radio Interface IDs of the other side of the radio communication from the Ethernet destination MAC-address of packets incoming from the local DLEP-router. It also assumes that a DLEP- radio is capable to determine the source MAC-address of packets incoming through the DLEP-radios interface. This specification assumes that the control-plane of the DLEP-radio, which is used by this protocol, is separated by the data-plane from each other by some mechanism. Protocol traffic between DLEP-router and DLEP-radio will not interfere with data forwarded by the radio. Rogge Expires May 9, 2013 [Page 6] Internet-Draft Stateless RFC5444-DLEP November 2012 4. Protocol Overview and Functioning The objectives of this protocol are for each DLEP-radio to: o Announce its presence to the attached DLEP-router. o Provide each DLEP-router with Neighbor information present in its radio. o Provide each DLEP-router with network metrics and statistics. o Provide each DLEP-router with Neighbor radio link metrics and statistics. The objectives of this protocol are for each DLEP-router to: o Automatically discover the presence of DLEP-radio interfaces in the local network. o Get a list of all known Neighbors of each DLEP-radio interface. o Get a list of network metrics and statistics. o Get a list of Neighbor metrics and statistics. o Being able to configure the radios local interface. 4.1. Routers and Radios This specification describes two different kinds of protocol instances, DLEP-radios and DLEP-routers. Rogge Expires May 9, 2013 [Page 7] Internet-Draft Stateless RFC5444-DLEP November 2012 +--------+ ^ | DLEP | | | router | | +--------+ DLEP | | +--------+ | | DLEP | V | radio | +--------+ | | ------------ / \ +--------+ +-------+ | | +-------+ +--------+ | DLEP | | DLEP | | Radio | | DLEP | | DLEP | | router |-----| radio |--| |--| radio |-----| router | +--------+ +-------+ | Network | +-------+ +--------+ | | <==== DLEP ====> \ / <==== DLEP ====> ------------ Example of a radio network with three DLEP-radios and -routers. Figure 1 DLEP-radios are typically data-link layer forwarding devices. These devices are connected to a local router via a short distance and high speed link, often an Ethernet connection. They contain enough resources to provide extra services to the router, and they are often embedded computer systems on their own. DLEP-radios should split the connection between radio and router into separate control- and data-planes, to be able to bridge the data- plane directly to a radio interface without being influenced by the protocol traffic between DLEP-radio and the DLEP-router on the control-plane. DLEP-routers can detect and configure DLEP-radios via the described protocol. The router can use the protocol to gather interface and Neighbor information and access link-layer metrics and statistics in a hardware independent way, even with the radio hardware not built into the router. 4.2. Information Base Overview Both DLEP-radio and DLEP-router maintain the protocol state using Information Bases, described in the following section. Each Information Base consists of a number of Protocol Sets. Each Rogge Expires May 9, 2013 [Page 8] Internet-Draft Stateless RFC5444-DLEP November 2012 Protocol Set contains a number of Protocol Tuples. An implementation of this protocol may maintain this information in the indicated form, or in any other organization that offers access to this information. In particular, note that it is not necessary to remove Protocol Tuples from Protocol Sets at the exact time indicated, only to behave as if the Protocol Tuples were removed at that time. The Local Radio Information Base is maintained in the DLEP-radio and included in Interface Update and Neighbor Update Orders to the DLEP- router. Information in the Network Information Base on the DLEP- router is determined by received Interface Update and Neighbor Update Orders from the DLEP-radio. Such information has a limited duration in which it is considered valid. This duration is determined from the VALIDITY_TIME TLV in the Order in which the information is received, which in turn is set by the DLEP-radio that originated the Order, using its corresponding DLEP-radio parameter INTERFACE_UPDATE_HOLD_TIME and NEIGHBOR_UPDATE_HOLD_TIME. The Local Router Information Base is maintained in the DLEP-router and included in Setup Radio and Setup Destination Orders to the DLEP- radio. Information in the Configuration Information Base on the DLEP-radio originates from Setup Radio and Setup Destination Orders from the DLEP-router. Such information has a limited duration in which it is considered valid. This duration is determined from the VALIDITY_TIME TLV in the both Orders in which the information is received, which in turn is set by the DLEP-router that originated the Orders, using its corresponding DLEP-router parameter SETUP_RADIO_HOLD_TIME and SETUP_DESTINATION_HOLD_TIME. Information in the Configuration Information Base on the DLEP-radio is included in the Local Destination Order to the DLEP-router. Such information has a limited duration in which it is considered valid. This duration is determined from the VALIDITY_TIME TLV in the Local Destination Order in which the information is received, which in turn is set by the DLEP-router that originated the Local Destination Order, using its corresponding DLEP-radio parameter LOCAL_DESTINATION_HOLD_TIME. 4.3. Signaling Overview This protocol contains a signaling mechanism for maintaining the Configuration Information Base and the Network Information Base. Rogge Expires May 9, 2013 [Page 9] Internet-Draft Stateless RFC5444-DLEP November 2012 4.3.1. Automatic Radio Interface Discovery As in [dlep02], this specification contains an automatic discovery mechanism, that allows a DLEP-router to detect the presence of one or multiple DLEP-radio interfaces. To enable the DLEP-router to do this, this specification uses a single Order, the Interface Update Order. This Order combines the Peer Discovery, Peer Offer, Peer Update (ACK), Peer Termination (ACK), and Heartbeat messages of [dlep02]. Because of a validity time based mechanism, this obsoletes the internal state machine of [dlep02]. For the content of the Interface Update Order, see Section 4.3.3 4.3.2. Setup Radio This specification allows the DLEP-router to configure DLEP-radio interface settings. In this document, there are two Orders to configure the DLEP-radio, the Setup Radio Order and the Setup Destination Order. The Setup Radio Order allows the DLEP-router to set the status of the DLEP-radio interface to UP or DOWN. The Setup Destination Order adds a local Destination to a DLEP-radio interface, with IP-prefixes attached to this Destination (if known). This data is used by some radios to transport the MAC-address and IP prefixes of their attached Destinations to each other within the layer-2 protocol, to avoid an Address Resolution Protocol (ARP) exchange over the radio. 4.3.3. Interface Updates DLEP-radios transmit a list of its interfaces and data about the interface's status, description and network metrics and statistics with the Interface Update Order. The Order contains the Radio Interface ID that is described in the Order, the status of the interface (up or down) and an optional textual description of this radios interface (e.g. Company XYZ Software Defined Radio ABC line 1). It also contains interface specific metrics and statistics. This data will be sent by DLEP-radios in regular intervals, at least once every INTERFACE_UPDATE_INTERVAL. Rogge Expires May 9, 2013 [Page 10] Internet-Draft Stateless RFC5444-DLEP November 2012 4.3.4. Local Destinations DLEP-radios transmit the currently configured Destination of the local router back to the router to acknowledge the configuration with the Local Destination Order. The Order contains the MAC-address of the locally configured Destination, the its local Radio Interface ID and the IP-prefixes of the Destination (if known). This data will be sent by DLEP-radios in Local Destination Orders in regular intervals, at least once every LOCAL_DESTINATION_INTERVAL. 4.3.5. Neighbor Updates Modern IP-capable radios are able to collect lots of PHY- and link- layer data about their connections to other radios in range and the Destinations behind them. The Neighbor Update Order contains the known configuration (MAC- and IP-addresses), status and attributes (e.g. link statistics and metrics) of a radio connection between the local DLEP-radio interface and a Neighbor. This data will be sent by DLEP-radios in Neighbor Update Orders in regular intervals, at least once every NEIGHBOR_UPDATE_INTERVAL. Rogge Expires May 9, 2013 [Page 11] Internet-Draft Stateless RFC5444-DLEP November 2012 5. Protocol Parameters 5.1. Port Number and Multicast Address While [dlep02] is likely to be designed to be transport independent, DLEP over UDP will be a common use case, so DLEP MUST specify a default UDP port number and a Linklocal Multicast address to be used. If an existing port and Multicast address can be reused or not is out of scope for this specification. 5.2. DLEP-Radio Parameters There are several parameters that MUST be set on a DLEP-radio. INTERFACE_UPDATE_INTERVAL: The maximum time between the transmission of two successive Interface Update Orders for the same DLEP-radio interface, possibly modified by jitter as specified in [RFC5148]. LOCAL_DESTINATION_INTERVAL: The maximum time between the transmission of two successive Local Destination Orders for the same DLEP-radio interface, possibly modified by jitter as specified in [RFC5148]. NEIGHBOR_UPDATE_INTERVAL: The maximum time between the transmission of two successive Neighbor Update Orders for the same DLEP-radio interface, possibly modified by jitter as specified in [RFC5148]. INTERFACE_UPDATE_HOLD_TIME: Used as the Value in the VALIDITY_TIME Message TLV included in all Interface Update Orders. It is then used by the DLEP-router receiving such an Order to indicate the validity of the information taken from that Order and recorded in the receiving DLEP-router's Network Information Base. LOCAL_DESTINATION_HOLD_TIME: Used as the Value in the VALIDITY_TIME Message TLV included in all Local Destination Orders. It is then used by the DLEP-router receiving such an Order to indicate the validity of the information taken from that Order and recorded in the receiving DLEP-router's Network Information Base. Rogge Expires May 9, 2013 [Page 12] Internet-Draft Stateless RFC5444-DLEP November 2012 NEIGHBOR_UPDATE_HOLD_TIME: Used as the Value in the VALIDITY_TIME Message TLV included in all Neighbor Update Orders. It is then used by the DLEP-router receiving such an Order to indicate the validity of the information taken from that Order and recorded in the receiving DLEP-router's Network Information Base. DEFAULT_INTERFACE_STATE: Defines the default status of the interfaces of a DLEP-radio. It MUST be UP or DOWN. The following constraints apply to these DLEP-radio parameters: o INTERFACE_UPDATE_INTERVAL > 0 o LOCAL_DESTINATION_INTERVAL > 0 o NEIGHBOR_UPDATE_INTERVAL > 0 o INTERFACE_UPDATE_HOLD_TIME > INTERFACE_UPDATE_INTERVAL o LOCAL_DESTINATION_HOLD_TIME > LOCAL_DESTINATION_INTERVAL o NEIGHBOR_UPDATE_HOLD_TIME > NEIGHBOR_UPDATE_INTERVAL 5.3. DLEP-Router Parameters There are several parameters that MUST be set on a DLEP-router. SETUP_RADIO_INTERVAL: The maximum time between the transmission of two successive Setup Radio Orders, possibly modified by jitter as specified in [RFC5148]. SETUP_LOCAL_DESTINATION_INTERVAL: The maximum time between the transmission of two successive Setup Destination Orders, possibly modified by jitter as specified in [RFC5148]. SETUP_RADIO_HOLD_TIME: Used as the Value in the VALIDITY_TIME Message TLV included in all Setup Radio Orders. It is then used by the DLEP-radio receiving such an Order to indicate the validity of the information taken Rogge Expires May 9, 2013 [Page 13] Internet-Draft Stateless RFC5444-DLEP November 2012 from that Order and recorded in the receiving DLEP-radio's Information Bases. SETUP_LOCAL_DESTINATION_HOLD_TIME: Used as the Value in the VALIDITY_TIME Message TLV included in all Setup Destination Orders. It is then used by the DLEP-radio receiving such an Order to indicate the validity of the information taken from that Order and recorded in the receiving DLEP-radio's Information Bases. The following constraints apply to these DLEP-router parameters: o SETUP_RADIO_INTERVAL > 0. o SETUP_RADIO_HOLD_TIME > SETUP_RADIO_INTERVAL. o SETUP_LOCAL_DESTINATION_INTERVAL > 0. o SETUP_LOCAL_DESTINATION_HOLD_TIME > SETUP_LOCAL_DESTINATION_INTERVAL. Rogge Expires May 9, 2013 [Page 14] Internet-Draft Stateless RFC5444-DLEP November 2012 6. Local Radio Information Base The DLEP-radio maintains a Local Radio Information Base that records a list of locally defined or collected data about the DLEP-radio's interfaces and its connected neighbors. The Local Radio Information Base is not modified by signaling. If a DLEP-radio's interface configuration changes, then the Local Radio Information Base MUST reflect these changes. This MAY also result in signaling to advertise these changes. 6.1. Local Interface Set A DLEP-radio's Local Interface Set records the existing local interfaces, their default status and their description. It consists of Local Interface Tuples, one per existing local interface: (LI_radio_interface_id, LI_default_status, LI_description) where: LI_radio_interface_id is the Radio Interface ID of the local radio interface. LI_default_status is the default status of the radio interface if not configured by the DLEP-router. LI_description is a textual description of the radio interface with a maximum of 80 octets without ending zero byte. It MAY be NONE. LI_radio_interface_id is the unique key of this set, there MUST NOT be two tuples with the same unique key in the set. 6.2. Interface Neighbor Set A DLEP-radios's Interface Neighbor Set records the known other DLEP- radios in communication range and the addresses of the neighbors reachable through this radios. It consists of Interface Neighbor Tuples, one per known neighbor of a local interface: (IN_radio_interface_id, IN_neighbor_interface_id, IN_mac_address, IN_ipv4_prefixes, IN_ipv6_prefixes) where: IN_radio_interface_id is a six octet unique Radio Interface ID of the local interface for this neighbor. Rogge Expires May 9, 2013 [Page 15] Internet-Draft Stateless RFC5444-DLEP November 2012 IN_neighbor_interface_id is a Radio Interface ID of the neighbors DLEP-radio's interface, it MAY be NONE (or a special ID) for a broadcast or multicast neighbor. IN_mac_address is the six octet MAC address of the neighbor. IN_ipv4_prefixes is a list of known IPv4 prefixes of this neighbor. It MAY be empty. IN_ipv6_prefixes is a list of known IPv6 prefixes of this neighbor. It MAY be empty. (IN_radio_interface_id, IN_neighbor_interface_id, IN_mac_address) is the unique key of this set, there MUST NOT be two tuples with the same unique key in the set. 6.3. Lost Neighbor Set When a radio interface's neighbor becomes unreachable, a DLEP-radio's Lost Neighbor Set records this for at least INTERFACE_UPDATE_HOLD_TIME. It consists of Lost Neighbor Tuples, one per lost neighbor of a local radio interface: (LN_radio_interface_id, LN_neighbor_interface_id, LN_mac_address) where: LN_radio_interface_id is a six octet unique Radio Interface ID of the local interface for the lost neighbor. LN_neighbor_interface_id is a six octet unique Radio Interface ID of the lost neighbors DLEP-radio's interface, it MAY be NONE for a broadcast or multicast neighbor. LN_mac_address is the six octet MAC address of the lost neighbor. There MUST NOT be two tuples with the same data in the set. 6.4. Interface Data Set A DLEP-radio's Interface Data Set records attributes (e.g. statistics or metrics) of its local radio interfaces and their attached networks. It consists of Interface Data Tuples: (ID_radio_interface_id, ID_data_type, ID_data_value) where: Rogge Expires May 9, 2013 [Page 16] Internet-Draft Stateless RFC5444-DLEP November 2012 ID_radio_interface_id is a Radio Interface ID of a local radio interface. ID_data_type is the type of data stored. It MUST be an extension type of the NETWORK_DATA Address TLV. ID_data_value is the data corresponding to this tuple's key. Its format is defined in the NETWORK_DATA Address TLV values. (ID_radio_interface_id, ID_data_type) is the unique key of this set, there MUST NOT be two tuples with the same unique key in the set. 6.5. Neighbor Data Set A DLEP-radio's Neighbor Data Set records attributes (e.g. statistics or metrics) of a connection to a Neighbor. It consists of Neighbor Data Tuples: (ND_radio_interface_id, ND_neighbor_interface_id, ND_mac_address, ND_data_type, ND_data_value) where: ND_radio_interface_id is a Radio Interface ID of the local interface for this neighbor. ND_neighbor_interface_id is a Radio Interface ID of the neighbors DLEP-radio's interface, it MAY be NONE for a broadcast or multicast neighbor. ND_mac_address is the six octet MAC address of the neighbor. ND_data_type is the type of data stored. It MUST be an extension type of the NEIGHBOR_DATA Address TLV. ND_data_value is the data corresponding to this tuples key. Its format is defined in the NEIGHBOR_DATA Address TLV values. (ND_radio_interface_id, ND_neighbor_interface_id, ND_mac_address, ND_data_type) is the unique key of this set, there MUST NOT be two tuples with the same unique key in the set. Rogge Expires May 9, 2013 [Page 17] Internet-Draft Stateless RFC5444-DLEP November 2012 7. Configuration Information Base The DLEP-radio maintains a Configuration Information Base that records the configuration settings of the DLEP-router for each interface. The Configuration Information Base is modified by Setup Radio and Setup Destination Orders from the DLEP-router. If a Configuration Information Base changes, then the local configuration of the interface MUST reflect this change. This MAY also result in signaling to advertise these changes. 7.1. Interface Configuration Set A DLEP-radio's Interface Configuration Set records the status of the local DLEP-radio interfaces as configured by the DLEP-router. It consists of Interface Configuration Tuples, one for each local interface: (IC_radio_interface_id, IC_radio_status, IC_time) where: IC_radio_interface_id is a Radio Interface ID of a local radio interface. IC_radio_status is the status of the local radio interface. It MUST be "up" or "down". IC_time is the time when this tuple MUST be removed. IC_radio_interface_id is the unique key of this set, there MUST NOT be two tuples with the same unique key in the set. 7.2. Local Destination Set A DLEP-radio's Local Destination Set records the known local destinations of local radio interfaces set by the connected DLEP- router. It consists of Local Destination Tuples: (LD_radio_interface_id, LD_mac_address, LD_ipv4_prefixes, LD_ipv6_prefixes, LD_time) where: LD_radio_interface_id is a Radio Interface ID of a local radio interface. Rogge Expires May 9, 2013 [Page 18] Internet-Draft Stateless RFC5444-DLEP November 2012 LD_mac_address is the MAC address of the Destination. LD_ipv4_prefixes is a list of IPv4 prefixes of the Destination. It MAY be empty. LD_ipv6_prefixes is a list of IPv6 prefixes of the Destination. It MAY be empty. LD_time is the time when this tuple MUST be removed. (LD_radio_interface_id, LD_mac_address) is the unique key of this set, there MUST NOT be two tuples with the same unique key in the set. Rogge Expires May 9, 2013 [Page 19] Internet-Draft Stateless RFC5444-DLEP November 2012 8. Local Router Information Base The DLEP-router maintains a Local Router Information Base that records the radio interface status and the local Destinations for a DLEP-radio. The Local Router Information Base is not modified by signaling. If a DLEP-router's configuration changes, then the Local Router Information Base MUST reflect these changes. This MAY also result in signaling to advertise these changes. 8.1. Radio Interface Configuration Set A DLEP-router's Radio Interface Configuration Set records the radio interface status, up or down, to be configured on a DLEP-radio. It consists of Radio Interface Configuration Tuples, up to one for each DLEP-radio interface connected to the DLEP-router: (RIC_radio_interface_id, RIC_status) where: RIC_radio_interface_id is the Radio Interface ID of an attached DLEP-radio. RIC_status is the desired status of the DLEP-radio interface. MUST be UP or DOWN. RIC_radio_interface_id is the unique key of this set, there MUST NOT be two tuples with the same unique key in the set. 8.2. Destination Configuration Set A DLEP-router's Destination Configuration Set records the local Destinations to be configured on a DLEP-radio interface. It consists of Destination Configuration Tuples, up to one for each Destination of a DLEP-radio interface connected to the DLEP-router: (DC_radio_interface_id, DC_mac_address, DC_ipv4_prefixes, DC_ipv6_prefixes) where: DC_radio_interface_id is the Radio Interface ID of an attached DLEP-radio interface. DC_mac_address is the MAC-address of Destination for the DLEP- radio interface. Rogge Expires May 9, 2013 [Page 20] Internet-Draft Stateless RFC5444-DLEP November 2012 DC_ipv4_prefixes is a list of IPv4 prefixes of Destination for the DLEP-radio interface. MAY be empty. DC_ipv6_prefixes is a list of IPv6 prefixes of Destination for the DLEP-radio interface. MAY be empty. (DC_radio_interface_id, DC_mac_address) is the unique key of this set, there MUST NOT be two tuples with the same unique key in the set. Rogge Expires May 9, 2013 [Page 21] Internet-Draft Stateless RFC5444-DLEP November 2012 9. Network Information Base A DLEP-router maintains a Network Information Base that records all collected information transmitted by the attached DLEP-radios. This consists both of information about the settings of the local interfaces of the DLEP-radios, metrics and statistics about the network attached to the local interfaces and metrics and statistics about neighbors. The Network Information Base is modified by Interface Update, Local Destination, and Neighbor Update Orders from the DLEP-radio. If the Network Information Base changes, this MAY trigger changes in the DLEP-router. 9.1. Discovered Interface Set A DLEP-router's Discovered Interface Set records the attached Radio Interface IDs, the status and description of the DLEP-radio interfaces. It consists of Discovered Interface Tuples, one for each discovered DLEP-radio interface: (DI_radio_interface_id, DI_radio_status, DI_description, DI_time) where: DI_radio_interface_id is the Radio Interface ID of the discovered DLEP-radio interface. DI_radio_status is the current status of the interface. MUST be UP or DOWN. DI_description is a textual description of the radio interface of up to 80 characters without zero byte ending. DI_time is the time when this tuple MUST be removed. DI_radio_interface_id is the unique key of this set, there MUST NOT be two tuples with the same unique key in the set. 9.2. Network Local Destination Set A DLEP-router's Network Local Destination Set records the DLEP-radio interface's configured local Destinations. It consists of Network Local Destination Tuples, one for each DLEP-radio interface's local Destination: (NLD_radio_interface_id, NLD_mac_address, NLD_ipv4_prefixes, NLD_ipv6_prefixes, NLD_time) Rogge Expires May 9, 2013 [Page 22] Internet-Draft Stateless RFC5444-DLEP November 2012 where: NLD_radio_interface_id is the Radio Interface ID of the local Destination's radio interface. NLD_mac_address is the six octet MAC-address of the local Destination. NLD_ipv4_prefixes is a list of IPv4 prefixes configured for the local Destination, MAY be empty. NLD_ipv6_prefixes is a list of IPv6 prefixes configured for the local Destination, MAY be empty. NLD_time is the time when this tuple MUST be removed. (NLD_radio_interface_id, NLD_mac_address) is the unique key of this set, there MUST NOT be two tuples with the same unique key in the set. 9.3. Network Interface Data Set A DLEP-router's Network Interface Data Set records a list of attributes known about a DLEP-radio's interface (e.g. interface statistics and radio attributes). It consists of Network Interface Data Tuples: (NID_radio_interface_id, NID_data_type, NID_data_value, NID_time) where: NID_radio_interface_id is the Radio Interface ID of the DLEP- radio's interface. NID_data_type is the type of data stored. It MUST be an extension type of the NETWORK_DATA Address TLV. NID_data_value is the data corresponding to this tuples key. Its format is defined in the NETWORK_DATA Address TLV values. NID_time is the time when this tuple MUST be removed. (NID_radio_interface_id, NID_data_type) is the unique key of this set, there MUST NOT be two tuples with the same unique key in the set. Rogge Expires May 9, 2013 [Page 23] Internet-Draft Stateless RFC5444-DLEP November 2012 9.4. Network Neighbor Set A DLEP-router's Network Neighbor Set records the known configuration and status of each neighbor of a DLEP-radio interface. It consists of Network Neighbor Tuples, one for each neighbor or a radio interface: (NN_radio_interface_id, NN_neighbor_interface_id, NN_mac_address, NN_status, NN_ipv4_prefixes, NN_ipv6_prefixes, NN_time) where: NN_radio_interface_id is the Radio Interface ID of the DLEP-radio interface. NN_neighbor_interface_id is the Radio Interface ID of the neighbors DLEP-radio interface. NN_mac_address is the MAC-address of the neighbor. NN_status is the status of the neighbors radio interface. MUST be UP or DOWN. NN_ipv4_prefixes is a list of IPv4 prefixes of the neighbor. MAY be EMPTY. NN_ipv6_prefixes is a list of IPv6 prefixes of the neighbor. MAY be EMPTY. (NN_radio_interface_id, NN_neighbor_interface_id, NN_mac_address) is the unique key of this set, there MUST NOT be two tuples with the same unique key in the set. 9.5. Network Neighbor Data Set A DLEP-router's Network Neighbor Data Set records a list of attributes known about a DLEP-radio interface's neighbor (e.g. link statistics and metrics). It consists of Network Neighbor Data Tuples: (NND_radio_interface_id, NND_neighbor_interface_id, NND_mac_address, NND_data_type, NND_data_value, NND_time) where: NND_radio_interface_id is the Radio Interface ID of the DLEP-radio interface. Rogge Expires May 9, 2013 [Page 24] Internet-Draft Stateless RFC5444-DLEP November 2012 NND_neighbor_interface_id is the Radio Interface ID of the neighbors DLEP-radio interface. NND_mac_address is the MAC-address of the neighbor. NND_data_type is the type of data stored. It MUST be an extension type of the NEIGHBOR_DATA Address TLV. NND_data_value is the data corresponding to this tuples key. Its format is defined in the NEIGHBOR_DATA Address TLV values. NND_time is the time when this tuple MUST be removed. (NND_radio_interface_id, NND_neighbor_interface_id, NND_mac_address, NND_data_type) is the unique key of this set, there MUST NOT be two tuples with the same unique key in the set. Rogge Expires May 9, 2013 [Page 25] Internet-Draft Stateless RFC5444-DLEP November 2012 10. Local Radio Information Base Changes The Local Radio Information Base MUST be updated in response to changes in the DLEP-radio's local interface configuration. A DLEP-radio MAY transmit Interface Update and Neighbor Update Orders in response to these changes. 10.1. New Radio Interface Neighbor If a new Neighbor is discovered on a DLEP-radio interface, this MUST result in changes to the Local Radio Information Base Define o neighbor_local_interface_id := the local Radio Interface ID of the former neighbor. o neighbor_remote_interface_id := the Radio Interface ID of the neighbors DLEP-radio interface, MAY be NONE or a special ID for multicast and broadcast Neighbors. o neighbor_mac_address := the MAC-address of the neighbor. o neighbor_ipv4_prefixes := the list of known IPv4 prefixes of the neighbor. o neighbor_ipv6_prefixes := the list of known IPv6 prefixes of the neighbor. Then change the information base as follows: 1. Remove all Lost Neighbor Tuple with: * LN_radio_interface_id = neighbor_local_interface_id AND * LN_neighbor_interface_id = neighbor_remote_interface_id AND * LN_mac_address = neighbor_mac_address. 2. Add an Interface Neighbor Tuple with: * IN_radio_interface_id := neighbor_local_interface_id. * IN_neighbor_interface_id := neighbor_remote_interface_id. * IN_mac_address := neighbor_mac_address. Rogge Expires May 9, 2013 [Page 26] Internet-Draft Stateless RFC5444-DLEP November 2012 * IN_ipv4_prefixes := neighbor_ipv4_prefixes. * IN_ipv6_prefixes := neighbor_ipv6_prefixes. The change MAY also trigger a Neighbor Update Order. 10.2. Lost Radio Interface Neighbor If an existing neighbor is lost on a DLEP-radio interface, this MUST result in change of the Local Radio Information Base. Define o neighbor_local_interface_id := the local Radio Interface ID of the former neighbor. o neighbor_remote_interface_id := the Radio Interface ID of the former neighbor's radio interface. o neighbor_mac_address := the MAC-address of the neighbor. Then change the information base as follows: 1. Remove an existing Interface Neighbor Tuple with: * IN_radio_interface_id = neighbor_local_interface_id AND * IN_neighbor_interface_id = neighbor_remote_interface_id AND * IN_mac_address = neighbor_mac_address. 2. Remove all Neighbor Data Tuples with: * ND_radio_interface_id = neighbor_local_interface_id AND * ND_neighbor_interface_id = neighbor_remote_interface_id AND * ND_mac_address = neighbor_mac_address. 3. Add a Lost Neighbor Tuple with: * LN_radio_interface_id := NI_radio_interface_id. * LN_neighbor_interface_id := NI_neighbor_interface_id. * LN_mac_address := NI_mac_address. Rogge Expires May 9, 2013 [Page 27] Internet-Draft Stateless RFC5444-DLEP November 2012 * LN_time := current + NEIGHBOR_UPDATE_HOLD_TIME. The change MAY also trigger an Interface Update Order. 10.3. Radio Interface Status The DLEP-radio interface status is determined by two sources, the default radio interface status and the status configured by a DLEP- router. Determine the actual status as follows: Define radio_interface_id as the ID of the radio interface which status will be determined. If there is an Interface Configuration Tuple with o IC_radio_interface_id = radio_interface_id, set the radio status to IC_radio_status. Otherwise, find the Local Interface Tuple with o LI_radio_interface_id = radio_interface_id and set the radio interface status to LI_default_status. Rogge Expires May 9, 2013 [Page 28] Internet-Draft Stateless RFC5444-DLEP November 2012 11. Packets and Messages The packet and message format used by this protocol is defined in [RFC5444], which is used with the following considerations: o This protocol specifies one Message Type, the DLEP message. o A DLEP message MAY use any combination of Message Header options specified in [RFC5444]. o DLEP messages MUST NOT be forwarded, i.e., a , if present, MUST have the value 1. o DLEP messages MAY be included in multi-message packets as specified in [RFC5444]. o Received DLEP messages MUST be parsed in accordance with [RFC5444]. A DLEP message that is not in conformance with [RFC5444] MUST be discarded without being processed. o This protocol specifies five new Address Block TLVs and one new Message TLV. o This protocol uses one Message TLVs defined in [RFC5497], the VALIDITY_TIME TLV. This specified protocol defines and owns the DLEP Message Type (see Section 17). Thus, as specified in [RFC5444] this protocol generates and transmits all DLEP messages, receives all DLEP messages and is responsible for determining whether and how each DLEP message is to be processed. 11.1. DLEP Messages A DLEP Message MUST contain: o An address length of 6, meaning msg-addr-length (as defined in [RFC5444]) must be 5. o Exactly one Message TLV with Type = VALIDITY_TIME as defined in [RFC5497]. o Exactly one Message TLV with Type = ORDER. Each Address in a DLEP message MUST: o have zero or one TLV with Type = ADD_ADDRESS and the same Extension Type. Rogge Expires May 9, 2013 [Page 29] Internet-Draft Stateless RFC5444-DLEP November 2012 o have zero or one TLV with Type = NETWORK_DATA and the same Extension Type. o have zero or one TLV with Type = NEIGHBOR_DATA and the same Extension Type. o have zero or one TLV with Type = DESCRIPTION. DLEP Messages that do not obey this rules MUST be discarded without further processing. A DLEP Message MAY contain: o Other Message TLVs. o One or more Address Blocks, each with an associated Address Block TLV Block, which MAY contain other Address Block TLVs. 11.1.1. DLEP Message Orders This protocol uses several messages with different semantics. Instead of allocating a Message-Type for each of them, this specification use the ORDER Message TLV to define an extension type for the single Message-Type it uses. (see Table 2) 11.2. Message TLVs The ORDER Message TLV MUST be used in all DLEP Messages. A message MUST NOT contain more than one ORDER TLV. +-------+--------+--------------------------------------------------+ | Type | Value | Value | | | Length | | +-------+--------+--------------------------------------------------+ | ORDER | 1 | Specifies the ORDER of a DLEP Message, which in | | | | turn defines the context for the rest of the | | | | Message. | +-------+--------+--------------------------------------------------+ Table 1: ORDER TLV definition There are five types of ORDER defined in this document. Rogge Expires May 9, 2013 [Page 30] Internet-Draft Stateless RFC5444-DLEP November 2012 +-------------------+-------------+---------------------------------+ | ORDER value | Originator | Description | +-------------------+-------------+---------------------------------+ | INTERFACE_UPDATE | DLEP-radio | Updates the data of one or more | | | | radio interfaces. | | | | | | LOCAL_DESTINATION | DLEP-radio | Publishes the locally set | | | | Destinations of the radio | | | | interface. | | | | | | NEIGHBOR_UPDATE | DLEP-radio | Updates the data of one or more | | | | neighbors of a radio interface. | | | | | | SETUP_RADIO | DLEP-router | Configures a the interface | | | | settings of one or more radio | | | | interfaces. | | | | | | SETUP_DESTINATION | DLEP-router | Adds local Destinations to one | | | | or more DLEP-radio interfaces. | +-------------------+-------------+---------------------------------+ Table 2: Types of ORDERs in DLEP Messages 11.3. Address Block TLVs The RADIOIF_STATUS TLV is used in all three Orders. An Address of a DLEP Message MUST NOT contain more than one RADIOIF_STATUS TLV. +----------------+------------+-------------------------------------+ | Type | Value | Value | | | Length | | +----------------+------------+-------------------------------------+ | RADIOIF_STATUS | 1 | Specifies that the interface is UP | | | | or DOWN. | +----------------+------------+-------------------------------------+ Table 3: RADIOIF_STATUS TLV definition The DESCRIPTION TLV is used in the in the Interface Update Order. An Address of an Interface Update Order MUST NOT contain more than one DESCRIPTION TLV. Rogge Expires May 9, 2013 [Page 31] Internet-Draft Stateless RFC5444-DLEP November 2012 +-------------+--------+--------------------------------------------+ | Type | Value | Value | | | Length | | +-------------+--------+--------------------------------------------+ | DESCRIPTION | 1-80 | Specifies a human readable ASCII | | | | identifier for a DLEP-radio interface | | | | without added zero byte. | +-------------+--------+--------------------------------------------+ Table 4: DESCRIPTION TLV definition The ADD_ADDRESS TLV is used in the Local Destination, the Neighbor Update and the Setup Destination Order. An Address of a DLEP Message MUST NOT contain multiple ADD_ADDRESS TLVs with the same Extension Types. +-------------+-------------+--------+------------------------------+ | Type | Ext-Type | Value | Value | | | | Length | | +-------------+-------------+--------+------------------------------+ | ADD_ADDRESS | MAC | x*6 | A list of MAC-addresses | | | | octets | attached to the address | | | | | object. | | | | | | | ADD_ADDRESS | IPV4_PREFIX | x*5 | A list of IPv4 prefixes | | | | octets | attached to the address | | | | | object. Every IPv4 address | | | | | is followed by a one octet | | | | | prefix length (0-32) in the | | | | | list. | | | | | | | ADD_ADDRESS | IPV6_PREFIX | x*17 | A list of IPv6 prefixes | | | | octets | attached to the address | | | | | object. Every IPv4 address | | | | | is followed by a one octet | | | | | prefix length (0-128) in the | | | | | list. | +-------------+-------------+--------+------------------------------+ Table 5: ADD_ADDRESS TLV definition The NETWORK_DATA TLV is used in the Interface Update Order. An Interface Update Order Address MUST NOT contain more than one NETWORK_DATA TLV with the same Type Extension. Rogge Expires May 9, 2013 [Page 32] Internet-Draft Stateless RFC5444-DLEP November 2012 +--------------+-----------------+--------+-------------------------+ | Type | Ext-Type | Value | Value | | | | Length | | +--------------+-----------------+--------+-------------------------+ | NETWORK_DATA | NETWORK_ID | 1-16 | Binary identifier of a | | | | | radio network (e.g. | | | | | BSSID). | | | | | | | NETWORK_DATA | NETWORK_DESCR | 1-80 | ASCII identifier of a | | | | | radio network without | | | | | added zero byte (e.g. | | | | | SSID) | | | | | | | NETWORK_DATA | SUPPORTED_RATES | x*8 | Array of supported data | | | | | rates of the network an | | | | | interface is attached | | | | | to as an array of 8 | | | | | octet unsigned integers | | | | | in bit/s. | | | | | | | NETWORK_DATA | RESOURCES | 2 | The first octet | | | | | contains an estimate of | | | | | the resources left, | | | | | between 0 (no resources | | | | | left) and 100 (all | | | | | resources left). The | | | | | second octet is 0 if | | | | | the radio has limited | | | | | resources or 1 if the | | | | | resources are unlimited | | | | | and/or the resources | | | | | are currently being | | | | | recharged by an | | | | | external source. | | | | | | | NETWORK_DATA | LAST_ACTIVE | 4 | Time since the last | | | | | data was sent or | | | | | received over a radio | | | | | interface as an | | | | | unsigned integer in | | | | | milliseconds. | | | | | | | NETWORK_DATA | FREQUENCY | 8 | Mid frequency of a | | | | | radio interface channel | | | | | as an unsigned integer | | | | | in Hertz. | | | | | | Rogge Expires May 9, 2013 [Page 33] Internet-Draft Stateless RFC5444-DLEP November 2012 | NETWORK_DATA | BANDWIDTH | 8 | Amount of spectrum | | | | | (frequency range) of a | | | | | radio interface channel | | | | | as an unsigned integer | | | | | in Hertz. | +--------------+-----------------+--------+-------------------------+ Table 6: NETWORK_DATA TLV definition The NEIGHBOR_DATA TLV is used in the Neighbor Update Order. An Network Update Order Address MUST NOT contain more than one NEIGHBOR_DATA TLV with the same Type Extension. +---------------+------------------+--------+-----------------------+ | Type | Ext-Type | Value | Value | | | | Length | | +---------------+------------------+--------+-----------------------+ | NEIGHBOR_DATA | RELATIVE_LQ | 1 | Estimate of the | | | | | quality of a link | | | | | between 0 (worst) and | | | | | 100 (best). | | | | | | | NEIGHBOR_DATA | MAXIMUM_DATARATE | 8+8 | Maximum possible link | | | | | speed as 8 octet | | | | | unsigned integer in | | | | | bits/s. First value | | | | | is receiving speed, | | | | | second is | | | | | transmitting speed. | | | | | | | NEIGHBOR_DATA | CURRENT_DATARATE | 8+8 | Current link speed as | | | | | 8 octet unsigned | | | | | integer in bits/s. | | | | | First value is | | | | | receiving speed, | | | | | second is | | | | | transmitting speed. | | | | | | | NEIGHBOR_DATA | TRAFFIC | 8+8 | Number of bytes | | | | | exchanged with a | | | | | neighbor since link | | | | | went up as 8 octet | | | | | unsigned integer in | | | | | bytes. First value is | | | | | received bytes, | | | | | second is transmitted | | | | | bytes. | | | | | | Rogge Expires May 9, 2013 [Page 34] Internet-Draft Stateless RFC5444-DLEP November 2012 | NEIGHBOR_DATA | PACKETS | 8+8 | Number of IP packets | | | | | exchanged with a | | | | | neighbor since link | | | | | went up as 8 octet | | | | | unsigned integer in | | | | | bytes. First value is | | | | | received packets, | | | | | second is transmitted | | | | | packets. | | | | | | | NEIGHBOR_DATA | FRAMES | 8+8 | Number of link-layer | | | | | frames exchanged with | | | | | a neighbor since link | | | | | went up as 8 octet | | | | | unsigned integer in | | | | | bytes. First value is | | | | | received frames, | | | | | second is transmitted | | | | | frames. | | | | | | | NEIGHBOR_DATA | TX_RETRIES | 8 | Number of link-layer | | | | | retransmissions of | | | | | the same IP packet | | | | | since link went up as | | | | | unsigned integer. | | | | | | | NEIGHBOR_DATA | TX_FAILS | 8 | Number of permanent | | | | | link-layer | | | | | transmission failures | | | | | of an IP packet since | | | | | the link went up as | | | | | unsigned integer. | | | | | | | NEIGHBOR_DATA | LAST_ACTIVE | 4 | Time since the last | | | | | data was exchanged as | | | | | an unsigned integer | | | | | in milliseconds. | +---------------+------------------+--------+-----------------------+ Table 7: NEIGHBOR_DATA TLV definition Rogge Expires May 9, 2013 [Page 35] Internet-Draft Stateless RFC5444-DLEP November 2012 12. Interface Update Order The Interface Update Order is sent by DLEP-radios in regular intervals, at least once every INTERFACE_UPDATE_INTERVAL. An Interface Update Order contains the description, status and attributes (e.g. interface metrics and statistics) of one or more DLEP-radio interfaces. This allows the DLEP-router to receive the whole data generated from the radio about each interface of the DLEP- radio in an atomic way. The Interface Update Order MUST be generated by the DLEP-radio periodically. While it is allowed to split the Interface Updates for multiple DLEP-radio interfaces into more than one Interface Update Order, each Local Interface Tuple MUST be sent once in an Interface Update Order within INTERFACE_UPDATE_INTERVAL. The Interface Update Order includes a list of Radio Interface IDs as address objects. For each address, the Interface Update Order MUST contain the RADIOIF_STATUS Address TLV, which specifies if the radio interface is up or down. For each address, it MAY contain one DESCRIPTION TLV with a textual description of the radio interface. For each address, it MAY contain one NETWORK_DATA Address TLV for each Extension-Type, which will specify the known statistics and metrics of the radio interface. 12.1. Interface Update Order Generation Each DLEP-radio MUST generate Interface Update Orders according to the specification in this section. Define interface_set as a subset of the Local Interface Set, which MUST contain at least one Local Interface Tuple. Each Interface Update Order MUST contain the following additional elements: o A Message TLV with Type := ORDER and Value := INTERFACE_UPDATE. o A Message TLV with Type := VALIDITY_TIME (as specified in [RFC5497]) with Value := INTERFACE_UPDATE_HOLD_TIME (encoded as specified in [RFC5497]). Rogge Expires May 9, 2013 [Page 36] Internet-Draft Stateless RFC5444-DLEP November 2012 o For each Local Interface Tuple in interface_set, add LI_radio_interface_id as an address object (as defined in [RFC5444]) and apply the following steps: 1. If LI_description is not NONE, add an Address TLV with Type := DESCRIPTION and Value := LI_description. 2. Add an Address TLV with Type := RADIOIF_STATUS. If there is an Interface Configuration Tuple with IC_radio_interface_id = LI_radio_interface_id, set Value := IC_radio_status. Otherwise, set Value := LI_default_status. 3. For each Interface Data Tuple with ID_radio_interface_id = LI_radio_interface_id, add an Address TLV with Type := NETWORK_DATA, Extension Type := ID_data_type and Value := ID_data_value. 12.2. Interface Update Order Processing An Interface Update Order is processed on the DLEP-router as follows: 1. Define validity_time as the Value of the Message TLV with Type = VALIDITY_TIME. 2. For each address object interface_id that has an Address TLV with Type = RADIOIF_STATUS, 1. Define interface_status as the Value of the Address TLV with Type = RADIOIF_STATUS. 2. If there is a Discovered Interface Tuple with DI_radio_interface_id = interface_id, remove it (there should be a maximum of one such tuples). 3. Add a Discovered Interface Tuple with: + DI_radio_interface_id := interface_id. + DI_radio_status := interface_status. + DI_description := EMPTY. + DI_time := current_time + validity_time. 4. If there is an Address TLV with Type = DESCRIPTION, set DI_description := TLV-Value. Rogge Expires May 9, 2013 [Page 37] Internet-Draft Stateless RFC5444-DLEP November 2012 5. Remove all Network Interface Data Tuples with NID_radio_interface_id = interface_id. 6. For each Address TLV with Type = NETWORK_DATA, add a Network Interface Data Tuple with: + NID_radio_interface_id := interface_id. + NID_data_type := TLV Extension Type. + NID_data_value := TLV Value. + NID_time := current_time + validity_time. Rogge Expires May 9, 2013 [Page 38] Internet-Draft Stateless RFC5444-DLEP November 2012 13. Local Destination Order If the Local Destination Set is not empty, the Local Destination Order MUST be sent by DLEP-radios in regular intervals, at least once every LOCAL_DESTINATION_INTERVAL. A Local Destination Order contains the IP-prefixes of a DLEP-radio interface's locally configured Destination. This allows the DLEP- router to check the configuration of the DLEP-radio interfaces. While it is allowed to split the Local Destination Order for multiple destinations into more than one Local Destination Order, each Local Destination Tuple must be contained once in a Local Destination Order within LOCAL_DESTINATION_INTERVAL. The Local Destination Order includes a list of local Destination MAC- addresses as address objects. For each address, the Local Destination Order MUST contain one ADD_ADDRESS Address TLV of Extension-Type := MAC with a single address. This specifies the Radio Interface ID of the local Destination. For each address, it MAY contain one ADD_ADDRESS Address TLV of Extension-Type := IPV4_PREFIX with one or more prefix. This specifies the IP-prefixes of the local Destination. For each address, it MAY contain one ADD_ADDRESS Address TLV of Extension-Type := IPV6_PREFIX with one or more prefix. This specifies the IP-prefixes of the local Destination. 13.1. Local Destination Order Generation Each DLEP-radio MUST generate Local Destination Orders according to the specification in this section. Define destination_set a subset of the Local Destination Set, which MUST contain at least one Local Destination Tuple. Each Local Destination Order MUST contain the following additional elements: o A Message TLV with Type := ORDER and Value := LOCAL_DESTINATION. o A Message TLV with Type := VALIDITY_TIME (as specified in [RFC5497]) with Value := LOCAL_DESTINATION_HOLD_TIME (encoded as specified in [RFC5497]). Rogge Expires May 9, 2013 [Page 39] Internet-Draft Stateless RFC5444-DLEP November 2012 o For each Local Destination Tuple in destination_set, add LD_mac_address as an address object (as defined in [RFC5444]) and apply the following steps: 1. Add an Address TLV with Type := ADD_ADDRESS, Extension Type := MAC and Value := LD_radio_interface_id. 2. If LD_ipv4_prefixes is not empty, add an Address TLV with Type := ADD_ADDRESS, Extension Type := IPV4_PREFIX and Value := LD_ipv4_prefixes. 3. If LD_ipv6_prefixes is not empty, add an Address TLV with Type := ADD_ADDRESS, Extension Type := IPV6_PREFIX and Value := LD_ipv6_prefixes. 13.2. Local Destination Order Processing A Local Destination Order is processed in the DLEP-router as follows: 1. Define validity_time as the Value of the Message TLV with Type = VALIDITY_TIME. 2. For each address object destination_mac that has an Address TLV with Type = ADD_ADDRESS and Extension Type = MAC, 1. Define interface_id as the Value of the Address TLV with Type = ADD_ADDRESS and Extension Type = MAC. 2. If there is a Network Local Destination Tuple with NLD_radio_interface_id = interface_id and NLD_mac_address = destination_mac, remove it (there should be a maximum of one such tuples). 3. Add a Network Local Destination Tuple with: + NLD_radio_interface_id := interface_id. + NLD_mac_address := destination_mac. + NLD_ipv4_prefixes := EMPTY. + NLD_ipv6_prefixes := EMPTY. + NLD_time := current_time + validity_time. 4. If there is an Address TLV with Type = ADD_ADDRESS and Extension Type = IPV4_PREFIX, set NLD_ipv4_prefixes:= TLV- Value. Rogge Expires May 9, 2013 [Page 40] Internet-Draft Stateless RFC5444-DLEP November 2012 5. If there is an Address TLV with Type = ADD_ADDRESS and Extension Type = IPV6_PREFIX, set NLD_ipv6_prefixes:= TLV- Value. Rogge Expires May 9, 2013 [Page 41] Internet-Draft Stateless RFC5444-DLEP November 2012 14. Neighbor Update Order If either the Interface Neighbor Set or the Lost Neighbor Set are not empty, the Neighbor Update Order MUST be sent by DLEP-radios in regular intervals, at least once every NEIGHBOR_UPDATE_INTERVAL. A Neighbor Update Order contains the prefixes, status, and attributes (e.g. radio metrics and statistics) of one or more Neighbors of a single DLEP-radio interface. This allows the DLEP-router to receive the whole data about each Neighbor of the DLEP-radio interface in an atomic way. While it is allowed to split the Neighbor Update Order for multiple Neighbors into more than one Neighbor Update Order, each Neighbor Interface Tuple and Lost Neighbor Tuple must be contained once in an Neighbor Update Order within NEIGHBOR_UPDATE_INTERVAL. The Neighbor Update Order includes the Radio Interface ID of the local radio interface as the originator address. The Neighbor Update Order includes a list of Neighbor MAC-addresses as address objects. For each address, the Neighbor Update Order MUST contain the RADIOIF_STATUS Address TLV, which specifies if the neighbors radio interface is UP or DOWN. For each address, it MAY contain one ADD_ADDRESS Address TLV of Extension-Type := MAC with a single address. This specifies the neighbor's Radio Interface ID. For each address, it MAY contain one ADD_ADDRESS Address TLV of Extension-Type := IPV4_PREFIX with one or more prefix. This specifies the IP-prefixes of the neighbor. For each address, it MAY contain one ADD_ADDRESS Address TLV of Extension-Type := IPV6_PREFIX with one or more prefix. This specifies the IP-prefixes of the neighbor. For each address, it MAY contain one NETWORK_DATA Address TLV for each Extension-Type, which will specify the known statistics and metrics of the neighbor. 14.1. Neighbor Update Order Generation Each DLEP-radio MUST generate Neighbor Update Orders according to the specification in this section, each for a single DLEP-radio interface, which means for a single Local Interface Tuple. Rogge Expires May 9, 2013 [Page 42] Internet-Draft Stateless RFC5444-DLEP November 2012 Define neighbor_set a subset of the Interface Neighbor Set with all tuples IN_radio_interface_id = LI_radio_interface_id. Define lost_neighbor_set a subset of the Lost Neighbor Set with all tuples LN_radio_interface_id = LI_radio_interface_id. neighbor_set and lost_neighbor_set MUST NOT be both empty. Each Neighbor Update Order MUST contain the following additional elements: o LI_radio_interface_id as the originator address. o A Message TLV with Type := ORDER and Value := NEIGHBOR_UPDATE. o A Message TLV with Type := VALIDITY_TIME (as specified in [RFC5497]) with Value := NEIGHBOR_UPDATE_HOLD_TIME (encoded as specified in [RFC5497]). o For each Interface Neighbor Tuple in neighbor_set, add IN_mac_address as an address object (as defined in [RFC5444]) and apply the following steps: 1. Add an Address TLV with Type := RADIOIF_STATUS and Value := UP. 2. If IN_neighbor_interface_id != NONE, add an Address TLV with Type := ADD_ADDRESS, Type Extension := MAC and Value := IN_neighbor_interface_id. 3. If IN_ipv4_prefixes is not EMPTY, add an Address TLV with Type := ADD_ADDRESS, Type Extension := IPV4_PREFIX and Value := IN_ipv4_prefixes. 4. If IN_ipv6_prefixes is not EMPTY, add an Address TLV with Type := ADD_ADDRESS, Type Extension := IPV6_PREFIX and Value := IN_ipv6_prefixes. o For each Lost Neighbor Tuple in lost_neighbor_set, add LN_mac_address as an address object and apply the following steps: 1. Add an Address TLV with Type := RADIOIF_STATUS and Value := DOWN. 2. If LN_neighbor_interface_id != NONE, add an Address TLV with Type := ADD_ADDRESS, Type Extension := MAC and Value := LN_neighbor_interface_id. Rogge Expires May 9, 2013 [Page 43] Internet-Draft Stateless RFC5444-DLEP November 2012 14.2. Neighbor Update Order Discarding If a Neighbor Update Order has no Originator Address, it MUST be dropped without further processing. 14.3. Neighbor Update Order Processing A Neighbor Update Order is processed as follows: 1. Define interface_id as the Originator Address of the Neighbor Update Order. 2. Define validity_time as the Value of the Message TLV with Type = VALIDITY_TIME. 3. For each address object neighbor_mac that has an Address TLV with Type = RADIOIF_STATUS: 1. Define neighbor_status as the Value of the Address TLV with Type = RADIOIF_STATUS. 2. If there is an Address TLV with Type = ADD_ADDRESS and Extension Type = MAC, define neighbor_radio_id as the Value of the Address TLV. If not, define neighbor_radio_id as NONE. 3. If there is a Network Neighbor Tuple with NN_radio_interface_id = interface_id AND NN_neighbor_interface_id = neighbor_radio_id AND NN_mac_address = neighbor_mac, remove it (there should be a maximum of one). 4. Add a Network Neighbor Tuple with: + NN_radio_interface_id := interface_id. + NN_neighbor_interface_id := neighbor_radio_id. + NN_status := neighbor_status. + NN_mac_address := neighbor_mac. + NN_ipv4_prefixes := EMPTY. + NN_ipv6_prefixes := EMPTY. + NN_time := current_time + validity_time. Rogge Expires May 9, 2013 [Page 44] Internet-Draft Stateless RFC5444-DLEP November 2012 5. If there is an Address TLV with Type = ADD_ADDRESS and Extension Type = IPV4_PREFIX, set NN_ipv4_prefixes := TLV- Value. 6. If there is an Address TLV with Type = ADD_ADDRESS and Extension Type = IPV6_PREFIX, set NN_ipv6_prefixes := TLV- Value. 7. Remove all Network Neighbor Data Tuples with NND_radio_interface_id = interface_id AND NND_neighbor_interface_id = neighbor_radio_id AND NND_mac_address = neighbor_mac. 8. For each Address TLV with Type = NEIGHBOR_DATA, add a Network Neighbor Data Tuple with: + NND_radio_interface_id := interface_id. + NND_neighbor_interface_id = neighbor_radio_id. + NND_mac_address := neighbor_mac. + NND_data_type := TLV Extension Type. + NND_data_value := TLV Value. + NND_time := current_time + validity_time. Rogge Expires May 9, 2013 [Page 45] Internet-Draft Stateless RFC5444-DLEP November 2012 15. Setup Radio Order If the Radio Interface Configuration Set is not empty, the Setup Radio Order MUST be sent by DLEP-routers in regular intervals, at least once every SETUP_RADIO_INTERVAL. A Setup Radio Order contains the status of DLEP-radio interfaces to be configured. While it is allowed to split the Setup Radio Order for multiple radio interfaces into more than one Setup Radio Order, each Radio Interface Configuration Tuple must be contained once in a Setup Radio Order within SETUP_RADIO_INTERVAL. The Setup Radio Order includes a list of Radio Interface ID's as address objects. For each address, the Setup Radio Order MUST contain one RADIOIF_STATUS Address TLV to specify the radio interface status. 15.1. Setup Radio Order Generation Each DLEP-router MUST generate Setup Radio Orders according to the specification in this section. Define interface_set a subset of the Radio Interface Configuration Set, which MUST contain at least one Radio Interface Configuration Tuple. Each Setup Radio Order MUST contain the following additional elements: o A Message TLV with Type := ORDER and Value := SETUP_RADIO. o A Message TLV with Type := VALIDITY_TIME (as specified in [RFC5497]) with Value := SETUP_RADIO_HOLD_TIME (encoded as specified in [RFC5497]). o For each Radio Interface Configuration Tuple in interface_set, add RIC_radio_interface_id as an address object (as defined in [RFC5444]) and apply the following steps: 1. Add an Address TLV with Type := RADIOIF_STATUS and Value := RIC_status. Rogge Expires May 9, 2013 [Page 46] Internet-Draft Stateless RFC5444-DLEP November 2012 15.2. Setup Radio Order Processing A Setup Radio is processed in the DLEP-router as follows: 1. Define validity_time as the Value of the Message TLV with Type = VALIDITY_TIME. 2. For each address object interface_id that has an Address TLV with Type = RADIOIF_STATUS, 1. Define interface_status as the Value of the Address TLV with Type = RADIOIF_STATUS. 2. If there is an Interface Configuration Tuple with IC_radio_interface_id = interface_id, remove it (there should be a maximum of one such tuples). 3. Add an Interface Configuration Tuple with: + IC_radio_interface_id := interface_id. + IC_radio_status := interface_status. + IC_time := current_time + validity_time. Rogge Expires May 9, 2013 [Page 47] Internet-Draft Stateless RFC5444-DLEP November 2012 16. Setup Destination Order If the Destination Configuration Set is not empty, the Setup Destination Order MUST be sent by DLEP-routers in regular intervals, at least once every SETUP_DESTINATION_INTERVAL. A Setup Destination Order contains the IP-prefixes and Radio Interface ID of the local Destinations to be configured on a DLEP- radio interface. While it is allowed to split the Setup Destination Order for multiple destinations into more than one Setup Destination Order, each Destination Configuration Tuple MUST be contained once in a Setup Destination Order within SETUP_DESTINATION_INTERVAL. The Setup Destination Order includes a list of to be configured local Destination MAC-addresses as address objects. For each address, the Setup Destination Order MUST contain one ADD_ADDRESS Address TLV of Extension-Type := MAC with a single address. This specifies the Radio Interface ID of the local Destination. For each address, it MAY contain one ADD_ADDRESS Address TLV of Extension-Type := IPV4_PREFIX with one or more prefix. This specifies the IP-prefixes of the local Destination. For each address, it MAY contain one ADD_ADDRESS Address TLV of Extension-Type := IPV6_PREFIX with one or more prefix. This specifies the IP-prefixes of the local Destination. 16.1. Setup Destination Order Generation Each DLEP-router MUST generate Setup Destination Orders according to the specification in this section. Define destination_set a subset of the Destination Configuration Set, which MUST contain at least one Destination Configuration Tuple. Each Setup Destination Order MUST contain the following additional elements: o A Message TLV with Type := ORDER and Value := SETUP_DESTINATION. o A Message TLV with Type := VALIDITY_TIME (as specified in [RFC5497]) with Value := SETUP_DESTINATION_HOLD_TIME (encoded as specified in [RFC5497]). Rogge Expires May 9, 2013 [Page 48] Internet-Draft Stateless RFC5444-DLEP November 2012 o For each Destination Configuration Tuple in destination_set, add DC_mac_address as an address object (as defined in [RFC5444]) and apply the following steps: 1. Add an Address TLV with Type := ADD_ADDRESS, Extension Type := MAC and Value := DC_radio_interface_id. 2. If DC_ipv4_prefixes is not empty, add an Address TLV with Type := ADD_ADDRESS, Extension Type := IPV4_PREFIX and Value := DC_ipv4_prefixes. 3. If DC_ipv6_prefixes is not empty, add an Address TLV with Type := ADD_ADDRESS, Extension Type := IPV6_PREFIX and Value := DC_ipv6_prefixes. 16.2. Setup Destination Order Processing A Setup Destination Order is processed in the DLEP-radio as follows: 1. Define validity_time as the Value of the Message TLV with Type = VALIDITY_TIME. 2. For each address object destination_mac that has an Address TLV with Type = ADD_ADDRESS and Extension Type = MAC, 1. Define interface_id as the Value of the Address TLV with Type = ADD_ADDRESS and Extension Type = MAC. 2. If there is a Local Destination Tuple with LD_radio_interface_id = interface_id and LD_mac_address = destination_mac, remove it (there should be a maximum of one tuple). 3. Add a Local Destination Tuple with: + LD_radio_interface_id := interface_id. + LD_mac_address := destination_mac. + LD_ipv4_prefixes := EMPTY. + LD_ipv6_prefixes := EMPTY. + LD_time := current_time + validity_time. 4. If there is an Address TLV with Type = ADD_ADDRESS and Extension Type = IPV4_PREFIX, set LD_ipv4_prefixes:= TLV- Value. Rogge Expires May 9, 2013 [Page 49] Internet-Draft Stateless RFC5444-DLEP November 2012 5. If there is an Address TLV with Type = ADD_ADDRESS and Extension Type = IPV6_PREFIX, set LD_ipv6_prefixes:= TLV- Value. Rogge Expires May 9, 2013 [Page 50] Internet-Draft Stateless RFC5444-DLEP November 2012 17. IANA Considerations This specification defines one Message Type, which MUST be allocated from the "Message Types" repository of [RFC5444], 1 Message TLV Types, which MUST be allocated from the "Message TLV Types" repository of [RFC5444], and 5 Address Block TLV Types, which MUST be allocated from the "Address Block TLV Types" repository of [RFC5444]. 17.1. Expert Review: Evaluation Guidelines For the registries where an Expert Review is required, the designated expert SHOULD take the same general recommendations into consideration as are specified by [RFC5444]. 17.2. Message Types This specification defines one Message Type, to be allocated from the 0-223 range of the "Message Types" namespace defined in [RFC5444], as specified in Table 8. +------+--------------------------------------+ | Type | Description | +------+--------------------------------------+ | TBD1 | DLEP: Dynamic link exchange protocol | +------+--------------------------------------+ Table 8: Message type assignment. 17.3. Message-Type-Specific TLV Type Registries IANA is requested to create a registry for Message-Type-specific Message TLVs for DLEP messages, in accordance with Section 6.2.1 of [RFC5444], and with initial assignments and allocation policies as specified in Table 9. +---------+-------------+-------------------+ | Type | Description | Allocation Policy | +---------+-------------+-------------------+ | 128-223 | Unassigned | Expert Review | +---------+-------------+-------------------+ Table 9: DLEP Message-Type-specific Message TLV Type IANA is requested to create a registry for Message-Type-specific Address Block TLVs for DLEP messages, in accordance with Section 6.2.1 of [RFC5444], and with initial assignments and allocation policies as specified in Table 10. Rogge Expires May 9, 2013 [Page 51] Internet-Draft Stateless RFC5444-DLEP November 2012 +---------+-------------+-------------------+ | Type | Description | Allocation Policy | +---------+-------------+-------------------+ | 128-223 | Unassigned | Expert Review | +---------+-------------+-------------------+ Table 10: DLEP Message-Type-specific Address Block TLV Types 17.4. Message TLV Types TODO: allocate ORDER (message specific?) 17.5. Address Block TLV Types TODO: allocate RADIOIF_STATUS (message specific?) TODO: allocate DESCRIPTION (message specific?) TODO: allocate ADD_ADDRESS (message specific?) TODO: allocate NETWORK_DATA (message specific?) TODO: allocate NEIGHBOR_DATA (message specific?) Rogge Expires May 9, 2013 [Page 52] Internet-Draft Stateless RFC5444-DLEP November 2012 18. Further work There are two aspects of [dlep02] that have not been part of this document: o Configuration of the radio channel. o Managing of traffic credit tokens. The author of this documents has the opinion that there is also demand for a discussion on the following questions: o What is the exact difference between Latency and Expected- Forwarding-Delay and how shall both of them be defined? o What are the full consequences of multicast MAC-addresses as destinations? o Is it possible to allow multiple devices (DLEP-routers and end- devices) connected with an Ethernet Switch to a DLEP-radio? Rogge Expires May 9, 2013 [Page 53] Internet-Draft Stateless RFC5444-DLEP November 2012 19. Security Considerations Currently, this protocol does not specify any special security measures. Rogge Expires May 9, 2013 [Page 54] Internet-Draft Stateless RFC5444-DLEP November 2012 20. References 20.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", RFC 2119, BCP 14, March 1997. [RFC5148] Clausen, T., Dearlove, C., and B. Adamson, "Jitter Considerations in Mobile Ad Hoc Networks (MANETs)", RFC 5148, February 2008. [RFC5444] Clausen, T., Dearlove, C., Dean, J., and C. Adjih, "Generalized Mobile Ad Hoc Network (MANET) Packet/Message Format", RFC 5444, February 2009. [RFC5497] Clausen, T. and C. Dearlove, "Representing Multi-Value Time in Mobile Ad Hoc Networks (MANETs)", RFC 5497, March 2009. [RFC6130] Clausen, T., Dearlove, C., and J. Dean, "Mobile Ad Hoc Network (MANET) Neighborhood Discovery Protocol (NHDP)", RFC 6130, April 2011. [RFC6622] Clausen, T. and U. Herberg, "Integrity Check Value and Timestamp TLV Definitions for Mobile Ad Hoc Networks (MANETs)", RFC 6622, July 2012. 20.2. Informative References [dlep02] Ratliff, S., Berry, B., Harrison, G., Jury, S., and D. Satterwhite, "Dynamic Link Exchange Protocol (DLEP)", draft-ietf-manet-dlep-02 (work in progress), February 2012. [olsrv2] Clausen, T., Dearlove, C., Jacquet, P., and U. Herberg, "The Optimized Link State Routing Protocol version 2", draft-ietf-manet-olsrv2-15 (work in progress), September 2009. Rogge Expires May 9, 2013 [Page 55] Internet-Draft Stateless RFC5444-DLEP November 2012 Appendix A. RFC5444-DLEP Message Examples DLEP messages are instances of [RFC5444] messages, and this protocol supports any combination of message header options and address encodings, enabled by [RFC5444] that convey the required information. As a consequence, there is no single way to represent how all DLEP messages look. A.1. Interface Update Order Example The Interface Update Order is used by DLEP-radios to announce their radio interfaces. The status of the interface, an optional description and a number of optional network based attributes can be attached to each radio interface. In the following example that is depicted in Figure 2, we see a simple Interface Update Order of a DLEP-radio with a single interface which is up and there are no further attributes set. The DLEP message's four bit Message Flags (MF) field has value 0, indicating that no optional message header fields are present. Its four bit Message Address Length (MAL) field has value 5, indicating addresses in the message have a length of six octets, here being Radio Interface IDs. The overall message length is 28 octets. The message contains a Message TLV Block with content length 8 octets containing two Message TLVs, of types VALIDITY_TIME and ORDER. Each uses a Message TLV with Flags octet (MTLVF) value 16, indicating that each has a Value, and each has a Value Length of 1 octet. The Value included in the first TLV is a time code (as defined in [RFC5497]) representing the parameters INTERFACE_UPDATE_HOLD_TIME. The Value included in the second TLV is a Order ID, respectively INTERFACE_UPDATE (see Section 11.2). The message has a single Address Block containing one address. The Address Block Flags octet (ABF) value 0 indicates an no address Head, no address Tail, and no address prefixes. The Address Block is followed by the full Radio Interface ID. The following Address Block TLV Block (content length 4 octets) includes one Address Block TLV. The TLV is a RADIOIF_STATUS Address Block TLV with Flags octet (ATLVF) value 16, which indicates that a single address, with index 0 (implicit) belongs to an interface with the status UP (the one octet Value UP indicates this). Rogge Expires May 9, 2013 [Page 56] Internet-Draft Stateless RFC5444-DLEP November 2012 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DLEP | MF=0 | MAL=5 | Message Length = 28 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message TLV Block Length = 8 | VALIDITY_TIME | MTLVF = 16 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Value Len = 1 | Value (Time) | ORDER | MTLVF = 16 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Value Len = 1 | INTERF.UPD. | Num Addrs = 1 | ABF = 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RIID 1 Byte 1 | RIID 1 Byte 2 | RIID 1 Byte 3 | RIID 1 Byte 4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RIID 1 Byte 5 | RIID 1 Byte 6 | Address TLV Block Length = 4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RADIOIF_STATUS| ATLVF = 16 | Value Len = 1 | VALUE (UP) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Example of a simple Interface Update Order. Figure 2 The second example (see Figure 3) is a more complex Interface Update Order of a DLEP-radio with two interface (first up, second down), each with a 4 character description (both different) and the supported data-rate (both have the same data rate). The two Radio Interface IDs have the common header HEAD_1/HEAD_2/HEAD_3. The DLEP message's four bit Message Flags (MF) field has value 0, indicating that no optional message header fields are present. Its four bit Message Address Length (MAL) field has value 5, indicating addresses in the message have a length of six octets, here being Radio Interface IDs. The overall message length is 56 octets. The message contains a Message TLV Block with content length 8 octets containing two Message TLVs, of types VALIDITY_TIME and ORDER. Each uses a Message TLV with Flags octet (MTLVF) value 16, indicating that each has a Value, and each has a Value Length of 1 octet. The Value included in the first TLV is a time code (as defined in [RFC5497]) representing the parameters INTERFACE_UPDATE_HOLD_TIME. The Value included in the second TLV is a Order ID, respectively INTERFACE_UPDATE (see Section 11.2). The message has a single Address Block containing two address. The Address Block Flags octet (ABF) value 128, indicates an address Head, but no address Tail and Prefixes. The Head Length of 3 octets indicates address Mid sections of 3 octets each. Rogge Expires May 9, 2013 [Page 57] Internet-Draft Stateless RFC5444-DLEP November 2012 The following Address Block TLV Block (content length 28 octets) includes three Address Block TLVs. The first TLV is a RADIOIF_STATUS Address Block TLV with Flags octet (ATLVF) value 20, which indicates that it contains a value for each of the addresses (UP/DOWN). The second TLV is a DESCRIPTION Address Block TLV with Flags octet (ATLVF) value 20 too, and a four byte value with the descriptions for each address. The last TLV is a NETWORK_DATA TLV with Flags octet (ATLVF) value 144, which indicates an TLV extension type and a single value for both addresses. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DLEP | MF=0 | MAL=5 | Message Length = 56 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message TLV Block Length = 8 | VALIDITY_TIME | MTLVF = 16 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Value Len = 1 | Value (Time) | ORDER | MTLVF = 16 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Value Len = 1 | INTERF.UPD. | Num Addrs = 2 | ABF = 128 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Head L. = 3 | HEAD 1 | HEAD 2 | HEAD 3 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RIID 1 Byte 4 | RIID 1 Byte 5 | RIID 1 Byte 6 | RIID 2 Byte 4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RIID 2 Byte 5 | RIID 2 Byte 6 | Address TLV Block Length = 28 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RADIOIF_STATUS| ATLVF = 20 | Value Len = 2 | VALUE (UP) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | VALUE (DOWN) | DESCRIPTION | ATLVF = 20 | Value Len = 8 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Description Interface 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Description Interface 2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NETWORK_DATA | ATLVF = 144 | SUPP. RATES | Value Len = 8 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Common Supported Data Rate Part 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Common Supported Data Rate Part 2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Example of a simple Interface Update Order. Figure 3 Rogge Expires May 9, 2013 [Page 58] Internet-Draft Stateless RFC5444-DLEP November 2012 A.2. Neighbor Update Order Example The Neighbor Update Order is used by DLEP-radios to announce neighbors of their radio interfaces. The status of the neighbor, the neighbors IP addresses and a number of metrics and statistics can be attached to each neighbor. In the following example that is depicted in Figure 4, we see a Neiggbor Update Order of a DLEP-radio with a four neighbors, three of them up and one down. All of them have their radio interface_id, the three active neighbors have a relative link quality and the second neighbor also has an IP address set. The four Neighbor MAC-addresses have the common header HEAD_1/HEAD_2/HEAD_3. The DLEP message's four bit Message Flags (MF) field has value 128, indicating that an originator address message header field is present. Its four bit Message Address Length (MAL) field has value 5, indicating addresses in the message have a length of six octets, here being MAC-addresses. The overall message length is 83 octets. The message contains a Message TLV Block with content length 8 octets containing two Message TLVs, of types VALIDITY_TIME and ORDER. Each uses a Message TLV with Flags octet (MTLVF) value 16, indicating that each has a Value, and each has a Value Length of 1 octet. The Value included in the first TLV is a time code (as defined in [RFC5497]) representing the parameters NEIGHBOR_UPDATE_HOLD_TIME. The Value included in the second TLV is a Order ID, respectively NEIGHBOR_UPDATE (see Section 11.2). The message has a single Address Block containing three addresses. The Address Block Flags octet (ABF) value 128 indicates an address Head, but no address Tail and prefixes. The Head Length of 3 octets indicates address Mid sections of 3 octets each. The following Address Block TLV Block (content length 42 octets) includes three Address Block TLVs. The first TLV is a RADIOIF_STATUS Address Block TLV with Flags octet (ATLVF) value 20, which indicates that each address has a value of its own (two times UP, once DOWN). The second TLV is an ADD_ADDRESS Address Block TLV with Flags octet (ATLVF) value 148, which indicates a TLV Type Extension (MAC) and a value of its own. Its followed by three neighbor Radio Interface IDs, each six octets. The third TLV is a NEIGHBOR_DATA Address Block TLV with Flag octet (ATLVF) value 180, which indicates a TLV Type Extension (RELATIVE_LQ) and a value for each of the first two addresses. The last TLV is an ADD_ADDRESS Address Block TLV with Flags octet (ATLVF) 208, which indicates a TLV Type Extension (IPV4_PREFIX) for a the second address. Rogge Expires May 9, 2013 [Page 59] Internet-Draft Stateless RFC5444-DLEP November 2012 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DLEP | MF=128| MAL=5 | Message Length = 83 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Local Radio Interface ID Part 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Local R. Interface ID Part 2 | Message TLV Block Length = 8 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | VALIDITY_TIME | MTLVF = 16 | Value Len = 1 | Value (Time) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ORDER | MTLVF = 16 | Value Len = 1 | NEIGHB.UPD. | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Num Addrs = 3 | ABF = 128 | Head L. = 3 | HEAD 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | HEAD 2 | HEAD 3 | MAC 1 Byte 4 | MAC 1 Byte 5 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MAC 1 Byte 6 | MAC 2 Byte 4 | MAC 2 Byte 5 | MAC 2 Byte 6 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MAC 3 Byte 4 | MAC 3 Byte 5 | MAC 3 Byte 6 | Address TLV - | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Block L. = 42 | RADIOIF_STATUS| MTLVF = 20 | Value Len = 3 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | VALUE (UP) | VALUE (UP) | VALUE (DOWN) | ADD_ADDRESS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ATLVF = 148 | MAC | Value L. = 18 | N1 RIID B.1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | N1 RIID B.2 | N1 RIID B.3 | N1 RIID B.4 | N1 RIID B.5 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | N1 RIID B.6 | N2 RIID B.1 | N2 RIID B.2 | N2 RIID B.3 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | N2 RIID B.4 | N2 RIID B.5 | N2 RIID B.6 | N3 RIID B.1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | N3 RIID B.2 | N3 RIID B.3 | N3 RIID B.4 | N3 RIID B.5 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | N3 RIID B.6 | NEIGHBOR_DATA | ATLVF = 180 | RELATIVE_LQ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | index-start=0 | index-end=1 | Value Len = 2 | REL_LQ 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | REL_LQ 2 | ADD_ADDRESS | ATLVF = 208 | IPV4_PREFIX | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | index-start=1 | Value Len = 5 | IPaddr Byte 1 | IPaddr Byte 2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPaddr Byte 3 | IPaddr Byte 4 | IPaddr Prefix | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Example of an Neighbor Update Order. Rogge Expires May 9, 2013 [Page 60] Internet-Draft Stateless RFC5444-DLEP November 2012 Figure 4 A.3. Setup Radio Order Example The Setup Router Order is used by DLEP-routers to set the status of the DLEP-radios interfaces. In the following example that is depicted in Figure 5, we see a Setup Router Order for a DLEP-radio with two interfaces. Both of them are configured to status UP. The DLEP message's four bit Message Flags (MF) field has value 0, indicating that no optional message header fields are present. Its four bit Message Address Length (MAL) field has value 5, indicating addresses in the message have a length of six octets, here being Radio Interface IDs. The overall message length is 32 octets. The message contains a Message TLV Block with content length 8 octets containing two Message TLVs, of types VALIDITY_TIME and ORDER. Each uses a Message TLV with Flags octet (MTLVF) value 16, indicating that each has a Value, and each has a Value Length of 1 octet. The Value included in the first TLV is a time code (as defined in [RFC5497]) representing the parameters SETUP_RADIO_HOLD_TIME. The Value included in the second TLV is a Order ID, respectively SETUP_RADIO (see Section 11.2). The message has a single Address Block containing two addresses. The Address Block Flags octet (ABF) value 128 indicates an address Head, but no address Tail and prefixes. The Head Length of 3 octets indicates address Mid sections of 3 octets each. The following Address Block TLV Block (content length 4 octets) includes one Address Block TLV. The TLV is a RADIOIF_STATUS Address Block TLV with Flags octet (ATLVF) value 16, which indicates the same value (UP) for both addresses. Rogge Expires May 9, 2013 [Page 61] Internet-Draft Stateless RFC5444-DLEP November 2012 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DLEP | MF=0 | MAL=5 | Message Length = 32 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message TLV Block Length = 8 | VALIDITY_TIME | MTLVF = 16 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Value Len = 1 | Value (Time) | ORDER | MTLVF = 16 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Value Len = 1 | SETUP_RADIO | Num Addrs = 2 | ABF = 128 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Head L. = 3 | HEAD 1 | HEAD 2 | HEAD 3 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RIID 1 Byte 4 | RIID 1 Byte 5 | RIID 1 Byte 6 | RIID 2 Byte 4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RIID 2 Byte 5 | RIID 2 Byte 6 | Address TLV Block Length = 4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RADIOIF_STATUS| ATLVF = 16 | Value Len = 1 | VALUE (UP) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Example of an Setup Router Order. Figure 5 A.4. Setup Destination Order The Setup Destination Order is used by DLEP-routers to set its local IP addresses for a destinationon the DLEP-radios interfaces. In the following example that is depicted in Figure 6, we see a Setup Destination Order for a DLEP-radio with one interfaces. The router configures a single MAC-address with one IPv4 address and two IPv6 addresses for this interface. The DLEP message's four bit Message Flags (MF) field has value 0, indicating that no optional message header fields are present. Its four bit Message Address Length (MAL) field has value 5, indicating addresses in the message have a length of six octets, here being MAC addresses. The overall message length is 81 octets. The message contains a Message TLV Block with content length 8 octets containing two Message TLVs, of types VALIDITY_TIME and ORDER. Each uses a Message TLV with Flags octet (MTLVF) value 16, indicating that each has a Value, and each has a Value Length of 1 octet. The Value included in the first TLV is a time code (as defined in [RFC5497]) representing the parameters SETUP_DESTINATION_HOLD_TIME. The Value included in the second TLV is a Order ID, respectively SETUP_DESTINATION (see Section 11.2). Rogge Expires May 9, 2013 [Page 62] Internet-Draft Stateless RFC5444-DLEP November 2012 The message has a single Address Block containing one addresses. The Address Block Flags octet (ABF) value 0 indicates an no address Head, no address Tail, and no address prefixes. The Address Block is followed by the full MAC-address of the Destination. The following Address Block TLV Block (content length 57 octets) includes three Address Block TLV. All TLVs are ADD_ADDRESS Address Block TLVs with Flags octet (ATLVF) value 144, which indicates a TLV Type Extension and a value. The first TLV (IPV4_PREFIX Type Extension) contains a single IPv4 address with prefix, the second one (IPV6_PREFIX Type Extension) contains two IPv6 addresses with prefix. Rogge Expires May 9, 2013 [Page 63] Internet-Draft Stateless RFC5444-DLEP November 2012 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DLEP | MF=0 | MAL=5 | Message Length = 81 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message TLV Block Length = 8 | VALIDITY_TIME | MTLVF = 16 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Value Len = 1 | Value (Time) | ORDER | MTLVF = 16 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Value Len = 1 | SETUP_DEST. | Num Addrs = 1 | ABF = 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MAC 1 Byte 1 | MAC 1 Byte 2 | MAC 1 Byte 3 | MAC 1 Byte 4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MAC 1 Byte 5 | MAC 1 Byte 6 | Address TLV Block Length = 57 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ADD_ADDRESS | ATLVF = 144 | MAC | Value Len = 6 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RIID Byte 1 | RIID Byte 2 | RIID Byte 3 | RIID Byte 4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RIID Byte 5 | RIID Byte 6 | ADD_ADDRESS | ATLVF = 144 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPV4_PREFIX | Value Len = 5 | IPv4 Byte 1 | IPv4 Byte 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 Byte 1 | IPv4 Byte 1 | Prefix (32) | ADD_ADDRESS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ATLVF = 144 | IPV6_PREFIX | Value L. = 34 | IPv6 1 Byte 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 1 Byte 2 | IPv6 1 Byte 3 | IPv6 1 Byte 4 | IPv6 1 Byte 5 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 1 Byte 6 | IPv6 1 Byte 7 | IPv6 1 Byte 8 | IPv6 1 Byte 9 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 1 B. 10 | IPv6 1 B. 11 | IPv6 1 B. 12 | IPv6 1 B. 13 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 1 B. 14 | IPv6 1 B. 15 | IPv6 1 B. 16 | IPV6 1 Prefix | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 2 Byte 1 | IPv6 2 Byte 2 | IPv6 2 Byte 3 | IPv6 2 Byte 4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 2 Byte 5 | IPv6 2 Byte 6 | IPv6 2 Byte 7 | IPv6 2 Byte 8 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 2 Byte 9 | IPv6 2 B. 10 | IPv6 2 B. 11 | IPv6 2 B. 12 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 2 B. 13 | IPv6 2 B. 14 | IPv6 2 B. 15 | IPv6 2 B. 16 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 2 Prefix | +-+-+-+-+-+-+-+-+ Example of an Setup Destination Order. Rogge Expires May 9, 2013 [Page 64] Internet-Draft Stateless RFC5444-DLEP November 2012 Figure 6 A.5. Local Destination Order Example The Local Destination Order looks exactly like the Setup Destination Order, only that it is sent from the DLEP-radio to the DLEP-router. Rogge Expires May 9, 2013 [Page 65] Internet-Draft Stateless RFC5444-DLEP November 2012 Author's Address Henning Rogge Fraunhofer FKIE Neuenahrer Strasse 20 Wachtberg 53343 Germany Phone: +49 228 9435-961 Email: henning.rogge@fkie.fraunhofer.de URI: http://fkie.fraunhofer.de/ Rogge Expires May 9, 2013 [Page 66]