UM C API  6.16
lbm_src_transport_stats_lbtrm_t_stct Struct Reference

Structure that holds datagram statistics for source LBT-RM transports. More...

#include <lbm.h>

Data Fields

lbm_ulong_t msgs_sent
 Number of LBT-RM datagrams sent. (Cumulative) More...
 
lbm_ulong_t bytes_sent
 Number of LBT-RM datagram bytes sent, i.e., the total of lengths of all LBT-RM packets including UM header information. (Cumulative)
 
lbm_ulong_t txw_msgs
 Number of LBT-RM datagrams currently in the transmission window. (Snapshot) More...
 
lbm_ulong_t txw_bytes
 Number of bytes currently in the transmission window. See txw_msgs (above) for a description of the transmission window. Typically, this count approaches its window size or exceeds it by a small amount. (Snapshot)
 
lbm_ulong_t nak_pckts_rcved
 Number of NAK packets received by this source transport. UM batches NAKs into NAK packets to save network bandwidth. This should always be less than or equal to naks_rcved (below). (Cumulative)
 
lbm_ulong_t naks_rcved
 Number of individual NAKs received by the source transport. (Cumulative) More...
 
lbm_ulong_t naks_ignored
 Number of NAKs this source transport ignored and sent an NCF with reason code "ignored". (Cumulative) More...
 
lbm_ulong_t naks_shed
 Number of NAKs this source transport has shed by sending an NCF with reason code "shed". (Cumulative) More...
 
lbm_ulong_t naks_rx_delay_ignored
 Number of NAKs this source transport has not yet processed because doing so would exceed its retransmit rate limit (set by configuration option transport_lbtrm_retransmit_rate_limit (context), default 5Mbps). (Cumulative) More...
 
lbm_ulong_t rxs_sent
 Number of LBT-RM datagrams retransmitted by this source transport (incremented under the same circumstances as rx_bytes_sent, below). (Cumulative) More...
 
lbm_ulong_t rctlr_data_msgs
 Number of LBT-RM datagrams currently queued by the data rate limiter. (Snapshot) More...
 
lbm_ulong_t rctlr_rx_msgs
 Number of LBT-RM transport retransmission datagrams currently queued by the retransmit rate limiter. (Snapshot) More...
 
lbm_ulong_t rx_bytes_sent
 Number of LBT-RM transport total bytes retransmitted by this source transport (triggered under the same circumstances as rxs_sent, above). (Cumulative) More...
 

Detailed Description

Structure that holds datagram statistics for source LBT-RM transports.

Note that when stats are sampled, the fields in the structure are not necessarily from the same instant in time. The structure might be updated concurrently with it being sampled, and while each structure field is atomically read, the field values can be skewed slightly across time.

See lbm_src_transport_stats_lbtrm_t_stct for field definitions.

Cumulative vs Snapshot

Most UM statistics are cumulative. For example, msgs_sent starts at zero and grows over time as more and more messages are sent.

But some statistics are snapshots, meaning that they represent the value at a moment in time. These values can go up and down. For example, txw_msgs indicates the number of bytes in the transmission window at the time of the snapshot.

Field Documentation

lbm_ulong_t lbm_src_transport_stats_lbtrm_t_stct::msgs_sent

Number of LBT-RM datagrams sent. (Cumulative)

Depending on batching settings, a single LBT-RM datagram may contain one or more messages, or a fragment of a larger message. With LBT-RM, larger messages are split into fragment sizes limited by configuration option transport_lbtrm_datagram_max_size (context) (default 8KB).

lbm_ulong_t lbm_src_transport_stats_lbtrm_t_stct::naks_ignored

Number of NAKs this source transport ignored and sent an NCF with reason code "ignored". (Cumulative)

A source transport ignores a NAK for a datagram it has already recently retransmitted. How "recently" is determined by the configuration option source transport_lbtrm_ignore_interval (source) (default 500ms). If this count is high, a receiver transport may be having trouble receiving retransmissions, or the ignore interval may be set too long.

lbm_ulong_t lbm_src_transport_stats_lbtrm_t_stct::naks_rcved

