lbm_rcv_transport_stats_lbtrm_t_stct Struct Reference

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

#include <lbm.h>


Data Fields

lbm_ulong_t msgs_rcved
lbm_ulong_t bytes_rcved
lbm_ulong_t nak_pckts_sent
lbm_ulong_t naks_sent
lbm_ulong_t lost
lbm_ulong_t ncfs_ignored
lbm_ulong_t ncfs_shed
lbm_ulong_t ncfs_rx_delay
lbm_ulong_t ncfs_unknown
lbm_ulong_t nak_stm_min
lbm_ulong_t nak_stm_mean
lbm_ulong_t nak_stm_max
lbm_ulong_t nak_tx_min
lbm_ulong_t nak_tx_mean
lbm_ulong_t nak_tx_max
lbm_ulong_t duplicate_data
lbm_ulong_t unrecovered_txw
lbm_ulong_t unrecovered_tmo
lbm_ulong_t lbm_msgs_rcved
lbm_ulong_t lbm_msgs_no_topic_rcved
lbm_ulong_t lbm_reqs_rcved
lbm_ulong_t dgrams_dropped_size
lbm_ulong_t dgrams_dropped_type
lbm_ulong_t dgrams_dropped_version
lbm_ulong_t dgrams_dropped_hdr
lbm_ulong_t dgrams_dropped_other
lbm_ulong_t out_of_order


Field Documentation

lbm_ulong_t lbm_rcv_transport_stats_lbtrm_t_stct::msgs_rcved

Number of LBT-RM datagrams received. 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 (default 8KB).

lbm_ulong_t lbm_rcv_transport_stats_lbtrm_t_stct::bytes_rcved

Number of LBT-RM datagram bytes received, i.e., the total of lengths of all LBT-RM packets including UM header information.

lbm_ulong_t lbm_rcv_transport_stats_lbtrm_t_stct::nak_pckts_sent

Number of NAK packets sent by the receiver transport. UM batches NAKs into NAK packets to save network bandwidth. This should always be less than or equal to the number of individual NAKs sent (naks_sent, below).

lbm_ulong_t lbm_rcv_transport_stats_lbtrm_t_stct::naks_sent

Number of individual NAKs sent by the receiver transport. This may differ from the tally of lost datagrams (below) due to reasons such as

lbm_ulong_t lbm_rcv_transport_stats_lbtrm_t_stct::lost

Number of LBT-RM datagrams detected as lost.

lbm_ulong_t lbm_rcv_transport_stats_lbtrm_t_stct::ncfs_ignored

