The STANAG 5066 service defines operation over a single subnet. This specification adds a routing layer so that the STANAG 5066 SIS service can be provided across multiple subnets. This is needed to provide data communication between all nodes when Wireless Ring Token Protocol is used. It also provides useful capabilities for other architectures.

This document is published in the STANAG 5066 Extension Protocol (S5066-EP) series. The complete set of documents in this series are:

  1. STANAG 5066 Extension Protocol Index (S5066-EP1)
  2. STANAG 5066 Padding DPDU (S5066-EP2)
  3. Pipelining the CAS 1 Linking Protocol (S5066-EP3)
  4. Data Rate Selection in STANAG 5066 for Autobaud Waveforms (S5066-EP4)
  5. STANAG 5066 Large Windows Support (S5066-EP5)
  6. Slotted Option for STANAG 5066 Annex K (S5066-EP6)
  7. Advertising Extended Capabilities (S5066-EP7)
  8. Block Based EOTs (S5066-EP8)
  9. Compact Acknowledgement (S5066-EP9)
  10. Extension DPDU (S5066-EP10)
  11. Variable C_PDU Segment Size (S5066-EP11)
  12. HF Wireless Token Ring Protocol (S5066-EP12)
  13. STANAG 5066 Routing Sublayer (S5066-EP13)
  14. STANAG 5066 TRANSEC Crypto Layer using AES and other Protocols (S5066-EP14)
  15. AES Key Distribution for TRANSEC and Half Loop (S5066-EP15)

1. Goals of the Routing Sublayer

1.1 Wireless Token Ring Protocol Support

Wireless Token Ring Protocol (WRTP) as specified in S5066-EP12, which is derived from STANAG 5066 Ed3 Annex L, defines a framework for supporting communication between nodes sharing a channel where the nodes cannot communicate directly. It specifies a MAC level service that provides information on node connectivity to the higher layers of STANAG 5066.

The routing sublayer defined in this specification makes use of this connectivity information to enable users of the STANAG 5066 service to communicate data to nodes that are not directly connected.

1.2 Routing across Multiple Subnets

STANAG 5066 service defines access to a single channel (typically access by a single modem) and service to nodes connected by that channel. A system may be connected to multiple channels with independent STANAG 5066 services. This routing sublayer enables transparent interconnection of such services. Examples as to where this might be useful.

  1. A ship with two HF connections: Skywave reach back to shore; WTRP surface wave communication to other ships. This routing protocol would enable them to interconnect.
  2. A shore station with skywave access to several mobile units, each with a dedicated channel and STANAG 5066 service. The routing sublayer would enable STANAG 5066 communication between the mobile units.
  3. A MANET (Mobile Ad hoc Network), with a mix of HF links and line of sight links (e.g., UHF).

1.3 Transparant Client Access to multiple Subnets

Where a system has multiple STANAG 5066 subnets, an additional capability that this layer gives is to enable a SIS client to address a STANAG 5066 node without needing to know which STANAG 5066 server is used to access the desired node.

2. Alternate Approaches

There are two “obvious” alternatives to the routing sublayer defined here, which are discussed below. Both are highly desirable approaches for some deployments, but they cannot address all scenarios.

2.1 Application Relay

When transferring application data over HF, it is highly desirable to proceed on hop at a time. This enables communication to be tuned for one network, without introducing relay. This can be done, and is recommended, whenever routing configuration is stable.

However, where routing can change, for example with WTRP, application relay is not viable.

This approach is useful for some applications such as messaging and XMPP, but other applications do not usefully support application relay.

2.2 IP Relay

Use of IP is a common approach used to build MANETs over multiple subnetworks. In many cases, this is a good and flexible choice. However, HF subnetworks have high and variable latency, which leads to problems deploying these applications over HF. Use of relay over multiple networks would compound these problems. This IP approach will not be generally viable for HF, particularly “bulk” applications using TCP. Analysis is provided in the Isode whitepaper  [Measuring and Analysing STANAG 5066 F.12 IP Client].

3. Routing Layer Architecture

This section provides a recap of the STANAG 5066 Ed3 architecture, and shows how the Routing Sublayer (RS) extends STANAG 5066.

