Display Filters
Complete reference for HDDS Wireshark display filters.
Basic Filters
By Vendor
Filter packets from specific DDS implementations:
hdds.vendor == "HDDS"
hdds.vendor == "FastDDS (eProsima)"
hdds.vendor == "RTI Connext"
hdds.vendor == "Cyclone DDS"
hdds.vendor == "OpenDDS (OCI)"
hdds.vendor == "RustDDS"
By Topic Name
Filter by topic (requires inline QoS in DATA submessages):
hdds.topic contains "temperature"
hdds.topic == "rt/chatter"
hdds.topic matches "sensor.*"
By Type Name
Filter by DDS type:
hdds.type_name contains "Temperature"
hdds.type_name == "std_msgs::msg::String"
Submessage Filters
By Submessage Kind
hdds.submsg.kind == "DATA"
hdds.submsg.kind == "HEARTBEAT"
hdds.submsg.kind == "ACKNACK"
hdds.submsg.kind == "GAP"
hdds.submsg.kind == "INFO_TS"
By Sequence Number
hdds.seq_num > 100
hdds.seq_num == 42
hdds.first_seq >= 1 && hdds.last_seq <= 1000
Discovery Filters
SPDP Traffic (Participant Discovery)
hdds.writer_id contains "00:01:00:c2"
SEDP Traffic (Endpoint Discovery)
Publications:
hdds.writer_id contains "00:00:03:c2"
Subscriptions:
hdds.writer_id contains "00:00:04:c2"
Combined Filters
HDDS DATA with topic
hdds.vendor == "HDDS" && hdds.submsg.kind == "DATA" && hdds.topic
High sequence numbers from HDDS
hdds.vendor == "HDDS" && hdds.seq_num > 1000
Heartbeats with large ranges
hdds.submsg.kind == "HEARTBEAT" && (hdds.last_seq - hdds.first_seq) > 100
Cross-vendor communication
hdds.vendor == "HDDS" || hdds.vendor == "FastDDS (eProsima)"
Capture Filters
For live capture, use BPF filters (not display filters):
All RTPS Traffic
udp portrange 7400-7500
Specific Domain (domain 0)
udp port 7400 or udp port 7401
Multicast Only
udp dst net 239.255.0.0/16
Unicast Only
udp and not dst net 239.0.0.0/8
Protocol Fields Reference
| Field | Type | Description |
|---|---|---|
hdds.magic | string | RTPS magic ("RTPS") |
hdds.version | string | Protocol version (e.g., "2.3") |
hdds.vendor | string | Vendor name |
hdds.guid_prefix | bytes | 12-byte GUID prefix |
hdds.submsg.kind | string | Submessage type name |
hdds.submsg.flags | uint8 | Submessage flags |
hdds.submsg.length | uint16 | Submessage length |
hdds.reader_id | bytes | Reader entity ID |
hdds.writer_id | bytes | Writer entity ID |
hdds.seq_num | uint64 | Sequence number |
hdds.first_seq | uint64 | First sequence (HEARTBEAT) |
hdds.last_seq | uint64 | Last sequence (HEARTBEAT) |
hdds.topic | string | Topic name (from inline QoS) |
hdds.type_name | string | Type name (from inline QoS) |
hdds.payload_len | uint32 | Payload length in bytes |
Tips
Coloring Rules
Add coloring rules to highlight HDDS traffic:
- View → Coloring Rules
- Add new rule:
- Name:
HDDS Traffic - Filter:
hdds.vendor == "HDDS" - Background: Light green
- Name:
Statistics
Use Statistics → Conversations with filter hdds to see RTPS conversation statistics.
Following Streams
RTPS uses UDP, so "Follow UDP Stream" groups related packets but won't reconstruct application data.
Exporting Filtered Packets
- Apply filter (e.g.,
hdds.vendor == "HDDS") - File → Export Specified Packets
- Choose "Displayed" to export only matching packets