Skip to main content

Configuration

Configure the HDDS dissector via Wireshark preferences.

Preferences

Access preferences at: Edit → Preferences → Protocols → HDDS

PreferenceDefaultDescription
Types JSON(empty)Path to types JSON file for CDR decoding
Decode CDRtrueEnable/disable CDR payload decoding
Show Raw HexfalseDisplay raw hex alongside decoded data
VerbosefalseShow additional debug info in info column

CDR Type Decoding

To enable full payload decoding, provide a types JSON file describing your data types.

Generate Types File

# Future: hdds_gen will generate this
hdds_gen --wireshark your_types.idl -o types.ws.json

Manual Types File

Create a JSON file with your types:

{
"types": {
"Temperature": {
"kind": "struct",
"fields": [
{ "name": "sensor_id", "type": "string" },
{ "name": "value", "type": "float64" },
{ "name": "unit", "type": "string" }
]
},
"SensorReading": {
"kind": "struct",
"fields": [
{ "name": "timestamp", "type": "uint64" },
{ "name": "sensor_type", "type": "uint8" },
{ "name": "readings", "type": "float32[]" }
]
}
},
"topics": {
"sensors/temperature": {
"type": "Temperature"
},
"sensors/readings": {
"type": "SensorReading"
}
}
}

Supported Types

TypeCDR SizeDescription
uint81 byteUnsigned 8-bit integer
int81 byteSigned 8-bit integer
uint162 bytesUnsigned 16-bit integer
int162 bytesSigned 16-bit integer
uint324 bytesUnsigned 32-bit integer
int324 bytesSigned 32-bit integer
uint648 bytesUnsigned 64-bit integer
int648 bytesSigned 64-bit integer
float324 bytesIEEE 754 single precision
float648 bytesIEEE 754 double precision
string4 + len + paddingCDR string (length-prefixed)
bytes4 + len + paddingRaw byte sequence

Set Types Path

  1. Edit → Preferences → Protocols → HDDS
  2. Set Types JSON to your file path (e.g., /home/user/dds_types.json)
  3. Click OK
  4. Reload dissector: Analyze → Reload Lua Plugins (or restart Wireshark)

Vendor IDs

The dissector recognizes these vendor IDs:

IDVendor Name
0x0000UNKNOWN
0x0101RTI Connext
0x0102OpenSplice (ADLink)
0x0103OpenDDS (OCI)
0x010FFastDDS (eProsima)
0x0110Cyclone DDS
0x0112RustDDS
0x01AAHDDS

HDDS packets (0x01AA) are automatically highlighted with [HDDS] prefix.

Entity IDs

Well-known entity IDs are decoded by name:

IDNamePurpose
0x000001C1PARTICIPANTParticipant entity
0x000100C2SPDP_WRITERParticipant discovery writer
0x000100C7SPDP_READERParticipant discovery reader
0x000003C2SEDP_PUB_WRITERPublication discovery writer
0x000003C7SEDP_PUB_READERPublication discovery reader
0x000004C2SEDP_SUB_WRITERSubscription discovery writer
0x000004C7SEDP_SUB_READERSubscription discovery reader
0x000300C3TYPELOOKUP_REQType lookup request
0x000300C4TYPELOOKUP_REPType lookup reply

Troubleshooting

Dissector Not Loading

Check the Lua console for errors:

  1. Tools → Lua → Console
  2. Look for [HDDS] messages
  3. Should show: [HDDS] RTPS Dissector loaded - Version 1.0.0

No HDDS Tree in Packets

  • Verify packets are on ports 7400-7500
  • Check packets have valid RTPS magic (RTPS)
  • Enable the protocol: Analyze → Enabled Protocols → hdds

CDR Decoding Not Working

  • Verify types JSON file path is correct and readable
  • Check Lua console for JSON parsing errors
  • Ensure JSON format matches expected schema
  • Reload Lua plugins after changing preferences

Reload Without Restart

To apply changes without restarting Wireshark:

Analyze → Reload Lua Plugins

Or use the keyboard shortcut (Ctrl+Shift+L) to open Lua evaluation.

Debug Output

Enable Verbose preference to add debug info to the info column.

For more detailed debugging, add print statements to the Lua file:

print("[HDDS] Debug: " .. message)

Output appears in Tools → Lua → Console.