3.1 STANAG 5066 Ed3

The STANAG 5066 Ed3 protocol architecture is illustrated above. Notes on this architecture.

  1. Modems communicate with a waveform, such as STANAG 5069. There will be other hardware needed to connect a modem to an HF Channel (or to another channel such as UHF).
  2. Communication between STANAG 5066 servers (shown in yellow) and modems is proprietary.
  3. STANAG 5066 Applications communicate with STANAG 5066 servers using the SIS protocol.
  4. Applications running over STANAG 5066 define their own end to end application protocols, such as COSS used for ACP 127 messaging.
  5. STANAG 5066 is defined as four layers, with PDUs defined at each layer that (except for MAC) are transferred by the protocol layer below. These layers are:
    • Subnet Interface Sublayer (SIS) which communicates S_PDUs.
    • Channel Access Sublayer (CAS) which communicates C_PDUs.
    • Data Transfer Sublayer (DTS) which communicates D_PDUs.
    • Media Access Control (MAC) sublayer. The communication depends on the MAC layer choice:
      • The MAC layer is optional and is not required on a channel with just two nodes.
      • Annex K (CSMA). The MAC layer is procedure only, and no protocol is exchanged.
      • WTRP. This exchanges protocol, but uses special D_PDUs (rather than having MAC layer PDUs).
      • TDMA. There is a placeholder (Annex M) for this, but there is no specification.

3.1.1 Relationship of ALE

STANAG 5066 Ed3 notes ALE in multiple places, but does not really clarify use of ALE and the relationship with ALE. This needs to be addressed in Ed4.
ALE needs to be addressed as part of the MAC layer. ALE can be used in two ways:

  1. To establish a multi-node ALE network that can then be used in conjunction with Annex K or  WTRP operation.
  2. To establish a point to point channel with a single node. In this case, no other MAC procedure is needed.

In both cases, implicit CAS-1 soft links can be established between all nodes, as ALE has initialized the channel.

3.2 Routing with Multiple Independent Subnets

Routing Sublayer (RS) is added as a STANAG 5066 layer between SIS and CAS, with exchange of R_PDUs. The SIS protocol is end to end, whereas CAS and the layers below are single hop.

The above diagram illustrates how the routing sublayer is used with two independent channels. If the LHS node in the above diagram sends data to the RHS node which is not connected, the routing sublayer communicates to the intermediate node the destination. This enables the middle node to route traffic between the two nodes. Note that this routing is completely transparent to the application.

3.3 Routing with a Single Channel

The above diagram shows how the routing sublayer works with a shared channel. WTRP is the only MAC layer that supports such a channel, so this description is given for WTRP, although the routing sublayer would work for a different MAC layer with the same characteristics.

Although all three modems are connected to the same channel, the diagram above relates to a scenario where the middle node can communicate with both of the end nodes, but traffic does  not propagate between the end nodes. WTRP supports this configuration and will ensure that only one node transmits onto the channel at any one time.

All transmissions onto the channel are broadcast at the physical layer. When the LHS node transmits data to the RHS node, the address of the RHS node is included in the routing sublayer protocol, and the lower layers send traffic to the middle node. The middle node receives this message which is handled by the routing sublayer, which will send the data through the same stack but addressed to the RHS node. Both RHS and LHS nodes will hear data transmitted by the middle node, but will only handle traffic addressed to them.

3.4 Transparent Client Access to Multiple Subnets

When a system is connected to two or more modems through independent STANAG 5066 stacks, the routing sublayer (RS) enables SIS provision to an application to transparently access the lower layers based on STANAG 5066 address of the destination. The application does not need to be aware of which modem and stack is used.

4 Routing Layer PDUs

The routing sublayer uses five R_PDUs. These use a single leading byte to identify the type of the PDU.

4.1 Direct R_PDU

  MSB
7
6 5 4 3 2 1 LSB
0
0 Type = 0 Not used
1 S_PDU
n

The Direct R_PDU is used when the next hop is the final destination for the data. There is a single byte header of Type=0, and the rest of the data is the encapsulated S_PDU.