Number of individual NAKs received by the source transport. (Cumulative)

When a source transport receives a NAK from a receiver transport, it may respond by re-transmitting the requested LBT-RM datagram, or it may send an NCF. The NAKing receiver transport responds to the NCF by waiting (timeout set by transport_lbtrm_nak_suppress_interval (receiver), default 1000 ms), then re-sending the NAK.

lbm_ulong_t lbm_src_transport_stats_lbtrm_t_stct::naks_rx_delay_ignored

Number of NAKs this source transport has not yet processed because doing so would exceed its retransmit rate limit (set by configuration option transport_lbtrm_retransmit_rate_limit (context), default 5Mbps). (Cumulative)

For each of these NAKs, the source transport immediately sends an NFC rx_delay, then queues the retransmission for a later send within the rate limit. If this count is high, one or more crybaby receiver transports may be clogging the source transport's retransmit queue.

lbm_ulong_t lbm_src_transport_stats_lbtrm_t_stct::naks_shed

Number of NAKs this source transport has shed by sending an NCF with reason code "shed". (Cumulative)

When a source transport's retransmit rate limiter and retransmit queue are both at maximum, it responds to a NAK by sending an "NCF shed", and does not retransmit. The receiver transport should wait, then send another NAK. If this count is high, one or more crybaby receiver transports may be clogging the source transport's retransmit queue.

lbm_ulong_t lbm_src_transport_stats_lbtrm_t_stct::rctlr_data_msgs

Number of LBT-RM datagrams currently queued by the data rate limiter. (Snapshot)

When a source transport attempts to send messages (any type) faster than its data rate limiter allows (set by configuration option transport_lbtrm_data_rate_limit (context), default 10Mbps), the data rate limiter queues the messages until they can be sent within the data rate limit.

lbm_ulong_t lbm_src_transport_stats_lbtrm_t_stct::rctlr_rx_msgs

Number of LBT-RM transport retransmission datagrams currently queued by the retransmit rate limiter. (Snapshot)

When a source transport attempts to send retransmissions faster that its retransmit rate limiter allows (set by configuration option transport_lbtrm_retransmit_rate_limit (context), default 5Mbps), the retransmit rate limiter queues retransmissions until they can be sent within the rate limit. naks_rx_delay_ignored (above) will generally also rise if this count is high.

lbm_ulong_t lbm_src_transport_stats_lbtrm_t_stct::rx_bytes_sent

Number of LBT-RM transport total bytes retransmitted by this source transport (triggered under the same circumstances as rxs_sent, above). (Cumulative)

In a normal, light-loss scenario, most NAKs induce a retransmission. When losses becomes heavy and/or many receiver transports begin losing the same LBT-RM datagrams, NCF-related no-retransmit counts (naks_ignored, naks_shed and naks_rx_delay_ignored) may begin to inflate, and retransmissions (rxs_sent/rx_bytes_sent counts) may become significantly lower than NAKS received (naks_rcved).

lbm_ulong_t lbm_src_transport_stats_lbtrm_t_stct::rxs_sent

Number of LBT-RM datagrams retransmitted by this source transport (incremented under the same circumstances as rx_bytes_sent, below). (Cumulative)

In a normal, light-loss scenario, most NAKs induce a retransmission. When losses becomes heavy and/or many receiver transports begin losing the same LBT-RM datagrams, NCF-related no-retransmit counts (naks_ignored, naks_shed and naks_rx_delay_ignored) may begin to inflate, and retransmissions (rxs_sent/rx_bytes_sent counts) may become significantly lower than NAKS received (naks_rcved).

lbm_ulong_t lbm_src_transport_stats_lbtrm_t_stct::txw_msgs

Number of LBT-RM datagrams currently in the transmission window. (Snapshot)

Each source transport session maintains a transmission window buffer (the size of which is set by transport_lbtrm_transmission_window_size (source), default 24MB). When the source transport receives a NAK, the corresponding message for retransmission must be found in this transmission window.


The documentation for this struct was generated from the following file: