Skip to main content

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

FieldTypeDescription
hdds.magicstringRTPS magic ("RTPS")
hdds.versionstringProtocol version (e.g., "2.3")
hdds.vendorstringVendor name
hdds.guid_prefixbytes12-byte GUID prefix
hdds.submsg.kindstringSubmessage type name
hdds.submsg.flagsuint8Submessage flags
hdds.submsg.lengthuint16Submessage length
hdds.reader_idbytesReader entity ID
hdds.writer_idbytesWriter entity ID
hdds.seq_numuint64Sequence number
hdds.first_sequint64First sequence (HEARTBEAT)
hdds.last_sequint64Last sequence (HEARTBEAT)
hdds.topicstringTopic name (from inline QoS)
hdds.type_namestringType name (from inline QoS)
hdds.payload_lenuint32Payload length in bytes

Tips

Coloring Rules

Add coloring rules to highlight HDDS traffic:

  1. View → Coloring Rules
  2. Add new rule:
    • Name: HDDS Traffic
    • Filter: hdds.vendor == "HDDS"
    • Background: Light green

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

  1. Apply filter (e.g., hdds.vendor == "HDDS")
  2. File → Export Specified Packets
  3. Choose "Displayed" to export only matching packets