RadioWatcher contributed code description
The RadioWatcher application collects MAC and PHY layer statistics for an ns3 WifiNetDevice and periodically sends these over a local TCP socket to external listeners outside the simulation. The statistic reports are formatted in JSON to allow for an easy processing.
The typical use case of the RadioWatcher application is an emulation scenario (using the ns3 realtime scheduler) in combination with real applications running outside the emulation environment. In such a scenario the wireless communication including the node topology is emulated by ns3 while the transmitted data is generated and processed in real-time by applications the outside applications. The ns3 nodes represent the radio device (e.g. WiFi) and are connected to the external applications using tap bridges and the TapBridge module. The RadioWatcher allows for the real-time monitoring of the radio state and channel characteristics as they are seen by each node. The RadioWatcher collects statistics aggregated for the whole radio device as well as grouped by the individual communication peers, i.e. separately for each wireless link. Thus, it delivers detailed state information for the active wireless links of a node. By connecting to the TCP port provided by a RadioWatcher, an external application receives periodical updates of the collected radio and channel parameters. These may be used for different purposes like cross-layer processing, usage in routing metrics or network visualization.