Number of NCFs received from a source transport with reason code "ignored". If a source transport receives a NAK for a datagram that it has recently retransmitted, it sends an "NCF ignored" and does not retransmit. How "recently" is determined by the configuration option source transport_lbtrm_ignore_interval (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_rcv_transport_stats_lbtrm_t_stct::ncfs_shed

Number of NCFs received with reason code "shed". When a source transport's retransmit queue and rate limiter 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_rcv_transport_stats_lbtrm_t_stct::ncfs_rx_delay

Number of NCFs received with reason code "rx_delay". When a source transport's retransmit rate limiter prevents it from immediately retransmitting any more lost datagrams, it responds to a NAK by sending an "NCF rx_delay", then queues the retransmission for a later send. The receiver transport should wait for the retransmission and not immediately 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_rcv_transport_stats_lbtrm_t_stct::ncfs_unknown

Number of NCFs received with reason code "unknown". These are NCFs with a reason code this receiver transport does not recognize. After a delay (set by configuration option transport_lbtrm_nak_suppress_interval (default 1000ms), it resends the NAK. This counter should never be greater than 0 unless applications linked with different versions of Ultra Messaging software coexist on the same network.

lbm_ulong_t lbm_rcv_transport_stats_lbtrm_t_stct::nak_stm_min

Minimum time (in milliseconds), i.e., the shortest time recorded so far for a lost message to be recovered. If this time is greater than configuration option transport_lbtrm_nak_backoff_interval, it may be taking multiple NAKs to initiate retransmissions, indicating a lossy network.

lbm_ulong_t lbm_rcv_transport_stats_lbtrm_t_stct::nak_stm_mean

Mean time (in milliseconds) in which loss recovery was accomplished. This is an exponentially weighted moving average (weighted to more recent) for accumulated measured recovery times. Ideally this field should be as close to your minimum recovery time (nak_stm_min, above) as possible. High mean recovery times indicate a lossy network.

lbm_ulong_t lbm_rcv_transport_stats_lbtrm_t_stct::nak_stm_max

Maximum time (in milliseconds), i.e., the longest time recorded so far for a lost message to be recovered. If this time is near or equal to the configuration option transport_lbtrm_nak_generation_interval setting, you have likely experienced some level of unrecoverable loss.

lbm_ulong_t lbm_rcv_transport_stats_lbtrm_t_stct::nak_tx_min

Minimum number of times per lost message that a receiver transport transmitted a NAK, i.e., the lowest value collected so far. A value greater than 1 indicates a chronically lossy network.

lbm_ulong_t lbm_rcv_transport_stats_lbtrm_t_stct::nak_tx_mean

Mean number of times per lost message that a receiver transport transmitted a NAK. Ideally this should be at or near 1. A higher value indicates a lossy network. This is an exponentially weighted moving average (weighted to more recent) for accumulated NAKs per lost message.

lbm_ulong_t lbm_rcv_transport_stats_lbtrm_t_stct::nak_tx_max

Maximum number of times per lost message that a receiver transport transmitted a NAK, i.e., the highest value collected so far. A value higher than 1 suggests that there may have been some unrecoverable loss on the network during the sample period. A significantly high value (compared to the mean number) implies an isolated incident.

lbm_ulong_t lbm_rcv_transport_stats_lbtrm_t_stct::duplicate_data

Number of duplicate LBT-RM datagrams received. A large number can indicate a lossy network, primarily due to other receiver transports requesting retransmissions that this receiver transport has already successfully received. Such duplicates require extra effort for filtering, and this should be investigated.

lbm_ulong_t lbm_rcv_transport_stats_lbtrm_t_stct::unrecovered_txw

Number of LBT-RM datagrams unrecovered (LBM_MSG_UNRECOVERABLE_LOSS delivered to receiver application) due to transmission window advance. This means that the message was no longer in the source-side transmission window and therefore not retransmitted. The window size is set by transport configuration option lbtrm_transmission_window_size (default 24MB).

lbm_ulong_t lbm_rcv_transport_stats_lbtrm_t_stct::unrecovered_tmo

Number of LBT-RM datagrams unrecovered due to a retransmission not received within the NAK generation interval (set by configuration option transport_lbtrm_nak_generation_interval; default 10,000ms). Note: Receivers for these messages' topics will also report related messages as unrecoverable, with LBM_MSG_UNRECOVERABLE_LOSS for an individual message and LBM_MSG_UNRECOVERABLE_LOSS_BURST for a burst loss event. However, it is possible for these application-level message declarations to occur even without increments to this counter, as the transport is unaware of the topic content of messages and may still be trying to deliver related lost packets.

lbm_ulong_t lbm_rcv_transport_stats_lbtrm_t_stct::lbm_msgs_rcved

Number of messages or message fragments received over an LBT-RM transport. A single datagram may contain one or more messages or a fragment of a larger message. For fragmented messages larger than configuration option transport_lbtrm_datagram_max_size (default 8KB), this count reflects the number of datagrams used to constitute those messages. Thus, this number is equal to or greater than the datagram counter (msgs_rcved, above). This number also includes messages received for which there was no interested receiver, which is tallied in the lbm_msgs_no_topic_rcved counter (below).

lbm_ulong_t lbm_rcv_transport_stats_lbtrm_t_stct::lbm_msgs_no_topic_rcved

Number of messages received that were not for a topic of interest to the receiver. A high value (relative to, or approaching lbm_msgs_rcved above) indicates more CPU time required to filter out uninteresting topics, in which case, consider reconfiguring sources to filter more aggressively at the transport layer.

lbm_ulong_t lbm_rcv_transport_stats_lbtrm_t_stct::lbm_reqs_rcved

Number of UM request messages received (message type LBM_MSG_REQUEST).

lbm_ulong_t lbm_rcv_transport_stats_lbtrm_t_stct::dgrams_dropped_size

Number of datagrams discarded due to being smaller than the size designated in the datagram's size field.

lbm_ulong_t lbm_rcv_transport_stats_lbtrm_t_stct::dgrams_dropped_type

Number of datagrams discarded due to bad packet type. The datagram's type field must match the expectations of the receiver transport.

lbm_ulong_t lbm_rcv_transport_stats_lbtrm_t_stct::dgrams_dropped_version

Number of datagrams discarded due to version mismatch. The datagram's version field must match the expectations of the receiver transport.

lbm_ulong_t lbm_rcv_transport_stats_lbtrm_t_stct::dgrams_dropped_hdr

Number of datagrams discarded due to bad header type. These datagrams appeared to be intact, but with an unrecognizable header format.

lbm_ulong_t lbm_rcv_transport_stats_lbtrm_t_stct::dgrams_dropped_other

Number of unrecognizable datagrams discarded due to reasons other than those determined by the above counts. They could be garbled, or possibly be from foreign or incompatible software at the other end.

lbm_ulong_t lbm_rcv_transport_stats_lbtrm_t_stct::out_of_order

Number of out-of-order LBT-RM transport datagrams received. A datagram is counted as out of order if it fills a previously detected sequence gap, but is not a retransmission. Note that if the duplicates counter (duplicate_data, above) increases along with this statistic, this implies the arrivals of retransmitted datagrams before their originals.


The documentation for this struct was generated from the following file:
Generated on Thu Mar 6 13:11:18 2014 for LBM API by  doxygen 1.5.2