4.2 Indirect R_PDU

  MSB
7
6 5 4 3 2 1 LSB
0
0 Type = 1 Not used
1
2
3
4
MSB - Destination Address


LSB
5
n
S_PDU

The Indirect R_PDU is used when the next hop is not the final destination. The Indirect R_PDU is type 1, and includes the STANAG 5066 address of the destination. This will enable CAS and layers below to send the S_PDU to the next hop.  

4.3 Broadcast R_PDU

  MSB
7
6 5 4 3 2 1 LSB
0
0 Type = 2 Not used
1


n
S_PDU


The Direct R_PDU is used when data is being broadcast (or multicast), for the initial broadcast when there is a single subnet. There is a single byte header of Type=2, and the rest of the data is the encapsulated S_PDU.

4.4 Multicast R_PDU

  MSB
7
6 5 4 3 2 1 LSB
0
0 Type = 3 Not used
1
2
3
4
MSB
LSB
Original Sender


5
MSB
LSB
Destination Count=d
6


9
MSB

Destination Address

LSB

10


13
MSB

Destination Address

LSB

5 + 4*d


n
S_PDU

The Multicast R_PDU is used when a broadcast/multicast is being relayed or for initial broadcast/multicast when there are multiple subnets. The STANAG 5066 address of the node that originally sent the broadcast is included, as this will not be available at on relay. Then there is a list of nodes to which the message needs to be sent. This is to ensure that a message is only re-broadcast when needed.

The number of destination STANAG 5066 addresses is encoded as Destination Count. This allows the list of destination addresses to be determined.

4.5 Routing Update R_PDU

  MSB
7
6 5 4 3 2 1 LSB
0
0 Type = 4 Not used
1


n
Routing update information


The Routing Update R_PDU is used to share routing information between nodes on different subnetworks. This is type 2. Routing update is a sequence of five byte information blocks encoded as follows.

  MSB
7
6 5 4 3 2 1 LSB
0
0
1
2
3
MSB
Destination Address


LSB
4 Hop Count

The first four bytes of each routing update information block is the STANAG 5066 address of the node being reported on. The fifth byte is a Hop Count, which indicates the number of routing hops to this node from the node that is sending the routing update. Where the node is directly reachable from the reporting node, hop count is set to 1.

5 Procedures of Operation

This section describes how the routing sublayer works.

5.1 CAS Layer Interface

The interface to CAS layer is modified as follows:

  1. Where STANAG 5066 Ed3 uses S_PDU, R_PDU is used when the routing sublayer is used.
  2. Other parameters to CAS layer are specified in the following procedures

5.2 Determining Routing

The routing sublayer needs to know the full set of addressable STANAG 5066 nodes and for each node it has to determine the next hop. This information can be obtained by four mechanisms:

  1. Configuration. For example when a subnet is set up with a specified set of STANAG 5066 nodes. This could be a fixed configuration or a configuration updated dynamically by an external process.
  2. From Wireless Token Ring Protocol, as specified in [S5066-EP12], which supports topologies where nodes are not directly connected. Information on this topology is passed upwards using an Annex J M_ service primitive. This is specified in S5066-EP12 as the next hop table which gives a list of all nodes in the ring, and indicates which nodes are directly connected. For nodes that are not directly connected it indicates a preferred data relay node, which is the directly connected node that is recommended to use for data relay. S5066-EP12 makes the next hop table available to the routing sublayer.
  3. By discovery, using the mechanism specified by [HF Discovery, Ping and Traffic Load (S5066-APP2)].  
  4. Using the Routing Update procedures of this specification, which enables discovery of nodes which can be routed to indirectly over subnets that are connected indirectly.

5.3 Submission Procedure

