network_monitor_udp

Summary

network_monitor_udp
Version:

1.0.11

Description:

Facilities to monitor a network connection by sending UDP packets from a client to a server, which bounces them back to the client. The client collects statistics on latency and loss. The server is a C standalone utility or a ROS node. The client can be a ROS node, a standalone utility or a python class.

Maintainers:
  • Devon Ash <dash AT clearpathrobotics DOT com>
Licenses:
  • BSD
Urls:
Authors:
  • Blaise Gassend
  • Catalin Drula
BuildDepends:
BuildtoolDepends:
 
BuildExportDepends:
 
ExecDepends:
Exports:
  • <rosdoc config=”rosdoc.yaml”/>

Types

Message types

network_monitor_udp/UdpSink
Field:
  • magic[4] (uint8) –
  • send_time (float64) –
  • echo_time (float64) –
  • seqnum (int32) –
  • source_id (int32) –

## data send from sink to source

### data send from sink to source
uint8[4] magic
float64 send_time
float64 echo_time
int32 seqnum
int32 source_id
network_monitor_udp/UdpMonitor
Field:
  • header (std_msgs/Header) –
  • server_host (string) –
  • server_port (uint32) –
  • source_interface (string) –
  • packet_rate (float32) –
  • packet_size (uint32) –
  • latency_bin_limits[] (float32) –
  • latency_bin_values[] (float32) –
  • average_latency_fresh (float32) –
  • loss_fresh (float32) –
  • average_latency_all (float32) –
Header header

# Summary of the client settings
string server_host
uint32 server_port
string source_interface
float32 packet_rate
uint32 packet_size

# Proportion of packets that have latencies within a bin. The first bin
# starts at zero, bins end at the value in latency_bin_values. 
# len(latency_bin_values) = len(latency_bin_limits) + 1
float32[] latency_bin_limits
float32[] latency_bin_values

# Average latency in seconds and loss rate (between 0 and 1) for packets
# that fall within one of the bins.
float32 average_latency_fresh
float32 loss_fresh

# Average latency in seconds for all
# received packets, including very old ones.
float32 average_latency_all

Action types

network_monitor_udp/Linktest
Constant (Goal):
 
  • DEFAULT_UPDATE_INTERVAL (float32):0.15
  • DEFAULT_BW (float32):5000000.0
  • DEFAULT_BWTYPE (network_monitor_udp/char):99
  • BW_CONSTANT (network_monitor_udp/char):99
  • BW_ADAPTIVE (network_monitor_udp/char):97
  • LIM1 (float32):-0.3
  • LIM2 (float32):0.3
  • C1 (float32):-0.05
  • C2 (float32):0.2
  • DEFAULT_LATENCY_THRESHOLD (float32):0.01
  • DEFAULT_PKTLOSS_THRESHOLD (float32):0.5
  • DEFAULT_PKTSIZE (int32):1500
Field (Goal):
  • duration (float32) –
  • update_interval (float32) –
  • bw (float32) –
  • bw_type (network_monitor_udp/char) –
  • latency_threshold (float32) –
  • pktloss_threshold (float32) –
  • tos (uint8) –
  • pktsize (int32) –
  • ros_returnpath (bool) –
  • roundtrip (bool) –
  • max_return_time (float32) –
  • rostopic_prefix (string) –
  • sink_ip (string) –
  • sink_port (int32) –
  • latencybins[] (float32) –
Field (Result):
  • latency (float32) –
  • loss (float32) –
  • bandwidth (float32) –
  • latency_histogram[] (float32) –
Field (Feedback):
 
  • latency (float32) –
  • loss (float32) –
  • bandwidth (float32) –
  • latency_histogram[] (float32) –
  • stamp (time) –

Goal definition

# Goal definition
float32 DEFAULT_UPDATE_INTERVAL=0.15    # sec
float32 DEFAULT_BW=5000000.0            # bps
char DEFAULT_BWTYPE=99                  # default bw type: constant              
char BW_CONSTANT=99                     # 'c'
char BW_ADAPTIVE=97                     # 'a'
float32 LIM1=-0.3                       # adaptive alg constants
float32 LIM2=0.3
float32 C1=-0.05
float32 C2=0.2
float32 DEFAULT_LATENCY_THRESHOLD=0.01  # sec
float32 DEFAULT_PKTLOSS_THRESHOLD=0.5   # %
int32 DEFAULT_PKTSIZE=1500              # bytes

float32 duration                        # sec
float32 update_interval                 # sec
float32 bw                              # bps 
char bw_type                            # BW_CONSTANT | BW_ADAPTIVE
float32 latency_threshold               # sec
float32 pktloss_threshold               # %
uint8 tos
int32 pktsize                           # bytes
bool ros_returnpath                     # default: false == UDP
bool roundtrip                          # default: false == oneway
float32 max_return_time                 # sec
string rostopic_prefix
string sink_ip
int32 sink_port
float32[] latencybins
---
# Result definition
float32 latency
float32 loss
float32 bandwidth 
float32[] latency_histogram
---
# Feedback definition
float32 latency
float32 loss 
float32 bandwidth
float32[] latency_histogram
time stamp