FIP-UDP
FWP Protocol
FWP Datagram
FWP (FipWatcher Protocol) defines the data structure of the UDP packets sent by the FIP-UDP service.
By default, the UDP packets are broadcast to UDP destination port 57117. For Wireshark users, it is possible to use a LUA dissector (fwp.lua) provided in the FipCapture (.tar.xz) archive. Alternatively, it is possible to use the Exoligent FipLabs GUI provided in the WorldFipTools6 software package.
The general structure of a FWP datagram is as follows:
Name | Type | Length | Description |
---|---|---|---|
Identification | U8[2] | 16 bits | Identification of the FWP protocol (46h 57h: "FW") |
Version | U8[2] | 16 bits | FWP datagram version (Major/Minor) |
Sequence Number | U64 | 64 bits | Current datagram number |
Events Number | U32 | 32 bits | Number of events contained in this datagram |
Event 1 | |||
Identifier | U8 | 8 bits | Event identifier |
Length | U16 | 16 bits | Event length in bytes (id[1] + len[2] + event payload) |
Data | U8[] | - | Payload of the event 1 |
Other Events [...] | |||
Event n | |||
Identifier | U8 | 8 bits | Event identifier |
Length | U16 | 16 bits | Event length in bytes (id[1] + len[2] + event payload) |
Data | U8[] | - | Payload of the event n |
The events associated with this datagram are of two types:
- FIP Frame Received Event
- System LifeSign Event
In the rest of this chapter, we will see a description of these events.
[Event] FIP Frame Received
This event is generated each time a FIP/WorldFIP frame is received by the FIPWatcher device.
Name | Type | Length | Description |
---|---|---|---|
Identifier | U8 | 8 bits | Event identifier (C0h: FIP frame reception event id) |
Length | U16 | 16 bits | Event length in bytes (id[1] + len[2] + event payload) |
Frame Status | U16 | 16 bits | FIP frame status report |
Frame Number | U64 | 64 bits | Received FIP frame number |
Epoch Time | U64 | 64 bits | Event's unix epoch time (us) |
Frame Duration | U8[3] | 24 bits | Frame Duration (1/10 us) |
Inter-Frame Duration | U8[3] | 24 bits | Inter-Frame Duration (1/10 us) |
Glitches Counter | U16 | 16 bits | Number of glitches detected in the frame |
Jitter | U8 | 8 bits | Percentage of average Tbit expressed in 0.5% steps |
Control | U8 | 8 bits | FIP Frame: Control byte |
App Data | U8[] | n bits | FIP Frame: Application layer data |
Checksum | U16 | 16 bits | FIP Frame: Checksum word |
[Event] System LifeSign
This event is sent periodically to indicate that the service is alive. In addition, it contains some status data and statistics about the FIPUDP service.
To set its transmission period, go to FIPUDP Daemon section.
Name | Type | Length | Description |
---|---|---|---|
Identifier | U8 | 8 bits | Event identifier (C1h: System lifesign event id) |
Length | U16 | 16 bits | Event length in bytes (id[1] + len[2] + event payload) |
Lifesign Counter | U64 | 64 bits | System monitoring event counter |
Epoch Time | U64 | 64 bits | Event's unix epoch time (us) |
Product Number | U32 | 32 bits | FIPWatcher product number |
CPU Infos | |||
Load | FLOAT | 32 bits | CPU load (%) |
Temperature | FLOAT | 32 bits | CPU temperature (°C) |
MMC Infos | |||
Total KB | U32 | 32 bits | MMC: total memory size in KB |
Used KB | U32 | 32 bits | MMC: memory used in KB |
Available KB | U32 | 32 bits | MMC: memory available in KB |
Used Percent | FLOAT | 32 bits | MMC: memory used percent |
RAM Infos | |||
Total KB | U32 | 32 bits | RAM: total memory size in KB |
Used KB | U32 | 32 bits | RAM: memory used in KB |
Available KB | U32 | 32 bits | RAM: memory available in KB |
Used Percent | FLOAT | 32 bits | RAM: memory used percent |
FIPUDP Daemon Infos | |||
+ Buffer Infos | |||
Total KB | U32 | 32 bits | FIPUDP Buffer: total memory size in KB |
Used KB | U32 | 32 bits | FIPUDP Buffer: memory used in KB |
Available KB | U32 | 32 bits | FIPUDP Buffer: memory available in KB |
Used Percent | FLOAT | 32 bits | FIPUDP Buffer: memory used percent |
+ UDP Activity | |||
Status | U8 | 8 bits | UDP: activity status (0:off, 1:on) |
Total ON Duration | U64 | 64 bits | UDP: total duration of activity (us) |
Total OFF Duration | U64 | 64 bits | UDP: total duration of inactivity (us) |
Last Start Epoch | U64 | 64 bits | UDP: last date of start of activity |
Last Stop Epoch | U64 | 64 bits | UDP: last date of stop of activity |
Last ON Duration | U64 | 64 bits | UDP: last duration of activity |
Last OFF Duration | U64 | 64 bits | UDP: last duration of inactivity |
Loss Counter | U16 | 16 bits | UDP: number of loss of activity |
+ UDP RX Statistics | |||
Frame Count | U64 | 64 bits | UDP: RX frame count |
Frame Rate | U32 | 32 bits | UDP: RX frame rate (frame per second: fps) |
Byte Rate | U64 | 64 bits | UDP: RX byte rate (byte per second: B/s) |
+ UDP TX Statistics | |||
Frame Count | U64 | 64 bits | UDP: TX frame count |
Frame Rate | U32 | 32 bits | UDP: TX frame rate (frame per second: fps) |
Byte Rate | U64 | 64 bits | UDP: TX byte rate (byte per second: B/s) |
+ FIP Activity | |||
Status | U8 | 8 bits | FIP: activity status (0:off, 1:on) |
Total ON Duration | U64 | 64 bits | FIP: total duration of activity (us) |
Total OFF Duration | U64 | 64 bits | FIP: total duration of inactivity (us) |
Last Start Epoch | U64 | 64 bits | FIP: last date of start of activity |
Last Stop Epoch | U64 | 64 bits | FIP: last date of stop of activity |
Last ON Duration | U64 | 64 bits | FIP: last duration of activity |
Last OFF Duration | U64 | 64 bits | FIP: last duration of inactivity |
Loss Counter | U16 | 16 bits | FIP: number of loss of activity |
+ FIP RX Statistics | |||
Frame Count | U64 | 64 bits | FIP: RX frame count |
Frame Rate | U32 | 32 bits | FIP: RX frame rate (frame per second: fps) |
Byte Rate | U64 | 64 bits | FIP: RX byte rate (byte per second: B/s) |
+ FIP Network Infos | |||
Type | U8 | 8 bits | Frame type (0:unknown, 1:fip, 2:worldfip) |
Bitrate | U8 | 8 bits | Frame bitrate (0:unknown, 1:31.25kbps, 2:1Mbps, 3:2.5Mbps, 4:5Mbps) |
+ FIP Error Counters | |||
PRE | U64 | 64 bits | Physical layer: no frame preamble (may be a glitch detection) |
FSD | U64 | 64 bits | Physical layer: no frame start delimiter (fsd) |
FED | U64 | 64 bits | Physical layer: no frame end delimiter (fed) |
CTL | U64 | 64 bits | Datalink layer: unknown fip control byte |
FCS | U64 | 64 bits | Datalink layer: bad frame checksum |
PDU | U64 | 64 bits | Application layer: unknown fip pdu |
LEN | U64 | 64 bits | Application layer: bad data length |
GLC | U64 | 64 bits | HDL coworker: overflow on glitch counter |
IFC | U64 | 64 bits | HDL coworker: overflow on inter-frame counter |
FC | U64 | 64 bits | HDL coworker: overflow on frame counter |