Underwater acoustic channels vary enormously with range, geometry and environment. A communication scheme (modulation, forward error correction, frame duration, bandwidth, etc.) that works well on one link may perform poorly on another. The LINK_TUNING service automates the selection of a good scheme for a given link.
The link tuner measures the quality of a link to a peer node by sending test frames and observing the resulting bit error rate, and then selects a physical-layer scheme that maximizes throughput while keeping errors acceptably low. Tuning to a peer is started with a LinkTuneReq (or the tune command); when tuning completes, the recommended scheme is reported as a LinkSchemeNtf. The chosen scheme can then be applied to the LINK (Chapter 18) and PHYSICAL (Chapter 17) services so that subsequent communication uses it. The default link tuner is accessed as tuner.
20.2 Messages
Agents providing this service honor the following requests:
LinkSchemeReq – set peer link scheme/power level, optionally with test frames
Field
Type
Default
Remarks
powerLevel
int
schemeCode
string
test
int
0
to
int
-1
A LinkTuneReq is answered with an AGREE once tuning has started, or a REFUSE if tuning is already in progress or the request is invalid. Tuning then proceeds asynchronously, and its outcome is reported through notifications:
LinkSchemeNtf – recommended/changed link scheme (sent on tuning completion)
A LinkSchemeReq bypasses the tuning search and sets a peer’s link scheme and power level directly; if a number of test frames is requested, the resulting performance is measured and reported back as a LinkPerformanceNtf.
dataRate :: int – effective data rate of current scheme
20.4 Commands
tune – start link tuning
Example:
tune 74 // tune link to node 74
A LinkSchemeNtf message is sent back to the shell when tuning is complete.
20.5 Examples
On an MF/HF node, tuning the link to a peer at address 74 is as simple as issuing a tune command. The transcript below is from a representative session on an MF modem (the exact scheme, power level and data rate depend on the channel):
> tune 74OK
The tune command returns immediately once tuning has started. When tuning completes, a LinkSchemeNtf is delivered to the shell with the recommended scheme and power level:
The LINK_TUNING service is provided by the tuner agent, part of the modem firmware. It is loaded only on nodes operating at a carrier frequency of 24 kHz or above — currently the MF and HF bands; on lower-frequency nodes there is no tuner agent. The tuner and tune shell commands are added by the LinkTunerShellExt shell extension, which attaches to whichever agent advertises the LINK_TUNING service.
20.6.1.1 How it works
The tuner depends on the PHYSICAL (Chapter 17), BASEBAND (Chapter 27) and NODE_INFO (Chapter 14) services. When a LinkTuneReq (or the tune command) arrives, it sends a batch of test frames to the peer node (using a reserved protocol number shared with ECLink) and measures the resulting bit error rate and RSSI over a batch of frames. These measurements drive an OFDM tuning policy that searches the space of OFDM schemes for one that maximizes the effective data rate while keeping the bit error rate acceptably low, adjusting the transmit power level along the way. Once the policy converges, the chosen scheme is stored in the physical layer’s DATA channel scheme and reported back as a LinkSchemeNtf, so that the LINK and PHYSICAL services can use it for subsequent communication.
20.6.1.2 Parameters
In addition to the service-level parameters documented above, the tuner’s OFDM tuning policy exposes: