Configuration Guide

Transport LBT-RU Reliability Options

LBT-RU's reliability options closely model LBT-RM's. The descriptions and illustrations in Transport LBT-RM Reliability Options generally apply to LBT-RU, with appropriate option name changes.

# Reference <-

## transport_lbtru_ignore_interval (source) <-

  The interval to ignore NAKs after a retransmission is sent.

  This option affects the transport session underlying the source rather than the source itself. The transport session uses the value from the first source created on the session and ignores subsequent sources' configuration.

  Refer to Source Object for additional information.

  Scope: | source
  Type: | lbm_ulong_t
  Units: | milliseconds
  Default value: | 500 (0.5 seconds)
  When to Set: | Can only be set during object initialization.

## transport_lbtru_nak_backoff_interval (receiver) <-

  The maximum interval between transmissions of LBT-RU NAKs for a given sequence number, after the first NAK.

  When an LBT-RU receiver detects a sequence number gap, it delays an initial amount before sending its first NAK (controlled by transport_lbtru_nak_initial_backoff_interval (receiver)), and then delays an a separately configurable time between sending subsequent NAKs for the same sequence number. This configuration option controls those subsequent delays.

  The actual time the receiver will wait to NAK again is random. The algorithm used to determine the time range is (1/2 * backoff_interval - 3/2 * backoff_interval). This will result in a delay longer or shorter than the specified value.

  This option affects the transport session underlying the receiver rather than the receiver itself. The transport session uses the value from the first receiver created on the session and ignores subsequent receivers' configuration.

  Refer to Receiver Object and Interrelated Configuration Options for additional information.

  Scope: | receiver
  Type: | lbm_ulong_t
  Units: | milliseconds
  Default value: | 200 (0.2 seconds)
  When to Set: | Can only be set during object initialization.

## transport_lbtru_nak_generation_interval (receiver) <-

  The maximum time that a piece of data may be outstanding before the data is unrecoverably lost.

  For LBT-RU transport sessions only. Although the minimum valid value is 5 milliseconds, larger values are advisable. This option affects the transport session underlying the receiver rather than the receiver itself. The transport session uses the value from the first receiver created on the session and ignores subsequent receivers' configuration.

  Refer to Receiver Object and Interrelated Configuration Options for additional information.

  Scope: | receiver
  Type: | lbm_ulong_t
  Units: | milliseconds
  Default value: | 10000 (10 seconds)
  When to Set: | Can only be set during object initialization.

## transport_lbtru_nak_initial_backoff_interval (receiver) <-

  The interval between loss detection and transmission of the first LBT-RU NAK.

  When an LBT-RU receiver detects a sequence number gap, it delays an initial amount before sending its first NAK controlled by this option, and then delays an a separately configurable time between sending subsequent NAKs for the same sequence number, controlled by transport_lbtru_nak_backoff_interval (receiver).

  The actual time the receiver will wait to NAK is random. The algorithm used to determine the time range is (1/2 * initial_backoff_interval - 3/2 * initial_backoff_interval). This can result in a wait interval longer than the specified value. A value of 0 indicates that the receiver should immediately send a NAK.

  This option affects the transport session underlying the receiver rather than the receiver itself. The transport session uses the value from the first receiver created on the session and ignores subsequent receivers' configuration.

  Scope: | receiver
  Type: | lbm_ulong_t
  Units: | milliseconds
  Default value: | 0 (disabled)
  When to Set: | Can only be set during object initialization.
  Version: | This option was implemented in UM 6.10

## transport_lbtru_nak_suppress_interval (receiver) <-

  The time that an LBT-RU receiver will suppress sending a NAK for a missing datagram after an NCF is received from the source.

  The source sends an NCF in response to a NAK which the source temporarily cannot retransmit. For example, if the source gets a NAK for a sequence number for which it has recently sent a retransmission, it will send an NCF with reason code "ignored". The receiver responds by suppressing NAKs for that sequence number for the interval configured by this option. See NAK Suppression for more information about NCFs. For LBT-RU transport sessions only.

  This option affects the transport session underlying the receiver rather than the receiver itself. The transport session uses the value from the first receiver created on the session and ignores subsequent receivers' configuration.

  Refer to Receiver Object for additional information.

  Scope: | receiver
  Type: | lbm_ulong_t
  Units: | milliseconds
  Default value: | 1000 (1 second)
  When to Set: | Can only be set during object initialization.

## transport_lbtru_receiver_socket_buffer (context) <-

  Value used to set the SO_RCVBUF socket option for the LBT-RU receiving socket.

  Note that both the source and receiver side uses a socket for receiving data. This option is used by both.

  In some cases the OS will not allow all of this value to be used.

  See Socket Buffer Sizes for platform-dependent information.

  See also our white paper Topics in High Performance Messaging for background and guidelines on UDP buffer sizing.

  Scope: | context
  Type: | lbm_ulong_t
  Units: | bytes
  Default value: | 8388608 (8MB)
  When to Set: | Can only be set during object initialization.

## transport_lbtru_send_naks (receiver) <-

  This flag indicates whether LBT-RU should send negative acknowledgements (NAKs) for missing packets or not.

  For LBT-RU transport sessions only. This option affects the transport session underlying the receiver rather than the receiver itself. The transport session uses the value from the first receiver created on the session and ignores subsequent receivers' configuration.

  Refer to Receiver Object for additional information.

  Scope: | receiver
  Type: | int
  When to Set: | Can only be set during object initialization.
  Version: | This option was implemented in UM 6.16

  Value | Description
  --- | ---
  1 | NAKs are sent for missing packets to request retransmission. Default for all.
  0 | Do not send NAKs for missing packets.

## transport_lbtru_source_socket_buffer (context) <-

  Value used to set the SO_SNDBUF socket option for the LBT-RU sending socket.

  In some cases the OS will not allow all of this value to be used.

  See Socket Buffer Sizes for platform-dependent information. A value of 0 instructs UM to use the OS default.

  Scope: | context
  Type: | lbm_ulong_t
  Units: | bytes
  Default value: | 1048576 (1MB)
  When to Set: | Can only be set during object initialization.

## transport_lbtru_transmission_window_limit (source) <-

  Caps the total amount of memory that a transmission window uses, which includes data and overhead.

  For example, if the transport_lbtru_transmission_window_size (source) is 24 MB (default) and the source sends 20 byte messages with the "flush" flag, the actual amount of memory used can approximate 300 MB. The default value of this option does not limit the transmission window.

  Scope: | source
  Type: | size_t
  Units: | bytes
  Default value: | 0 (no limit)
  When to Set: | Can only be set during object initialization.

## transport_lbtru_transmission_window_size (source) <-

  The maximum amount of buffered data that the LBT-RU source is allowed to retain for retransmissions.

  The minimum valid value is 65536 bytes. This option affects the transport session underlying the source rather than the source itself. The transport session uses the value from the first source created on the session and ignores subsequent sources' configuration.

  Refer to Source Object for additional information.

  Scope: | source
  Type: | size_t
  Units: | bytes
  Default value: | 25165824 (24 MB)
  When to Set: | Can only be set during object initialization.