The SIS layer will provide an S_PDU and other parameters to be passed to the lower layers. 

  1. If the target address is a broadcast address, there are three distinct scenarios:
    • If the S_PDU is provided by the SIS layer and there is a single subnet, encapsulate the S_PDU in a Broadcast R_PDU. Then pass the R_PDU and submission parameters to CAS layer.
    •  If the S_PDU is provided by the SIS layer and there are multiple subnets for each of the connected subnets determine the list of destination addresses for each subnet, so that all target addresses are reached by exactly on subnet. Then encapsulate the S_PDU in a Multicast S_PDU, with the Original Sender set to the local node address and the destination addresses included.
    • If the S_PDU is provided by relay, there will be an Original Sender and a list of destination addresses to handle. Determine which subnet will handle each address, and for each subnet submit a Multicast R_PDU.
  2. If the target address is a single node which does not have routing information, the SIS request is rejected with the appropriate C_UNIDATA_REJECT or C_EXPEDITED_UNIDATA_REJECT, with reason “Destination Node Not Responding”. This is the best reason code available. On review of STANAG 5066, it is recommended to consider adding in a new and more accurate reason code for this situation.
  3. If the target address is a single node which can be directly reached on a connected subnet, then encapsulate the S_PDU in a Direct R_PDU and pass to CAS layer with the provided parameters.
  4. If the target address is a single node which can be reached indirectly, then encapsulate the S_PDU in a Indirect R_PDU, with the destination address set to the target address. Then pass to the CAS layer the R_PDU with SIS submission parameters with the target address replaced by the next hop address.

5.4 Reception Procedure

The CAS layer will provide received R_PDUs to the routing sublayer. Handling of Routing Update R_PDUs is described in the next section. The different PDUs are handled as follows:

  1. The S_PDU from Direct and Broadcast R_PDUs are passed directly to the SIS layer.
  2. When an Indirect R_PDU is received, the S_PDU is extracted. Then Submission Procedure is followed using the S_PDU,  service parameters associated with the received R_PDU and the target address being the destination address from the Indirect R_PDU. This process is termed relaying.
  3. 2. When a Broadcast R_PDU is received over WTRP, the Relay Responsible List of nodes provided by the MAC layer is considered. For each of these addresses, determine the subnet to be used for relay. Use multicast submission procedure for this list of addresses, with the broadcast sender used as original sender.
  4. When a Broadcast R_PDU is received over a subnet that is not WTRP, as list of nodes is generated from the broadcast/multicast address, with the local node and original sender removed, For each of these addresses, determine the subnet to be used for relay. Use multicast submission procedure for this list of addresses, with the broadcast sender used as original sender.
  5. When a Multicast R_PDU is received, the following procedure is followed.
    1. If the original sender is the local node, the PDU is discarded an processing stops.
    2. The S_PDU is delivered locally following standard procedures.
    3. Consider the list of destination addresses included in the Multicast R_PDU. If the subnet is WTRP, consider the Relay Responsible List, and eliminate all addresses that are not in this list. If there are no addresses remaining, processing stops.
    4. Pass the PDU for relay using the multicast submission procedure with this list of addresses and the original sender.

In the event of any failure of a directly submitted R_PDU, errors are passed up to the SIS layer.

In the event of any failure of a relayed R_PDU the error must be handled by the routing sublayer. In the event of TTL expiry, the R_PDU is discarded. In the event of any other error, the R_PDU is resubmitted. The routing calculation must be repeated for the destination, as the preferred next hop may have changed.

5.5 Updating Routing

An node connected to multiple subnets must use the Routing Update R_PDU to communicate routing information to each subnet on the nodes that cannot be reached on that subnet, but can be reached on other subnets or can be reached with less hops on other subnets. This information is shared at intervals or whenever routing information changes.

On reception of a Routing Update R_PDU, the node must update its local configuration of reachable nodes.

The default approach to sharing Routing Update R_PDUs on a subnet is to use ARQ communication to each node on the subnet. This will ensure that full routing information is shared about all reachable nodes to all nodes.

For an Annex K (CSMA) network or an WTRP network where all nodes are directly reachable, Routing Update R_PDUs may be shared using non-ARQ broadcast.

6. Changes to STANAG 5066

This document defines a new sublayer for STANAG 5066.

7. Backwards Compatibility

This protocol is not interoperable with STANAG 5066 Ed3.   When it is deployed, all nodes on the network must make use of it. It is recommended that this specification is made mandatory when WTRP is used, so that its use can be relied on when WTRP is used.