Internet DRAFT - draft-dubois-r2cp
draft-dubois-r2cp
Internet Engineering Task Force D. Dubois, Ed.
Internet-Draft General Dynamics C4 Systems
Intended status: Informational A. Kovummal
Expires: September 3, 2011 Juniper Networks
B. Petry
L-3 Communications
B. Berry
Cisco Systems
March 2, 2011
Radio-Router Control Protocol (R2CP)
draft-dubois-r2cp-00
Abstract
This document describes a protocol that allows a router to learn the
performance characteristics of the network to its neighbors when the
shared media link between them may provide highly dynamic bandwidth
characteristics. This information comes from the radio modems which
are providing periodic updates about the quality of the radio signal
to the routers listening for these updates on the same physical
network segment. The functionality is similar to that described in
"PPPoE Extensions for Credit Flow and Link Metrics" [RFC5578] but
applied to a local area network topology rather than a set of point-
to-point links.
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 September 3, 2011.
Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the
document authors. All rights reserved.
Dubois, et al. Expires September 3, 2011 [Page 1]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
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.
Dubois, et al. Expires September 3, 2011 [Page 2]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 5
2. Underlying SATCOM Topology . . . . . . . . . . . . . . . . . . 5
2.1. Transmission Subsystem (TS) Interface . . . . . . . . . . 5
3. Radio Router Control Protocol (R2CP) . . . . . . . . . . . . . 6
4. Protocol Specification . . . . . . . . . . . . . . . . . . . . 9
4.1. R2CP Control Header . . . . . . . . . . . . . . . . . . . 10
4.2. Node Level Messages . . . . . . . . . . . . . . . . . . . 12
4.2.1. Modem Initiate Message (MIM) . . . . . . . . . . . . . 12
4.2.2. Router Offer Message (ROM) . . . . . . . . . . . . . . 15
4.2.3. Node Heartbeat Message (NHB) . . . . . . . . . . . . . 17
4.2.4. Node Terminate Message (NTM) . . . . . . . . . . . . . 19
4.2.5. Node Terminate ACK Message (NTA) . . . . . . . . . . . 21
4.3. Session Level Messages . . . . . . . . . . . . . . . . . . 23
4.3.1. Session Initiate Message (SIM) . . . . . . . . . . . . 23
4.3.2. Session Initiate ACK Message (SIA) . . . . . . . . . . 25
4.3.3. Session Update Message (SUM) . . . . . . . . . . . . . 27
4.3.4. Session Terminate Message (STM) . . . . . . . . . . . 32
4.3.5. Session Terminate ACK Message (STA) . . . . . . . . . 34
4.4. R2CP Type-Length-Value (TLV) Definitions . . . . . . . . . 36
4.4.1. Node Heartbeat Interval TLV . . . . . . . . . . . . . 37
4.4.2. Return Status TLV . . . . . . . . . . . . . . . . . . 38
4.4.3. Remote MAC Address TLV . . . . . . . . . . . . . . . . 39
4.4.4. Reserved (VLAN) TLV . . . . . . . . . . . . . . . . . 39
4.4.5. Session ID TLV . . . . . . . . . . . . . . . . . . . . 39
4.4.6. RLQ Metric TLV . . . . . . . . . . . . . . . . . . . . 40
4.4.7. Resource Metric TLV . . . . . . . . . . . . . . . . . 40
4.4.8. Latency Metric TLV . . . . . . . . . . . . . . . . . . 41
4.4.9. Current Data Rate Metric TLV . . . . . . . . . . . . . 41
4.4.10. Maximum Data Rate Metric TLV . . . . . . . . . . . . . 42
4.5. Data Smoothing . . . . . . . . . . . . . . . . . . . . . . 42
5. OSPF Link Cost Assignments . . . . . . . . . . . . . . . . . . 43
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 45
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 45
7.1. R2CP Port Number . . . . . . . . . . . . . . . . . . . . . 45
7.2. R2CP Code Definitions . . . . . . . . . . . . . . . . . . 45
7.3. R2CP TLV Type Definitions . . . . . . . . . . . . . . . . 46
7.4. R2CP Error Code Definitions . . . . . . . . . . . . . . . 47
8. Security Considerations . . . . . . . . . . . . . . . . . . . 47
9. Open Source Implementation . . . . . . . . . . . . . . . . . . 47
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 48
10.1. Normative References . . . . . . . . . . . . . . . . . . . 48
10.2. Informative References . . . . . . . . . . . . . . . . . . 48
Appendix A. Terms and Definitions . . . . . . . . . . . . . . . . 48
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 49
Dubois, et al. Expires September 3, 2011 [Page 3]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
1. Introduction
This document describes a protocol that is to be used between two or
more nodes of a Local Area Network (LAN) which supports access to a
SATCOM network. The nodes communicate with each other over a
physical network segment and consist of radio modems connected to an
over-the-air network and routers providing connectivity to other
networks. The basic topology is illustrated in Figure 1.
The protocol enables a nearby router to provide connectivity to and
through remote routers by forwarding traffic to the radio that has
joined the over-the-air network. The router learns about the
presence of remote routers of the same logical network and the
strength of the radio link between them based on information that is
exchanged between the radio and the router. The router incorporates
this information into its routing tables and makes its forwarding
decisions based on the queueing capacity of the radio and the quality
of the over-the-air signal between the neighbors that make up the
logical network.
|-----Local Neighbor----| |-----Remote Neighbor---|
+--------+ +-------+ +-------+ +--------+
| Router |======| Radio |----RF----| Radio |======| Router |
| Server | | Client| Link | Client| | Server |
+--------+ +-------+ +-------+ +--------+
| | | | | |
|-R2CP-| |----RLP---| |-R2CP-|
| |
|----------- Logical Network ------------|
Figure 1: R2CP Network
As mentioned earlier, the relationship between the network elements
is very similar to that described in [RFC5578] for point-to-point
connections supported by PPPoE sessions. The user-configured
parameters and metrics of the session update messages are shared
between the two protocols. The key distinction is that the logical
network link in this case is a shared medium and allows a broadcast
or multicast transmission to be received by all neighbors. This is
in contrast to the strict one-to-one relatioship between neighbors in
the point-to-point topology.
The document starts off with a brief description of the SATCOM
network. The majority of the document describes the protocol between
the radio and router that allows the router to learn about the signal
quality of the over-the-air link from the radio. It also includes a
Dubois, et al. Expires September 3, 2011 [Page 4]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
description on how the information from the radio can be used to
influence the link costs assigned to an Interior Gateway Protocol
such as OSPF.
1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
2. Underlying SATCOM Topology
This section provides a brief description of the network topology
that can be used by this protocol to support. The satellite network
is made up of a partial mesh of routers connected via Radio Frequency
(RF) links provided by the Transmission Subsystem (TS). A design
characteristic of the overall network is to uniquely distinguish the
router function from the radio section, separating the Layer 3
routing from the Layer 2 transmission capabilities. The router and
radio are separate network nodes which are connected to each other
over a Local Area Network (LAN). With this decision, the interface
between the components becomes a critical function of the design.
This section provides an overview on the interface requirements of
the transmission subsystem and router.
2.1. Transmission Subsystem (TS) Interface
The Router and Radio use the Radio Router Control Protocol (R2CP) to
regulate data traffic flow from Router to Radio and for the Radio to
provide radio link information to the Router that are required for
its routing decisions.
An "R2CP Node" is either the local Router or the local Radio.
The "R2CP Peer" of the local Router is the local Radio and the R2CP
Peer of the local Radio is the local Router. The R2CP messages are
exchanged between these peers.
An "R2CP Neighbor" is either the remote Router or remote Radio. The
R2CP Neighbor of the local Radio is the remote Radio. The R2CP
Neighbor of the local Router is the remote Router.
An "R2CP Association" occurs after a successful MIM/ROM exchange
between the local Radio and local Router. It continues as long as
each peer is aware of the existence of the other by receiving
continuous confirmation that the other peer can communicate though
Dubois, et al. Expires September 3, 2011 [Page 5]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
heartbeat messages.
The Router creates or tears down virtual interfaces on the physical
interface connecting the Radio automatically as Radio peers join or
dispatch. The Radio will use queue controllers on each virtual
interface which are directly managed by the Router according to pre-
defined profiles and have been configured by the user.
The Router shall assign unique identifiers to all virtual interfaces
and queue controllers.
Radio management traffic is logically separated from the data plane
and control plane. As an example, VLAN 51 is dedicated for local
radio management, and all local radio management related traffic will
be tagged with 802.1Q VLAN ID of 51. The radios do not communicate
with each other over 802.1Q VLAN 51; it is only used for local radio
management.
R2CP management traffic is logically separated from the data traffic.
For example, the R2CP Node and Session messages are sent on VLAN 52
and this VLAN is local between the radion and the router.
Each RF link is managed individually by the radios. Each RF
connection has its own link characteristics in terms of bandwidth,
latency and link connectivity that the Router considers for routing
traffic, regulating traffic flow, and managing priority queues. Each
radio system provides its own mechanism to update the Router on RF
link characteristics.
3. Radio Router Control Protocol (R2CP)
R2CP is a new protocol to provide flow control and radio link metrics
on an Ethernet network. The Radio uses a Session Initiate Message to
initialize sessions between itself and its directly-connected router.
RF link quality information and flow control status is conveyed from
the Radio to its local Router by the Session Update Message.
The Radio provides link metrics such as Current Data Rate, Maximum
Data Rate, Latency, Relative Link Quality and Resources to the
Router. The Router in turn uses this information to dynamically
change the link cost and rate shaping based on real-time link
performance.
There are five node level message types defined by this protocol,
used to establish and maintain the R2CP association between the radio
and router nodes on the physical network segment.
Dubois, et al. Expires September 3, 2011 [Page 6]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
o The Modem Initiate Message (MIM) is used by the Radio to detect
R2CP capable routers and to negotiate node parameters between the
pair.
o The Router Offer Message (ROM) is sent by the Router in response
to a MIM and to acknowledge Node parameters.
o Node Heartbeat Messages are sent by both the Router and Radio once
an R2CP association has been formed and is used to monitor the
availability of the other node.
o The Node Terminate Message is used by either the Router or Radio
to terminate the R2CP neighbor association and close all
established R2CP sessions.
o The Node Terminate ACK Message is an optional message to
acknowledge receipt of the Node Terminate Message.
There are five session level message types defined by this protocol.
These allow neighboring R2CP Routers to discover each other and to
learn about the quality of the over-the-air link between them.
o The Session Initiate Message is sent by the local Radio to request
its local Router to set up a session for a new remote Router.
o Session Initiate Messages are acknowledged by the Router using a
Session Initiate ACK Message.
o The Session Update Message is similar to the PADQ packet described
in [RFC5578] and is periodically sent by the local Radio to keep
the local Router informed on the quality of the RF link towards
the remote Router.
o The Session Terminate Message is sent by either the Radio or
Router to terminate an existing session in order to free up system
resources once a remote node has logged off the network.
o Session Terminate Messages are acknowledged using the Session
Terminate ACK Message.
The node-level and session-level message are exchanged between
adjacent R2CP nodes and do not traverse the over-the-air link.
Figure 2 shows a sample packet flow between one Radio and one Router
to establish reachability with one remote router.
Dubois, et al. Expires September 3, 2011 [Page 7]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
(cloud) Radio Router
| |
Radio establishes membership | |
in over-the-air network --~--> | |
| |
Modem Init (MIM) +------------> |
| <------------+ Router Offer (ROM)
| : |
Node Heartbeat +------------> |
| : |
| <------------+ Node Heartbeat
Radio discovers a neighbor | : |
and starts to establish an : :
R2CP session with --~--> | |
the Router | |
Session Init +------------> |
| <------------+ Session Init ACK
Session Update +------------> |
| |
<========= data ===>+<====>
| |
Session Update +------------> |
| |
<========= data ===>+<====>
| |
Session Term +------------> |
| <------------+ Sess Term ACK
| : |
Node Term +------------> |
| <------------+ Node Term ACK
| |
Figure 2: R2CP Packet Flow Sequence
During the Radio and Router MIM/ROM exchange, the Radio informs the
Router about the heartbeat interval.
Once the Radio has learned the MAC address of a distant Router in the
same over-the-air network, it sends a Session Initiate Message back
to its local Router to initiate a new R2CP session for the remote
router's MAC address (Mote that routers are identified by their MAC
addresses. Network-layer addresses addresses are not referenced).
The local Router generates a session ID for the referenced MAC
address and includes this value in a Session Initiate ACK Message
that is sent back to the local Radio. The session ID identifies a
unique router transmit queue associated with the unique MAC address
for a distant Radio or in the case of multicast destinations,
multiple distant radios. The session ID is a 16-bit number that the
Dubois, et al. Expires September 3, 2011 [Page 8]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
Router uses to uniquely identify each discovered unicast or multicast
neighbor or broadcast traffic for all remote nodes in the over-the-
air network. A single session ID value is sufficient for multicast
destination addresses since the Radio is responsible for forwarding
the packet to multiple receivers once it reaches the over-the-air
link.
The Router interface that communicates with the radio will be a
virtual interface that receives the Session Update Message with a
Link Quality Metric (LQM). The Router will provide packet queuing
and routing policy for packets in each session on that virtual
interface, independent of other virtual interfaces. The LQM includes
current and theoretical maximum outbound data rate and packet latency
(queuing and RF propagation delay).
The Radio communicates per-session flow control status in Session
Update Messages that it sends to the router using a rate-based
mechanism. In R2CP, flow control applies to the flow of data from
the Router to the Radio only. The Router does not attempt to limit
the flow of data from the Radio.
4. Protocol Specification
R2CP uses UDP as the transport layer protocol between the Radio and
Router. R2CP implementations compliant with this specification shall
support IPv4 for the IP layer.
The Time To Live (TTL) on all R2CP messages shall be set to 1. The
receiver should test that incoming packets do not have an invalid TTL
in order to reduce the risk of acting upon forged messages sent by a
more distant network.
The R2CP participants use a standard client-server model to
communicate with each other. The Router, acting as the server,
listens on a registered port for messages transmitted by the Radio.
The Radio, as its client, selects an unreserved UDP port as its
source and uses the registered UDP port number as the destination.
The Router sends its responses to the Radio by exchanging source and
destination port numbers. The registered UDP port number is
specified in Section 7.1.
The Router shall use the Radio's network layer address and UDP port
to discriminate adjacencies and associated sessions. The Router may
have multiple independent conversations with a single radio. The
Radio may have multiple routers connected to it as well.
The Router shall be able to be configured to enable or disable R2CP.
Dubois, et al. Expires September 3, 2011 [Page 9]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
The means by which the user configures the Radio and Router is beyond
the scope of this document.
An R2CP association is established when the Radio sends a MIM and the
Router responds with a ROM such that the fields in both messages are
valid. An R2CP association is terminated when either R2CP node sends
a Node Terminate Message or, if the configured heartbeat interval is
greater than zero, if the R2CP node fails to receive three successive
Node Heartbeat messages from its R2CP peer. The current R2CP
association period is the time interval between when R2CP association
is established and R2CP is terminated.
The Router should report an error and include a Return Status TLV in
any R2CP response message transmitted to the Radio if the previous
R2CP message from the Radio is 802.1Q VLAN-tagged differently from
the MIM during the current R2CP association period.
4.1. R2CP Control Header
R2CP uses UDP as its transport protocol. All messages start with a
common control header structure that consists of the following
fields:
o The first 4 bits of the control header are the version number that
the sender is requesting to use. This document defines "version
zero" of the R2CP protocol. Control headers of all future
versions will have at least the fields described in this section
laid out in the same manner so that two nodes which are running
different versions of the protocol will be able to interoperate.
The node receiving an R2CP message where the version number is
greater than what it recognizes SHOULD NOT discard the packet or
log an error.
o The Control Flags field shall be the second 4 bits in the R2CP
header, with the bits named as follows from most to least
significant: Reserved 0, Reserved 1, Reserved 2 and Reserved 3.
By default the Control Flags field shall be set to 0x0. If any of
the Reserved 0, Reserved 1, Reserved 2 and Reserved 3 bits of the
Control Header are set, the message is considered malformed and
shall be ignored.
o The Code field shall be the second 8 bits in the R2CP header with
the value indicating the R2CP message type. Received messages
where the code value is either 0x00 or not defined shall be
ignored. The initial set of code values are specified in Table 12
o The Identifier Number field shall be an unsigned 16-bit integer in
the second 16 bits in the R2CP header. The field is used to match
Dubois, et al. Expires September 3, 2011 [Page 10]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
up R2CP MIM and request messages with the corresponding ROM and
acknowledgements. In all other messages the Radio and Router do
not coordinate their Identifier Numbers - they are completely
independent.
For convenience and to ease troubleshooting, it is beneficial for
Identifier Number of the MIM and ROM messages to be set to 1 and
increase monotonically for each new R2CP message for the life of
the association and rolling over to zero after Identifier Number
65535 but implementations are not required to do so. No error is
declared if the Identifier Number in a received R2CP message is
less than the value in preceding messages.
The Identifier Number is not related to the Session number in any
way. This is to allow bundling of multiple sets of data values
for different sessions in a single Session Update message.
The Identfier number in retransmitted messages may be the re-used
from the original request or may increment like standard messages.
This is strictly an implemtation decision.
If the Radio or Router receives a ROM or acknowledgement message
which contains a Identifier Number which does not correspond to
the Identifier Number in an originate message (see Table 12) for
which a response message (see Table 12) has not been received, the
device should report an error.
o The Payload Length shall represent the total number of octets that
follow the R2CP Control Header. The octets associated with
Control Header are not included in the count.
R2CP messages shall always be transmitted, regardless of whether the
flow of data traffic from Router to Radio is currently restricted or
not.
A sample R2CP Control Header is shown below in Figure 3.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver=0 | Rsvd | Code | Identifier Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| R2CP Payload Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: R2CP Control Header
R2CP has eleven message types as shown in Table 12. These messages
Dubois, et al. Expires September 3, 2011 [Page 11]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
are also broken down into two types: node level messages and session
level messages. Each of these messages are defined in the following
sections.
Throughout the remainder of this section, incoming messages can
classified as "valid", "invalid" or "unrecognized". A valid R2CP
message is one of the standard R2CP message types (MIM, ROM, NHB,
NTM, NTA, SIM, SIA, SUM, STM, STA) that does not have any errors in
it. An invalid R2CP message is one of the standard message types
that is malformed or unsolicited that contains errors. Possible
errors are:
o Unsupported control flag set (6)
o Invalid payload length (7)
o Omitted mandatory TLVs (8)
o Disallowed TLVs (9)
o Invalid TLV length (10)
o Invalid TLV value(s) (11)
An unrecognized message is a message that is NOT one of the standard
R2CP message types regardless if it has errors or not.
4.2. Node Level Messages
The purpose of the node level messages is to configure operational
parameters for the current R2CP association period and manage the
association. The functions to manage the association include:
o Determine when to initiate an association
o Establish an association
o Maintain an association
o Determine when to terminate an association
There is a separate R2CP association per radio/router pairing. For
example, if there are two modems in one radio, then there will be two
separate MIM/ROM exchanges between the Radio and the Router.
4.2.1. Modem Initiate Message (MIM)
The Radio sends the MIM to establish R2CP association with the Router
and configure operational parameters. The MIM is sent whenever R2CP
association is not established, i.e. when the Radio is first
initialized or after R2CP association is terminated via Node
terminate or Heartbeat loss. In the case when a Radio is started
before the Router, the Radio will continuously send the MIM until the
Router responds with a ROM. In the case where a Router is powered
off after the MIM/ROM exchange is complete, the node heartbeat will
expire and the Radio will terminate the link. The Radio will then
Dubois, et al. Expires September 3, 2011 [Page 12]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
begin to send the MIM again until the Router responds. In the event
the nodal association is lost, the Radio requests a new association
be established with the Router by transmitting a new MIM.
When the Radio has established its presence within the radio network
but does not have an active association with a Router, the Radio
shall send the Modem Initiate Message (MIM) every N seconds, where N
is a user-configurable value ranging from 1 to 60 seconds with a
default value of 5, until a valid ROM is received.
The Radio continues sending MIMs at a predefined interval until a
valid ROM is received. While waiting for that ROM, the Radio does
not send any other R2CP messages.
The Radio shall set the destination address of its MIMs to the
Router's network layer address as configured by the user or to the
subnet broadcast address of the interface on which the R2CP protocol
is activated.
The Router must respond to the Radio with a ROM. When the Radio and
Router are capable of supporting different versions of the protocol,
the conversation between the two devices should agree to use the
version which is common to both which will be the lower version
number.
The MIM shall include the Heartbeat Interval TLV. The Router shall
set its node heartbeat interval to the value in the MIM Heartbeat
Interval TLV.
The Router shall consider a received MIM invalid if any of the
following conditions are true and should report an invalid MIM and
the condition, and send a ROM containing a Return Status TLV with the
Return Code field set to the value in parenthesis following the
condition:
o Unsupported control flag set (6)
o Invalid payload length (7)
o Omitted mandatory TLVs (8)
o Disallowed TLVs (9)
o Invalid TLV length (10)
o Invalid TLV value(s) (11)
If there is no R2CP adjacency established, the Radio whall attempt to
establish the R2CP adjacency by sending a MIM at the pre-defined
interval.
If there is no R2CP adjacency established and the Router receives an
invalid R2CP message, the Router should report an invalid R2CP
Dubois, et al. Expires September 3, 2011 [Page 13]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
message type and should send a ROM containing a Return Status TLV
with the Return Code field set to (3).
If there is no R2CP adjacency established and the Router receives a
valid R2CP message other than a MIM, the Router should report an R2CP
message type was received which was an invalid type for the current
R2CP state, and should send a ROM containing a Return Status TLV with
the Return Code field set to (4).
When the Radio receives a Node Terminate, the radio shall send a Node
Terminate ACK and then start sending a MIM at its configured MIM
transmit rate to re-establish the R2CP relationship.
If the Router believes that it already has an existing R2CP
association with a Radio and receives a valid MIM from the Radio's
network layer address (e.g.: the Radio has reset), the Router shall
send a Node Terminate to the Radio.
As described in Section 4.2.5, when the Radio receives a Node
Terminate, it should send a Node Terminate ACK and then start send a
MIM at its configured MIM transmit rate to re-establish the R2CP
adjacency.
See Table 14 for a complete list of Return Codes.
The MIM shall have the following Mandatory TLV's:
1) Node Heartbeat Interval TLV
The MIM has the following Optional TLV's:
1) None
The MIM with mandatory TLV's is depicted in Figure 4. A description
of the attributes of the Modem Initiate Message is contained in
Table 1.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver=0 | Rsvd | Code = 1 | Identifier Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length = 4 | TLV Type = 1 | TLV Length = 2|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Heartbeat Interval |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4: R2CP Modem Initiate Message
Dubois, et al. Expires September 3, 2011 [Page 14]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
+------------+------------+--------+-------+------------------------+
| Attribute | Mandatory/ | Length | Value | Description |
| | Optional | (bits) | | |
+------------+------------+--------+-------+------------------------+
| Version | Mandatory | 4 | 0 | Version number |
| Reserved | Mandatory | 4 | 0 | Reserved for future |
| | | | | use |
| Code | Mandatory | 8 | 1 | Modem Initiate Message |
| Identifier | Mandatory | 16 | | R2CP packet identifier |
| R2CP Len | Mandatory | 16 | 4 | Length of packet |
| | | | | excluding header |
| TLV Code | Mandatory | 8 | 1 | Heartbeat Interval TLV |
| TLV Len | Mandatory | 8 | 2 | Length of TLV Payload |
| TLV Value | Mandatory | 16 | 0-60 | Node Heartbeat |
| | | | | Interval in seconds |
+------------+------------+--------+-------+------------------------+
Table 1: R2CP Modem Initiate Message Values
4.2.2. Router Offer Message (ROM)
The Router Offer Message (ROM) is sent from the Router to the Radio
in response to the Modem Initiate Message. A Router receiving a
valid broadcast MIM shall respond with a unicast ROM. In the event
the Router received an invalid MIM, it may respond with a ROM and
include a Return Status TLV for each of the MIM field values which
are incorrect or incompatible.
The Router does not require that the ROM be acknowledged.
The Identifier Number in the Control Header of the ROM shall be the
same as the Identifier Number field in the MIM it is responding to.
The Router shall set its Heartbeat Interval to match the valid
heartbeat interval provided in the MIM.
As described in Section 4.2.1 the Radio and Router need to agree on
which version of the protocol is to be used for the duration of the
R2CP association between the two nodes.
An invalid ROM is defined as any malformed or unsolicited ROM message
received either by the Radio or Router.
The Radio shall consider a received ROM invalid if any of the
following conditions are true and should report an invalid ROM and
the invalid condition:
Dubois, et al. Expires September 3, 2011 [Page 15]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
o Unsupported control flag set
o Invalid Identifier Number, i.e. not equal to the Identifier Number
sent in the previous MIM
o Invalid payload length
o Undefined TLVs
o Disallowed TLVs
o Invalid TLV length
o Invalid TLV value(s)
o Received when the Radio believes an adjacency already exists (that
is, an unsolicited ROM).
If there is no R2CP adjacency established and the Radio receives an
invalid R2CP message type, the Radio should report it received an
invalid R2CP message type.
If there is no R2CP adjacency established and the Radio receives a
valid message type other than a ROM, it should report an R2CP message
type was received which was an invalid type for the current R2CP
state.
If there is an R2CP adjacency established and the Radio receives an
invalid ROM, the Radio shall ignore the ROM, should report it
received an invalid R2CP message, and then terminate the R2CP
association by sending a Node Terminate Message. After the Node
Terminate ACK Message has been received or the R2CP association with
the Router has been terminated, the Radio will need to re-establish
the R2CP association as normal by sending a MIM at the predefined
interval.
After the Router processes and sends the ROM, it is able to send data
to the Radio. Since the Router has not received a Session Update
Message yet, the Router shall set its rate shaping to a default
value. The Router shall have the default rate shaping value defined
in its configuration.
The ROM shall have the following Mandatory TLV's:
1) None
The ROM has the following Optional TLV's:
1) Return Status TLV
The ROM with mandatory TLV's is depicted in Figure 5. A description
of the attributes of the Router Offer Message is contained in
Table 2.
Dubois, et al. Expires September 3, 2011 [Page 16]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver=0 | Rsvd | Code = 2 | Identifier Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length = 4 | TLV Type = 2 | TLV Length = 2|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Return Status |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 5: R2CP Router Offer Message
+------------+------------+--------+-------+------------------------+
| Attribute | Mandatory/ | Length | Value | Description |
| | Optional | (bits) | | |
+------------+------------+--------+-------+------------------------+
| Version | Mandatory | 4 | 0 | Version number |
| Reserved | Mandatory | 4 | 0 | Reserved for future |
| | | | | use |
| Code | Mandatory | 8 | 2 | Router Offer Message |
| Identifier | Mandatory | 16 | | R2CP packet identifier |
| R2CP Len | Mandatory | 16 | 4-257 | Length of packet |
| | | | | excluding header |
| TLV Code | Optional | 8 | 2 | Return Status TLV |
| TLV Len | Optional | 8 | 2-255 | Length of TLV Payload |
| TLV Value | Optional | 16 | | Return Status Code |
| | Optional | 0-2024 | | Return Status |
| | | | | Description |
+------------+------------+--------+-------+------------------------+
Table 2: R2CP Router Offer Message Values
4.2.3. Node Heartbeat Message (NHB)
The purpose of the Node Heartbeat Message is to maintain R2CP
association between the Radio and Router once it has been established
by a MIM/ROM exchange. The Heartbeat Interval is configured on the
Radio only and defaults to 5 seconds. The Routers learn the
Heartbeat Interval in the MIM that it receives from the Radio.
There may be instances when it is necessary to disable the Heartbeat
between the Radio and Router. Such examples could be to assist
troubleshooting or debugging a protocol problem and it is necessary
to eliminate the heartbeat message while continuing to exchange the
other R2CP messages.
After an R2CP adjacency is established, if the interval defined in
the MIM's Heartbeat Interval TLV is greater than zero, the Router
Dubois, et al. Expires September 3, 2011 [Page 17]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
shall transmit the Node Heartbeat Message each time the interval
defined in the Heartbeat Interval TLV expires, with the heartbeat
interval starting when the ROM is transmitted. The Radio shall also
transmit the Node Heartbeat Message each time the interval defined in
the Heartbeat Interval TLV expires, with the heartbeat interval
starting when it receives the ROM from the Router. The heartbeat
messages are sent independently of any R2CP Session Level messages or
network traffic.
If the heartbeat interval is set to "0", the Radio and Router do not
send the Node Heartbeat Message but the rest of the R2CP protocol
messages continue to be used. Be aware that if the Heartbeat
Interval is set to 0, no automated recovery mechanism is provided
since there is no way to determine when the peer device has failed.
This setting should only be used for troubleshooting purposes.
The heartbeat interval is used to define how often the node sends the
Heartbeat Message. If a node receives a Heartbeat Message prior to
the heartbeat interval has expired, the receiving node shall accept
that heartbeat and renew/extend the heartbeat timer.
If the heartbeat interval configured for the current R2CP association
period is greater than zero, and if an R2CP node does not receive a
Node Heartbeat from its R2CP peer for three consecutive node
heartbeat interval periods, the R2CP node shall transmit a Node
Terminate Message containing a Return Status TLV with a Return Code
value of (14).
When the Node Terminate Message is sent, all established sessions are
cleared on the local device. The R2CP session will remain in the
down state until such time as a new R2CP session is established via
the normal MIM/ROM exchange process.
If the Radio terminates the R2CP association due to failing to
receive three consecutive Node Heartbeat Messages, the Radio shall
declare all sessions dead, clear R2CP association, restart sending
the MIM and should report the condition which caused the R2CP
association to be terminated.
If the Router terminates the R2CP association due to failing to
receive three consecutive Node Heartbeat messages, the Router shall
wait for a MIM and should report the condition which caused R2CP
association to be terminated.
The Heartbeat Interval cannot be changed for already established R2CP
radio/router sessions. If the Radio is re-configured with a
different Heartbeat Internal, the new Heartbeat Interval value is not
implemented until a new R2CP MIM/ROM exchange is completed.
Dubois, et al. Expires September 3, 2011 [Page 18]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
The Node Heartbeat Message does not have any TLVs. If the Radio or
Router receives an invalid or unsolicited Node Heartbeat Message, the
receiver shall ignore the message and should report an invalid Node
Heartbeat Message was received.
The Node Heartbeat Message is depicted in Figure 6. A description of
the attributes of the Node Heartbeat Message is contained in Table 3.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver=0 | Rsvd | Code = 3 | Identifier Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length = 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 6: R2CP Node Heartbeat Message
+------------+------------+--------+-------+------------------------+
| Attribute | Mandatory/ | Length | Value | Description |
| | Optional | (bits) | | |
+------------+------------+--------+-------+------------------------+
| Version | Mandatory | 4 | 0 | Version number |
| Reserved | Mandatory | 4 | 0 | Reserved for future |
| | | | | use |
| Code | Mandatory | 8 | 3 | Node Heartbeat Message |
| Identifier | Mandatory | 16 | | R2CP packet identifier |
| R2CP Len | Mandatory | 16 | 0 | Length of packet |
| | | | | excluding header |
+------------+------------+--------+-------+------------------------+
Table 3: R2CP Node Heartbeat Message Values
4.2.4. Node Terminate Message (NTM)
The Node Terminate Message shall be sent from the Radio to Router or
from the Router to the Radio to terminate the R2CP neighbor
association in case of Node Heartbeat loss, loss of connectivity to
the radio network or administrative termination.
The source node of the Node Terminate Message should terminate the
R2CP association when it receives the Node Terminate ACK message, not
when it sends the Node Terminate Message.
Once the Node Terminate Message is received, the Router or Radio
shall close all sessions opened (via Session Initiate) for the
router/radio pair.
Dubois, et al. Expires September 3, 2011 [Page 19]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
An invalid Node Terminate Message is defined as any malformed or
unsolicited Terminate Message received by the Router or Radio. If
the Radio receives an invalid Node Terminate Message, the Radio shall
ignore the message and should report an invalid Node Terminate
Message was received with the contents of the message. If the Router
receives an invalid Node Terminate Message, the Router shall ignore
the message and should report an invalid Node Terminate Message was
received with the contents of the message.
If no acknowledgement is received by the Sender after sending a Node
Terminate Message, the Node Terminate Message shall be retransmitted
up to N times at an interval M. The maximum total times the Node
Terminate Message is transmitted is N+1 times. The Node Terminate
retransmit quantity value of N shall be configurable by the user,
ranging from 1 to 5 with a default value of 3. The Node Terminate
retransmit interval value of M shall be configurable by the user,
ranging from 100 to 5,000 milliseconds with a default value of 1000
milliseconds.
If the Radio or Router does not receive the Node Terminate ACK
Message, the Radio or Router shall report the Node Terminate ACK
Message was not received with the contents of the Node Terminate
Message.
If the Radio or Router does not receive a Node Terminate ACK Message
to any of those messages, the Radio or Router shall terminate the
R2CP association.
The Radio or Router may optionally include the Return Status TLV in
with the Node Terminate Message to inform the peer node why request
to terminate the neighbor association (i.e. normal shutdown, failed
heartbeat, etc) has been made.
The Node Terminate Message is not required to have any TLV's. It may
include one Return Status TLV.
The Node Terminate Message with mandatory TLV's is depicted in
Figure 7. A description of the attributes of the Node Terminate
Message is contained in Table 4.
Dubois, et al. Expires September 3, 2011 [Page 20]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver=0 | Rsvd | Code = 4 | Identifier Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length = 4 | TLV Type = 2 | TLV Length = 2|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Return Status |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 7: R2CP Node Terminate Message
+------------+------------+--------+-------+------------------------+
| Attribute | Mandatory/ | Length | Value | Description |
| | Optional | (bits) | | |
+------------+------------+--------+-------+------------------------+
| Version | Mandatory | 4 | 0 | Version number |
| Reserved | Mandatory | 4 | 0 | Reserved for future |
| | | | | use |
| Code | Mandatory | 8 | 4 | Node Terminate Message |
| Identifier | Mandatory | 16 | | R2CP packet identifier |
| R2CP Len | Mandatory | 16 | 4-257 | Length of packet |
| | | | | excluding header |
| TLV Code | Optional | 8 | 2 | Return Status TLV |
| TLV Len | Optional | 8 | 2-255 | Length of TLV Payload |
| TLV Value | Optional | 16 | | Return Status Code |
| | Optional | 0-2024 | | Return Status |
| | | | | Description |
+------------+------------+--------+-------+------------------------+
Table 4: R2CP Node Terminate Message Values
4.2.5. Node Terminate ACK Message (NTA)
Upon receiving a valid Node Terminate Message, the Router or radio
shall terminate the association between the Radio and Router and send
a Node Terminate ACK Message.
The Identifier Number of the Node Terminate ACK Message shall be the
same value as the Identifier Number field in the Node Terminate
Message received.
If the Radio or Router receives a duplicate Node Terminate ACK
Message, the duplicate Node Terminate ACK Message can be ignored.
An invalid Node Terminate ACK Message is defined as any malformed or
unsolicited Node Terminate ACK Message received by either the radio
or router.
Dubois, et al. Expires September 3, 2011 [Page 21]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
If the Radio or Router receives an invalid Node Terminate ACK
Message, the receiver should report an invalid Node Terminate ACK
Message was received.
The Node Terminate ACK Message shall have the following Mandatory
TLV's:
1) None
The Node Terminate ACK Message has the following Optional TLV's:
1) Return Status TLV
The Node Terminate ACK Message with mandatory TLV's is depicted in
Figure 8.
A description of the attributes of the Node Terminate ACK Message is
contained in Table 5.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver=0 | Rsvd | Code = 5 | Identifier Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length = 4 | TLV Type = 2 | TLV Length = 2|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Return Status |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 8: R2CP Node Terminate ACK Message
+------------+------------+--------+-------+------------------------+
| Attribute | Mandatory/ | Length | Value | Description |
| | Optional | (bits) | | |
+------------+------------+--------+-------+------------------------+
| Version | Mandatory | 4 | 0 | Version number |
| Reserved | Mandatory | 4 | 0 | Reserved for future |
| | | | | use |
| Code | Mandatory | 8 | 5 | Node Term ACK Message |
| Identifier | Mandatory | 16 | | R2CP packet identifier |
| R2CP Len | Mandatory | 16 | 0 | Length of packet |
| | | | | excluding header |
| TLV Code | Optional | 8 | 2 | Return Status TLV |
| TLV Len | Optional | 8 | 2-255 | Length of TLV Payload |
| TLV Value | Optional | 16 | | Return Status Code |
| | Optional | 0-2024 | | Return Status |
| | | | | Description |
+------------+------------+--------+-------+------------------------+
Dubois, et al. Expires September 3, 2011 [Page 22]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
Table 5: R2CP Node Terminate ACK Message Values
4.3. Session Level Messages
Session level R2CP messages are specific to an individual R2CP
session, or sessions in the case of multiple Session Updates
contained within a single Session Update Message. Individual R2CP
sessions are identified by unique R2CP session IDs.
4.3.1. Session Initiate Message (SIM)
As each Network Member (NM) radio logs in to the SATNET, each NM
learns, via the Radio Link Protocol, the MAC addresses of the
network's remote routers (i.e. routers attached to distant end NMs
and NC).
Each radio shall send a Session Initiate Message to its local Router
with the Remote MAC address. This is used by the router to associate
the R2CP session ID with the Ethernet MAC address and IP Address of
the remote destination: unicast, multicast or broadcast.
The Session Initiate Message shall set the Remote MAC to either the
Remote Routers MAC Address, the MAC Address associated with the
multicast group or the Ethernet broadcast MAC address.
The Radio can send Session Init messages in parallel (i.e. it does
not need to wait for an acknowledgement prior to sending the next
Session Init).
The Router will generate a unique session ID and embed the newly
generated session ID in a Session Initiate ACK Message in response to
Session Initiate request.
This Session ID is used both by the Router and Radio to track the
session for the newly discovered peer.
The value in the Session ID field shall be unique for each session
representing a remote destination between a router and Radio pair.
If the Radio does not receive an acknowledgement from the Router
after sending a Session Initiate message, the Radio shall retransmit
the Session Initiate message at an interval M.
The Session Initiate retransmit interval value of M shall be
configurable, ranging from 100 to 5,000 milliseconds with a default
value of 1000 milliseconds.
The Session Initiate message continues to be sent at interval M until
Dubois, et al. Expires September 3, 2011 [Page 23]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
either the session is established or the distant radio neighbor is
lost.
If the Radio does not receive a Session Initiate ACK Message in
response to any of the Session Initiate messages sent for a
destination MAC address, it shall not initiate the session, but
instead attempt to initiate the session when it next receives an
over-the-air message containing the MAC address for the remote
destination for which a session is not yet established. The Radio
will not tear down any established sessions when this occurs.
An invalid Session Initiate message is defined as any malformed or
unsolicited Session Initiate Message received by the Router.
If the Router receives an invalid Session Initiate Message, the
Router shall ignore the message and should report an invalid Session
Initiate Message was received with the contents of the message.
In the case where a Radio receives data from the Router for a
destination that it does not have a neighbor for, the Radio shall
broadcast the packet to the network and send a Session Terminate
Message to the Router. After the remote and local radio nodes become
neighbors again, the Radio will send a Session Initiate Message.
The Session Initiate Message shall have the following Mandatory
TLV's:
1) Remote MAC Address TLV
The Session Initiate Message has the following Optional TLV's:
1) VLAN TLV
The Session Initiate Message with mandatory TLV's is depicted in
Figure 9.
A description of the attributes of the Session Initiate Message is
contained in Table 6.
Dubois, et al. Expires September 3, 2011 [Page 24]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver=0 | Rsvd | Code = 6 | Identifier Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length = 12 | TLV Type = 3 | TLV Length = 6|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote MAC Address (0:3) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote MAC Address (4:5) | TLV Type = 4 | TLV Length = 2|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| VLAN ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 9: R2CP Session Initiate Message
+------------+------------+--------+-------+------------------------+
| Attribute | Mandatory/ | Length | Value | Description |
| | Optional | (bits) | | |
+------------+------------+--------+-------+------------------------+
| Version | Mandatory | 4 | 0 | Version number |
| Reserved | Mandatory | 4 | 0 | Reserved for future |
| | | | | use |
| Code | Mandatory | 8 | 6 | Session Initiate |
| | | | | Message |
| Identifier | Mandatory | 16 | | R2CP packet identifier |
| R2CP Len | Mandatory | 16 | 12 | Length of packet |
| | | | | excluding header |
| TLV Code | Mandatory | 8 | 3 | Remote MAC Address TLV |
| TLV Len | Mandatory | 8 | 6 | Length of MAC Address |
| TLV Value | Mandatory | 48 | | MAC address |
| TLV Code | Optional | 8 | 4 | VLAN TLV |
| TLV Len | Optional | 8 | 2 | Length of VLAN field |
| TLV Value | Optional | 16 | | VLAN Identifier |
+------------+------------+--------+-------+------------------------+
Table 6: R2CP Session Initiate Message Values
4.3.2. Session Initiate ACK Message (SIA)
Upon receiving a valid Session Initiate Message, the Router shall
generate a unique 16-bit session ID and embed this session ID in a
Session Initiate ACK Message and then send the Session Initiate ACK
Message to its local radio.
There is a single Session ID associated with a remote MAC. If the
Router receives a Session Initiate Message for a Remote MAC it is
already aware of, it shall assign the Session ID already associated
Dubois, et al. Expires September 3, 2011 [Page 25]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
with that Remote MAC and include that in the Session Initiate ACK
Message.
The Router shall generate a Session Initiate ACK Message for every
Session Initiate message it receives.
The Identifier Number shall be the same value as the Identifier
Number field in the Session Initiate Message received.
An invalid Session Initiate ACK Message is defined as any malformed
or unsolicited Session Initiate ACK Message received by the radio.
If the Radio receives an invalid Session Initiate ACK Message, the
Radio shall ignore the message and should report an invalid Session
Initiate ACK Message was received.
The Session Initiate ACK Message shall have the following Mandatory
TLV's:
1) Session ID TLV
The Session Initiate ACK Message has the following Optional TLV's:
1) VLAN TLV
2) Return Status TLV
The Session Initiate ACK Message with mandatory TLV's is depicted in
Figure 10.
A description of the attributes of the Session Initiate ACK Message
is contained in Table 7.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver=0 | Rsvd | Code = 7 | Identifier Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length = 0x04 | TLV Type = 5 | TLV Length = 2|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Session ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 10: R2CP Session Initiate ACK Message
Dubois, et al. Expires September 3, 2011 [Page 26]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
+------------+------------+--------+--------+-----------------------+
| Attribute | Mandatory/ | Length | Value | Description |
| | Optional | (bits) | | |
+------------+------------+--------+--------+-----------------------+
| Version | Mandatory | 4 | 0 | Version number |
| Reserved | Mandatory | 4 | 0 | Reserved for future |
| | | | | use |
| Code | Mandatory | 8 | 7 | Session Initiate ACK |
| | | | | Message |
| Identifier | Mandatory | 16 | | R2CP packet |
| | | | | identifier |
| R2CP Len | Mandatory | 16 | 12-265 | Length of packet |
| | | | | excluding header |
| TLV Code | Mandatory | 8 | 5 | Session ID TLV |
| TLV Len | Mandatory | 8 | 2 | Length of Session ID |
| TLV Value | Mandatory | 16 | | Session ID value |
| TLV Code | Optional | 8 | 4 | VLAN TLV |
| TLV Len | Optional | 8 | 2 | Length of VLAN field |
| TLV Value | Optional | 16 | | VLAN Identifier |
| TLV Code | Optional | 8 | 2 | Return Status TLV |
| TLV Len | Optional | 8 | 2-255 | Length of Return |
| | | | | Status Payload |
| TLV Value | Optional | 16 | | Return Status Code |
| | Optional | 0-2024 | | Return Status |
| | | | | Description |
+------------+------------+--------+--------+-----------------------+
Table 7: R2CP Session Initiate ACK Message Values
4.3.3. Session Update Message (SUM)
The Radio shall send a Session Update Message with the LQM
information to the Router immediately after the session is
established and whenever any of the LQM information values change.
The LQM information includes RLQ, Resource, Latency, Current Data
Rate, and Maximum Data Rate.
Typically the Radio sends a Session Update Message to the local
Router every epoch (400 milliseconds). In certain circumstances
(i.e.: the Radio can accommodate finer-grained flow control when
transporting delay-sensitive data, such as voice or video, by
allocating bursts in "subframes" which are units of time less than
400 milliseconds), the radio may send a Session Update Message more
often than every epoch. In other circumstances (when the network is
stable and the radio metrics are not changing), the Radio may send a
Session Update less often than every epoch.
The Router shall maintain the rate shaping values of the queue
Dubois, et al. Expires September 3, 2011 [Page 27]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
controller based on the last update unless it receives a new update
from its Radio modem on the session.
The Radio can send multiple Session Update TLV's within the same
Session Update Message but the message should not be fragmented.
When multiple Session TLVs are included in the same Session Update
Message, the sequence of the TLVs is critical. Every set of TLVs
associated with a specific session shall immediately follow the
Session TLV. When a second session is then added, all TLVs following
the second Session TLV are associated with the second session. The
order of the TLVs associated with the Session is not specific since
each TLV has a unique TLV code. An example is contained in
Figure 11.
+-----------------------+
| IP Header |
| UDP Header |
| R2CP Header |
+-----------------------+
| Session TLV id:1 |\
| Latency TLV | \
| Current Data Rate TLV | \ Session 1
| Maximum Data Rate TLV | /
| RLQ TLV | /
|_ _ _Resource TLV _ _ _|/
| Session TLV id:2 |\
| Latency TLV | \
| Current Data Rate TLV | \ Session 2
| Maximum Data Rate TLV | /
| RLQ TLV | /
|_ _ _Resource TLV _ _ _|/
| Session TLV id:N |\
: : : : Session N
+-----------------------+
Figure 11: Bundled Session Message
If the radio link metrics do not change, the Radio shall NOT need to
send a new Session Update Message to the Router. The Router will
continue to use the previous metrics.
An invalid Session Update Message is defined as any malformed or
unsolicited Session Update Message received by the Router.
If the Router receives an invalid Session Update Message the Router
shall attempt to process the valid portions of the message and should
report an invalid Session Update Message was received identifying the
Dubois, et al. Expires September 3, 2011 [Page 28]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
invalid portions of the message.
The Session Update Message shall have the following Mandatory TLV's,
one set for each session being updated:
1. Session ID TLV
2. Latency Metric TLV
3. Current Data Rate Metric TLV
4. Maximum Data Rate Metric TLV
5. RLQ Metric TLV
6. Resource Metric TLV
The Session Update Message has no Optional TLV's.
The Session Update Message with mandatory TLV's is depicted in
Figure 12. A description of the attributes of the Session Update
Message is contained in Table 8.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver=0 | Rsvd | Code = 8 | Identifier Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length | TLV Type = 5 | TLV Length = 2|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Session ID | TLV Type = 8 | TLV Length = 2|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Latency | TLV Type = 9 | TLV Length = 4|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Current Data Rate (kbps) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TLV Type = 10 | TLV Length = 4| Maximum Data Rate (kbps) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Maximum Data Rate (con't) | TLV Type = 6 | TLV Length = 1|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RLQ | TLV Type = 7 | TLV Length = 1| Resources |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TLV Type = 5 ...
+-+-+-+-+-+-+-+-...
Figure 12: R2CP Session Update Message
Dubois, et al. Expires September 3, 2011 [Page 29]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
+------------+------------+--------+-------+------------------------+
| Attribute | Mandatory/ | Length | Value | Description |
| | Optional | (bits) | | |
+------------+------------+--------+-------+------------------------+
| Version | Mandatory | 4 | 0 | Version number |
| Reserved | Mandatory | 4 | 0 | Reserved for future |
| | | | | use |
| Code | Mandatory | 8 | 8 | Session Update Message |
| Identifier | Mandatory | 16 | | R2CP packet identifier |
| R2CP Len | Mandatory | 16 | >=26 | Length of packet |
| | | | | excluding header |
| TLV Code | Mandatory | 8 | 5 | Session ID TLV |
| TLV Len | Mandatory | 8 | 2 | Length of Session ID |
| TLV Value | Mandatory | 16 | | Session ID value |
| TLV Code | Mandatory | 8 | 8 | Latency TLV |
| TLV Len | Mandatory | 8 | 2 | Length of Latency |
| | | | | field |
| TLV Value | Mandatory | 16 | | Latency, in |
| | | | | milliseconds |
| TLV Code | Mandatory | 8 | 9 | Current Data Rate TLV |
| TLV Len | Mandatory | 8 | 4 | Length of Current Data |
| | | | | Rate Value |
| TLV Value | Mandatory | 32 | | Current Data Rate in |
| | | | | kbps |
| TLV Code | Mandatory | 8 | 10 | Maximum Data Rate TLV |
| TLV Len | Mandatory | 8 | 4 | Length of Maximum Data |
| | | | | Rate Value |
| TLV Value | Mandatory | 32 | | Maximum Data Rate in |
| | | | | kbps |
| TLV Code | Mandatory | 8 | 8 | RLQ TLV |
| TLV Len | Mandatory | 8 | 1 | Length of RLQ field |
| TLV Value | Mandatory | 8 | 0-255 | RLQ Value |
| TLV Code | Mandatory | 8 | 8 | Resource TLV |
| TLV Len | Mandatory | 8 | 1 | Length of Resource |
| | | | | field |
| TLV Value | Mandatory | 8 | 0-100 | Resource Value |
+------------+------------+--------+-------+------------------------+
Table 8: R2CP Session Update Message Values
The values in the following fields shall be used for route metric
calculation. The names and purpose of these fields are the same as
those in the PPPoE PADQ Discovery message Metrics TLV as described in
[RFC5578] for the Radio, but the values in these fields are specific
to the LAN-over-Radio network. See Section 5 for an example on how
the router makes use of these values to assign link costs to OSPF.
Dubois, et al. Expires September 3, 2011 [Page 30]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
Maximum Data Rate
The Maximum Outbound Data Rate reported in an R2CP Session Update
Message for a unicast link-layer address shall be determined and
provided by the Radio.
The Maximum Outbound Data Rate reported in an R2CP Session Update
Message for a multicast or broadcast link-layer address shall be
zero.
The Maximum Data Rate shall be an unsigned 32-bit field that
contains the maximum theoretical data rate in kbps that the link
is capable of providing.
Current Data Rate
The Current Data Rate is the Radio's estimate of the actual link
throughput and is calculated as a smoothed average of the link's
recent throughput rates. Smoothing is described in Section 4.5.
Note that Current Data Rate applies to the aggregate of all data
flows to the remote node or multicast group, independent of the
flows' priorities, delay sensitivity or other QoS factors.
The value in the Current Data Rate for unicast link-layer
addresses shall be less than or equal to the value in the Maximum
Data Rate field.
The Current Data Rate shall be an unsigned 32-bit field that
contains the current smoothed average throughput in kbps that the
link is actually providing.
Latency
The Latency shall be a 16-bit field that is the message queuing
delay plus a default RF transmission delay.
The Latency value shall be represented in milliseconds.
Resources
The Resources field is used to indicate the percentage of system
resources (i.e. battery power) that is available.
The Resources field shall be an 8-bit field in the range from 0
to 100. If system resources cannot be calculated, a default
value of 100 shall be reported.
Dubois, et al. Expires September 3, 2011 [Page 31]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
Relative Link Quality (RLQ)
The RLQ is used to indicate the quality of the radio link. It is
an unsigned 8-bit value.
4.3.4. Session Terminate Message (STM)
The Session Terminate Message is sent from the Radio to Router or
from the Router to the Radio to terminate the session in case of lost
RF connection or administrative Session Terminate.
Once this message is received, the Router or Radio shall remove the
session associated with the destination MAC address.
If an acknowledgement is not received by the Sender after sending a
Session Terminate Message, the Session Terminate Message shall be
retransmitted up to total N times at an interval M. The maximum total
times the Session Terminate message is transmitted is N+1 times.
The Session Terminate retransmit quantity value of N shall be
configurable, ranging from 1 to 5 with a default value of 3.
The Session Terminate retransmit interval value of M shall be
configurable, ranging from 100 to 5,000 milliseconds with a default
value of 1000 milliseconds.
If the Router or Radio does not receive the Session Terminate ACK
Message in response, it should report the Session Terminate ACK
Message was not received with the contents of the Session Terminate
Message.
If the Radio or Router does not receive a Session Terminate ACK
Message to any of those messages, it shall terminate the session.
When the local node has sent multiple Session Terminate messages due
to the retransmit timer and then receives a Session Terminate ACK
Message, the local node shall terminate the session and then ignore
any more Session Terminate ACK Messages it receives related to that
session.
When the local node is in the state waiting for Session Terminate ACK
Message, and it receives a Session Terminate Message, the local node
shall send Session Terminate ACK Message for the received Session
Terminate Message, and clear the session without waiting for a
Session Terminate ACK Message to its Session Terminate Message.
An invalid Session Terminate Message is defined as any malformed or
unsolicited Terminate Message received by the Router or the radio.
Dubois, et al. Expires September 3, 2011 [Page 32]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
If the Radio or Router receives an invalid Session Terminate Message,
the receiver shall ignore the message and should report an invalid
Session Terminate Message was received.
If the Router or Radio receives a Session Terminate Message to a
session that is not established, the Router or radio should send an
ACK and do nothing else. Since the session has not been established,
there is nothing to terminate and in effect, the termination has been
accomplished.
The Session Terminate Message shall have the following Mandatory
TLV's:
1) Session ID TLV
The Session Terminate Message has the following Optional TLV's:
1) VLAN TLV
2) Return Status TLV
The Session Terminate Message with mandatory TLV's is depicted in
Figure 13.
A description of the attributes of the Session Terminate Message is
contained in Table 9.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver=0 | Rsvd | Code = 9 | Identifier Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length | TLV Type = 5 | TLV Length = 2|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Session ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 13: R2CP Session Terminate Message
Dubois, et al. Expires September 3, 2011 [Page 33]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
+------------+------------+--------+-------+------------------------+
| Attribute | Mandatory/ | Length | Value | Description |
| | Optional | (bits) | | |
+------------+------------+--------+-------+------------------------+
| Version | Mandatory | 4 | 0 | Version number |
| Reserved | Mandatory | 4 | 0 | Reserved for future |
| | | | | use |
| Code | Mandatory | 8 | 6 | Session Initiate |
| | | | | Message |
| Identifier | Mandatory | 16 | | R2CP packet identifier |
| R2CP Len | Mandatory | 16 | 12 | Length of packet |
| | | | | excluding header |
| TLV Code | Mandatory | 8 | 5 | Session ID TLV |
| TLV Len | Mandatory | 8 | 2 | Length of Session ID |
| TLV Value | Mandatory | 16 | | Session ID value |
| TLV Code | Optional | 8 | 4 | VLAN TLV |
| TLV Len | Optional | 8 | 2 | Length of VLAN field |
| TLV Value | Optional | 16 | | VLAN Identifier |
| TLV Code | Optional | 8 | 2 | Return Status TLV |
| TLV Len | Optional | 8 | 2-255 | Length of Return |
| | | | | Status |
| TLV Value | Optional | 16 | | Return Status Code |
| | Optional | 0-2024 | | Return Status |
| | | | | Description |
+------------+------------+--------+-------+------------------------+
Table 9: R2CP Session Terminate Message Values
4.3.5. Session Terminate ACK Message (STA)
Upon receiving a valid Session Terminate Message, the Router or Radio
shall respond with a Session Terminate ACK Message.
The Identifier Number and Session ID fields shall be the same values
as the Identifier Number and Session ID fields in the Session
Terminate Message received.
An invalid Session Terminate ACK Message is defined as any malformed
or unsolicited ACK Message received by either the Radio or Router.
If the Radio or Router receives an invalid Session Terminate ACK
Message, the receiver shall ignore the message and should report an
invalid Session Terminate ACK Message was received.
If the Radio or Router receives a duplicate Session Terminate ACK
Message, the duplicate Session Terminate ACK Message can be ignored.
The Session Terminate ACK Message shall have the following Mandatory
Dubois, et al. Expires September 3, 2011 [Page 34]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
TLV's
1) Session ID TLV
The Session Terminate ACK Message has the following Optional TLV's:
1) Return Status TLV
2) VLAN TLV
The Session Terminate ACK Message with mandatory TLV's is depicted in
Figure 14.
A description of the attributes of the Session Terminate ACK Message
is contained in Table 10.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver=0 | Rsvd | Code = 10 | Identifier Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length | TLV Type = 5 | TLV Length = 2|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Session ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 14: R2CP Session Terminate ACK Message
Dubois, et al. Expires September 3, 2011 [Page 35]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
+------------+------------+--------+--------+-----------------------+
| Attribute | Mandatory/ | Length | Value | Description |
| | Optional | (bits) | | |
+------------+------------+--------+--------+-----------------------+
| Version | Mandatory | 4 | 0 | Version number |
| Reserved | Mandatory | 4 | 0 | Reserved for future |
| | | | | use |
| Code | Mandatory | 8 | 10 | Session Terminate ACK |
| | | | | Message |
| Identifier | Mandatory | 16 | | R2CP packet |
| | | | | identifier |
| R2CP Len | Mandatory | 16 | 12-265 | Length of packet |
| | | | | excluding header |
| TLV Code | Mandatory | 8 | 5 | Session ID TLV |
| TLV Len | Mandatory | 8 | 2 | Length of Session ID |
| TLV Value | Mandatory | 16 | | Session ID value |
| TLV Code | Optional | 8 | 4 | VLAN TLV |
| TLV Len | Optional | 8 | 2 | Length of VLAN field |
| TLV Value | Optional | 16 | | VLAN Identifier |
| TLV Code | Optional | 8 | 2 | Return Status TLV |
| TLV Len | Optional | 8 | 2-255 | Length of Return |
| | | | | Status Payload |
| TLV Value | Optional | 16 | | Return Status Code |
| | Optional | 0-2024 | | Return Status |
| | | | | Description |
+------------+------------+--------+--------+-----------------------+
Table 10: R2CP Session Terminate ACK Message Values
4.4. R2CP Type-Length-Value (TLV) Definitions
R2CP shall use Type-Length-Value (TLV) fields to construct the
various R2CP message types. Each R2CP message type will consist of a
list of required TLV's and optional TLV's. TLV fields are not
aligned to either full or half-word boundaries and are treated as
character arrays, a given TLV may appear multiple times in a single
packet and in any order.
If the Router or Radio receives an R2CP message containing a TLV
which is specifically disallowed in a message, the message shall be
declared malformed and ignored.
If the Router or Radio receives an R2CP message containing a TLV
which is unknown during parsing, the unknown TLV shall be ignored,
stepped over, and parsing continued. Assuming no errors are
encountered, the message is processed. Unknown TLVs represent
optional or new features not yet supported in a given implementation.
Dubois, et al. Expires September 3, 2011 [Page 36]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
Each TLV shall consist of three fields.
o The Type Field shall be an 8-bit field indicating the type of
field this part of the message represents. TLV Type Code 0x00 is
reserved and shall not be used. In the event TLV code 0x00 is
encountered, the message shall be declared malformed and ignored.
o The Length Field shall be an 8-bit field which specifies the
length, in octets, of the TLV payload or value. It does not
include either the Type or Length fields.
o The Value Field shall be a variably sized field, as defined by the
TLV Length Field, containing the payload of TLV.
If a message or TLV is received that represents a disabled feature,
the receiver shall ignore the message or TLV, and generate a single
log entry per system uptime indicating a disabled TLV was received
and include the contents of the disabled TLV.
Table 13 lists the TLV Codes used in the R2CP protocol
4.4.1. Node Heartbeat Interval TLV
The Node Heartbeat TLV is used to identify the Heartbeat interval
that will be used between the radio and router. Both devices need to
agree upon the interval.
The Node Heartbeat Interval TLV Code shall be 0x01.
The Node Heartbeat Interval shall be a 16-bit field with values that
range from 0 to 60 seconds inclusive with a default value of 5
seconds.
The Router sets its Heartbeat Interval to the value received from the
Radio.
When the Heartbeat Interval value is 0, Heartbeats are not
transmitted by either Radio or Router.
A sample Node Heartbeat Interval TLV is contained in Figure 15.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TLV Code = 1 | Length = 2 | Heartbeat Interval (secs) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 15: R2CP Node Heartbeat Interval TLV
Dubois, et al. Expires September 3, 2011 [Page 37]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
4.4.2. Return Status TLV
The Return Status TLV is used to provide more detail on the message.
It is an optional TLV that may be added to the ROM, Node Terminate,
Session Terminate, and Session Terminate ACK messages.
The Return Status TLV Code shall be 0x02.
The Return Status Value Field shall be a 16 bit field with a zero
value indicating success and an all non-zero value indicating
failure. The Return Status of non-0 shall indicate an unsuccessful
message. The absence of an optional Return Status TLV shall serve as
an implicit indication of success.
The Return Status of 1 shall indicate a generic failure and the
Optional Return Status Text field is used to further explain the
problem.
The Return Status Text field is an Optional free form text field used
to describe the error code. The string should be used to provide
meaningful information to the user on the receiving side. It should
not be used to simply repeat the Return Status Code value.
The Return Status Text field shall not be NULL terminated. The
Length field is sufficient to indicate the length of the display
string.
See Table 14 for more detailed explanation of the Return Code and
Return Status TLV fields.
A sample Return Status TLV is contained in Figure 16.
The standard Return Codes are defined in Table 14.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TLV Code = 2 | Length | Return Status Code |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Return Status Text (optional, variable length) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 16: R2CP Return Status TLV
The proposed set of values for the Return Status codes defined for
the Radio-Router Control Protocol (R2CP) between the local Radio and
Router can be found in Table 14. The "Status" column in this table
has the value "error", indicating that the R2CP node sending the
Dubois, et al. Expires September 3, 2011 [Page 38]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
message did not perform the action requested by its peer, or "info",
indicating that the R2CP node performs the action in the previously
received request message to which this message containing the Return
Status TLV is responding.
4.4.3. Remote MAC Address TLV
The Remote MAC Address TLV is used for the radio to inform the router
of the MAC address of the distant router or the multicast group MAC
address associated with a particular session. The Radio initially
provides this information in the Session Initiate message.
The Remote MAC Address TLV Code shall be 0x03.
The Remote MAC Address Value Field shall be a 48 bit field.
A sample Remote MAC Address TLV is contained in Figure 17.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TLV Code = 3 | Length = 6 | Remote MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote MAC Address (con't) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 17: Remote MAC Address TLV
4.4.4. Reserved (VLAN) TLV
This TLV is reserved for future use.
4.4.5. Session ID TLV
The Session ID TLV is used to uniquely identify an R2CP session.
The Router shall calculate the Session ID based on the Ethernet MAC
address associated with the R2CP destination.
The Session ID is included in each message to indicate which session
the message content is associated with.
The Session ID TLV Code shall be 0x05.
The Session ID Value Field shall be a 16 bit field.
A sample Session ID TLV is contained in Figure 18.
Dubois, et al. Expires September 3, 2011 [Page 39]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TLV Code = 5 | Length = 2 | Session ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 18: R2CP Session ID TLV
4.4.6. RLQ Metric TLV
The RLQ Metric TLV is used to identify the RLQ metric for the
session. It is included in the Session Update message. See
Section 4.3.3 and Section 5 for a discussion about the meaning of
RLQ.
The RLQ Metric TLV Code shall be 0x06.
The RLQ Metric Value Field shall be a 8 bit field.
Valid RLQ values range from 0-100, inclusive with 100 representing
the best conditions and 0 indicating the quality of the link is not
useable.
A sample RLQ Metric TLV is contained in Figure 19.
0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TLV Code = 6 | Length = 1 | RLQ |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 19: R2CP RLQ Metric TLV
4.4.7. Resource Metric TLV
The Resource Metric TLV is used to identify the Resource metric for
the session. It is included in the Session Update message. See
Section 4.3.3 and Section 5 for a discussion about the meaning of
Resource.
The Resource Metric TLV Code shall be 0x07.
The Resource Metric Value Field shall be a 8 bit field.
Valid Resource values range from 0-100, inclusive with 100
representing the best conditions and 0 indicating there are no
resources
Dubois, et al. Expires September 3, 2011 [Page 40]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
A sample Resource Metric TLV is contained in Figure 20.
0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TLV Code = 7 | Length = 1 | Resource |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 20: R2CP Resource Metric TLV
4.4.8. Latency Metric TLV
The Latency Metric TLV is used to identify the Latency metric for the
session. It is included in the Session Update message. See
Section 4.3.3 and Section 5 for a discussion about the meaning of
Latency.
The Latency Metric TLV Code shall be 0x08.
The Latency Metric Value Field shall be a 16 bit field.
Latency is a 16-bit unsigned value representing milliseconds.
A sample Latency Metric TLV is contained in Figure 21.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TLV Code = 8 | Length = 2 | Latency (milliseconds) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 21: R2CP Latency Metric TLV
4.4.9. Current Data Rate Metric TLV
The Current Data Rate Metric TLV is used to identify the Current Data
Rate metric for the session. It is included in the Session Update
message. See Section 4.3.3 and Section 5 for a discussion about the
meaning of Current Data Rate.
The Current Data Rate Metric TLV Code shall be 0x09.
The Current Data Rate Metric Value Field shall be a 32 bit field.
CDR is a 16-bit unsigned value representing kilobits per second.
CDR must be less than or equal to MDR for unicast sessions.
Dubois, et al. Expires September 3, 2011 [Page 41]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
A sample Current Data Rate Metric TLV is contained in Figure 22.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TLV Code = 9 | Length = 4 | Current Data Rate |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Current Data Rate (cont'd) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 22: R2CP Current Data Rate TLV
4.4.10. Maximum Data Rate Metric TLV
The Maximum Data Rate Metric TLV is used to identify the Maximum Data
Rate metric for the session. It is included in the Session Update
message. See Section 4.3.3 and Section 5 for a discussion about the
meaning of Maximum Data Rate.
The Maximum Data Rate Metric TLV Code shall be 0x0a.
The Maximum Data Rate Metric Value Field shall be a 32 bit field.
MDR is a 16-bit unsigned value representing kilobits per second.
A sample Maximum Data Rate Metric TLV is contained in Figure 23.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TLV Code = 10 | Length = 4 | Maximum Data Rate |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Maximum Data Rate (cont'd) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 23: R2CP Maximum Data Rate TLV
4.5. Data Smoothing
Smoothing should be performed both at the Router and the Radio. The
Radio should calculate a smoothed average of both the Maximum Data
Rate and the Current Data Rate prior to transferring this data to the
Router. A possible method to smooth the data could be using a 10
second sliding window that ignores the top 3 and low 3 sample points
of the current window (25 total samples) and averages the remaining
19 samples with the average of the previous 10 second sample.
The Router shall use this smoothed data to set the queue rate shaping
Dubois, et al. Expires September 3, 2011 [Page 42]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
value.
The Router shall calculate a new OSPF Link cost based on this
smoothed data, but it will not publish the new link cost to neighbor
nodes until either a time limit has been reached (e.g. 1 minute) or
the value has changed by a certain percentage (e.g.+/- 10%). This
will reduce the network overhead by only reporting link changes when
they will have a significant impact on routing.
The Router shall provide a configurable value for the smoothing
percentage from 0 to 100 with a default of 10.
A Radio shall overload the current allocated session bandwidth in
order to encourage the Router to send more data than the Radio can
support so that it always attempts to increase the amount of data it
will send over the airwaves. Otherwise the Radio will never know
that the Router has more data to transmit and the Router will not
know that the Radio has a greater amount of transmit bandwidth
available to it.
The Radio shall employ an algorithm to control its overloading rate.
The Overload Rate shall be a configurable radio parameter from 0 to
100 with a default of 10.
The Radio will inform the Router the data rate it wants sent to the
radio. The radio will oversubscribe the link by requesting from the
Router more data than the link can provide. The Router will send to
the radio the amount the radio requested.
5. OSPF Link Cost Assignments
The Router shall calculate the link cost by using the following
formula. The Router routes traffic based on the OSPF "Shortest Path
First" algorithm as described in [RFC2328] and [RFC5340] that uses
the link cost. As stated above, the Latency is in milliseconds and
data rate in kilobits per second. Refer to Figure 24 and Table 11
for the method to calculate the OSPF cost from the radio link
metrics.
Dubois, et al. Expires September 3, 2011 [Page 43]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
BW Weight
OSPF Cost = Cost Bias + Data Rate Factor * ( ------------ )
Max Weight
Resource Weight
+ Resource Factor * ( ----------------- )
Max Weight
Latency Weight
+ Latency Factor * ( ---------------- )
Max Weight
RLQ Weight
+ RLQ Factor * ( ------------ )
Max Weight
8
(10 / MDR )
Cost Bias = --------------
1000
CDR
65536 * ( ( 1 - ----- ) * Max Weight )
Data Rate MDR
Factor = -----------------------------------------
Max Weight
CDR = Current Data Rate Metric * (DR Weight / Max Weight)
MDR = Maximum Data Rate Metric * (DR Weight / Max Weight)
3
( 100 - Resource Metric ) * 65536
Resource = -----------------------------------
Factor 1000000
Latency Factor = Latency Metric as reported by Radio
( 100 - RLQ Metric ) * 65536
RLQ Factor = ------------------------------
Max Weight
Figure 24: OSPF Algorithm Definition
Dubois, et al. Expires September 3, 2011 [Page 44]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
+--------------------+---------------+--------------------+
| Resource Component | Default Value | Configurable Range |
+--------------------+---------------+--------------------+
| BW Weight | 100 | 0-100 |
| Resource Weight | 100 | 0-100 |
| Latency Weight | 100 | 0-100 |
| RLQ Weight | 100 | 0-100 |
| DR Weight | 100 | 0-100 |
| Max Weight | 100 | N/A |
+--------------------+---------------+--------------------+
Table 11: User Defined Values
6. Acknowledgements
The authors would like to thank these additional contributors: Raniel
Babala, Thomas Christofili, Alan Chung, Mark Cusano, Dennis J.
Daniels, Mark Finney, Lakshman Garikapaty, Ryan Hitch, Sheng Huang,
John Kantonides, Padma Krishnaswamy, Steve Mally, Manuel Meade, Paul
Morhy, Eric Peterson, Alan Plum, Stan Ratliff, David Ruffen, Richard
Rockweiler, Darryl Satterwhite, Frank Solensky, Sivananda
Subramaniam, Chris Wilson
7. IANA Considerations
7.1. R2CP Port Number
The router that acts as an R2CP server listen on a registered UDP
Port Number for messages from its client radios. The title of this
port is "r2cps" (R2CP Server). The value of this UDP port is TBD1
[the value 28762 is suggested as it is used in prototype
implementations].
7.2. R2CP Code Definitions
This document defines a set of 8-bit Code values for which IANA is to
create and maintain a new sub-registry entitled "R2CP Code values".
Initial values for the R2CP Code values registry are given below;
future assignments are to be made through Expert Review [RFC5226].
Assignments consist of an R2CP Code name and its associated value.
Dubois, et al. Expires September 3, 2011 [Page 45]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
+--------+-----------------------+---------------+
| Value | R2CP Code name | Defined in |
+--------+-----------------------+---------------+
| 0 | Reserved | |
| 1 | Modem Initiate | Section 4.2.1 |
| 2 | Router Offer | Section 4.2.2 |
| 3 | Node Heartbeat | Section 4.2.3 |
| 4 | Node Terminate | Section 4.2.4 |
| 5 | Node Terminate ACK | Section 4.2.5 |
| 6 | Session Initiate | Section 4.3.1 |
| 7 | Session Initiate ACK | Section 4.3.2 |
| 8 | Session Update | Section 4.3.3 |
| 9 | Session Terminate | Section 4.3.4 |
| 10 | Session Terminate ACK | Section 4.3.5 |
| 11-254 | Unassigned | |
| 255 | Reserved | |
+--------+-----------------------+---------------+
Table 12: R2CP Message Codes
7.3. R2CP TLV Type Definitions
This document defines a set of 8-bit Type Identifiers for which IANA
is to create and maintain a new sub-registry entitled "R2CP Type
values". Initial values for the R2CP Type values registry are given
below; future assignments are to be made through Expert Review
[RFC5226]. Assignments consist of an R2CP Type name and its
associated value.a
+--------+--------------------------------+----------------+
| Value | R2CP Type name | Defined in |
+--------+--------------------------------+----------------+
| 0 | Reserved | |
| 1 | Node Heartbeat Interval | Section 4.4.1 |
| 2 | Return Status | Section 4.4.2 |
| 3 | Remote MAC Address | Section 4.4.3 |
| 4 | VLAN Identifier | Section 4.4.4 |
| 5 | Session Identifier | Section 4.4.5 |
| 6 | RLQ Metric | Section 4.4.6 |
| 7 | Resource Metric | Section 4.4.7 |
| 8 | Latency Metric | Section 4.4.8 |
| 9 | Current Data Rate Metric | Section 4.4.9 |
| 10 | Maximum Data Rate Metric | Section 4.4.10 |
| 11-253 | Unassigned | |
| 254 | Reserved (radio or router use) | |
| 255 | Reserved | |
+--------+--------------------------------+----------------+
Dubois, et al. Expires September 3, 2011 [Page 46]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
Table 13: R2CP TLV types
7.4. R2CP Error Code Definitions
This document defines a set of 8-bit Error Codes for which IANA is to
create and maintain a new sub-registry entitled "R2CP Error Code
values". Initial values for the R2CP Error Code values registry are
given below; future assignments are to be made through Expert Review
[RFC5226]. Assignments consist of an R2CP Error type name and its
associated value.
+--------+---------------------------------+--------+---------------+
| Value | R2CP Error Code name | Status | Defined in |
+--------+---------------------------------+--------+---------------+
| 0 | Reserved | error | |
| 1 | No Return Code Defined | error | |
| 2 | Invalid VLAN ID | error | |
| 3 | Undefined Message Type | error | Section 4.2 |
| 4 | Invalid Message type | error | Section 4.2 |
| 5 | Unassigned | | |
| 6 | Invalid Control Flag Set | error | Section 4.2 |
| 7 | Invalid Payload Length | error | Section 4.2 |
| 8 | Omitted Mandatory TLV | error | Section 4.2 |
| 9 | Disallowed TLVs | error | Section 4.2 |
| 10 | Invalid TLV Length | error | Section 4.2 |
| 11 | Invalid TLV Value | error | Section 4.2 |
| 12 | Data VLAN ID not configured | error | |
| 13 | Data VLAN ID previously | info | |
| | configured | | |
| 14 | Node Heartbeat Lost | info | Section 4.2.3 |
| 15 | Network Unreachable | info | |
| 16 | Command Terminate | info | |
| 17-254 | Unassigned | | |
| 255 | Reserved | | |
+--------+---------------------------------+--------+---------------+
Table 14: R2CP Error Codes
8. Security Considerations
Security considerations are not addressed at this time.
9. Open Source Implementation
An open source (MIT License) R2CP implementation is available at
<http://sourceforge.net/projects/r2cptools>.
Dubois, et al. Expires September 3, 2011 [Page 47]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
An open source (GPLv2) wireshark decoder is available at
<http://sourceforge.net/projects/r2cptools>.
10. References
10.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, April 1998.
[RFC5340] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF
for IPv6", RFC 5340, July 2008.
10.2. Informative References
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 5226,
May 2008.
[RFC5578] Berry, B., Ratliff, S., Paradise, E., Kaiser, T., and M.
Adams, "PPP over Ethernet (PPPoE) Extensions for Credit
Flow and Link Metrics", RFC 5578, February 2010.
Appendix A. Terms and Definitions
BW Bandwidth
IETF Internet Engineering Task Force
MAC Media Access Control
Mesh the virtual communication backbone formed by the nodes and
comm links over time-Data can be moved from Node 1 to every
other node over the available network mesh
OSPF Open Shortest Path First (a link state interior gateway
routing protocol standard), described in [RFC2328] and
[RFC5340].
QoS Quality of Service
Dubois, et al. Expires September 3, 2011 [Page 48]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
RF Radio Frequency
RLP Radio Link Protocol
SATCOM Satellite Communication
TS Transmission Subsystem
VLAN Virtual Local Area Network
Authors' Addresses
Dave Dubois (editor)
General Dynamics C4 Systems
400 John Quincy Adams Rd.
Taunton, MA 02780
US
Phone: +1 508 880 2249
Email: Dave.Dubois@gdc4s.com
Ashwin Kovummal
Juniper Networks
10 Technology Park Dr.
Westford, MA 01886
US
Phone: +1 978 589 0864
Email: akovummal@juniper.net
Brian Petry
L-3 Communications
3033 Science Park Road
San Diego, CA 92121
US
Phone: +1 858 552 9650
Email: Brian.Petry@l-3com.com
Dubois, et al. Expires September 3, 2011 [Page 49]
Internet-Draft Radio-Router Control Protocol (R2CP) March 2011
Bo Berry
Cisco Systems
170 West Tasman Drive
San Jose, CA 95134
US
Phone: +1 919 392 2926
Email: boberry@cisco.com
Dubois, et al. Expires September 3, 2011 [Page 50]