Radio Sniffer Agent¶
IoT-LAB MQTT Radio Sniffer agent¶
Radio Sniffer Agent provides access to the IoT-LAB nodes radio sniffer.
Packets are encapsulated as pcap
(wireshark:pcap).
Radio Sniffer agent base topic:
{prefix}/iot-lab/radiosniffer/{site}
Every topics from radio sniffer agent topics start by this topic prefix
param prefix: | configured prefix |
---|---|
param site: | site where the agent is run |
Topics Summary¶
Topic | Type | |
---|---|---|
Radio sniffer agent | ||
{prefix}/iot-lab/radiosniffer/{site} |
||
{snifferagenttopic}/error/ |
Error | |
{snifferagenttopic}/ctl/stopall |
Request | |
Node | ||
{snifferagenttopic}/{archi}/{num} /ctl/stop |
Request | |
Raw packet sniffer | ||
{snifferagenttopic}/raw/ctl/header |
Request | |
{snifferagenttopic}/{archi}/{num} /raw/ctl/start |
Request | |
{snifferagenttopic}/{archi}/{num} /raw/ctl/stop |
Request | |
{snifferagenttopic}/{archi}/{num} /raw/data |
Output
|
Radio sniffer Agent global topics¶
Error Topic¶
Asynchronous error messages are posted to error topic. Failure on requests are not duplicated here.
{snifferagenttopic}/error/
For format see: Error topic
Stop all redirections¶
Stop all started sniffer.
stopall request: |
||
---|---|---|
Topic: | {snifferagenttopic}/ctl/stopall |
|
Message | Topic | Payload |
Request | {topic}/request/{clientid}/{requestid} | empty |
Reply | {topic}/reply/{clientid}/{requestid} | empty or error_msg |
Node topics¶
Stop sniffer¶
Stop given node sniffer.
stop request: |
||
---|---|---|
Topic: | {snifferagenttopic}/{archi}/{num} /ctl/stop |
|
Message | Topic | Payload |
Request | {topic}/request/{clientid}/{requestid} | empty |
Reply | {topic}/reply/{clientid}/{requestid} | empty or error_msg |
Raw packet sniffer¶
Topics to access to the node sniffer in raw packet mode.
Sniffer listen to all radio packets on a given channel
.
It must first be started in raw
mode to have the raw packet output.
Global pcap header must be queried independently first.
param channel: | 802.15.4 channel between 11 and 26 |
---|
Start sniffer in raw mode¶
Start one node sniffer in raw mode on given channel
.
raw/start request: |
||
---|---|---|
Topic: | {snifferagenttopic}/{archi}/{num} /raw/ctl/start |
|
Message | Topic | Payload |
Request | {topic}/request/{clientid}/{requestid} | Channel string |
Reply | {topic}/reply/{clientid}/{requestid} | empty or error_msg |
Stop raw sniffer¶
Equivalent to Stop sniffer adde here for completeness
raw/stop request: |
||
---|---|---|
Topic: | {snifferagenttopic}/{archi}/{num} /raw/ctl/stop |
|
Message | Topic | Payload |
Request | {topic}/request/{clientid}/{requestid} | empty |
Reply | {topic}/reply/{clientid}/{requestid} | empty or error_msg |
RAW packet sniffer PCAP global header¶
PCAP format consists of two main parts, a global header, then messages with a per message header: wireshark:pcap
This request returns the global header for raw
mode.
raw/header request: |
||
---|---|---|
Topic: | {snifferagenttopic}/raw/ctl/header |
|
Message | Topic | Payload |
Request | {topic}/request/{clientid}/{requestid} | empty |
Reply | {topic}/reply/{clientid}/{requestid} | Global pcap header |
Raw packet sniffer¶
Sniffer sends 802.15.4 raw radio frames encapsulated as pcap
.
One sniffed packet is sent by message. PCAP payload format is:
Packet PCAP Header | Packet data
PCAP Header contains:
:4 bytes: Timestamp seconds
:4 bytes: Timestamp microseconds
:4 bytes: Number of octet saved
:4 bytes: Actual lengt of packet
802.15.4 RAW sniffer channel | ||
---|---|---|
Topic: | {snifferagenttopic}/{archi}/{num} /raw/data |
|
Message | Topic | Payload |
Output | {topic}/out | PCAP packet |