.. include:: vars.rst .. _section-Debugging: Debugging RTPS Systems ====================== In general, the Wireshark capture will contain a lot of information and you will need only a subset of it. There are a few very interesting filters that can help narrow down the information until you get exactly what you are looking for. These are presented below: IP Level Filters: * **ip.src**: Filters the source IP addresses by IP address. * **ip.dst**: Filters the destination IP addresses by IP address. * **ip.addr**: Filters all the IP addresses (for example, “ip.addr == 192.168.1.0”). UDP Level Filters: * **udp.srcport**: Filters the source ports by the specified port. * **udp.dstport**: Filters the destination ports by the specified port. * **udp.port**: Filters all the ports. RTPS Level Filters: * **rtps.guidPrefix.src**: Filters the source GUID prefixes by the specified GUID. * **rtps.guidPrefix.dst**: Filters the destination GUID prefixes by the specified GUID. * **rtps.guidPrefix**: Filters all the GUID prefixes by the specified GUID. * **rtps.trafficNature**: Filters by traffic nature. * UNICAST_METATRAFFIC = 0 * MULTICAST_USERTRAFFIC = 1 * MULTICAST_METATRAFFIC = 2 * UNICAST_USERTRAFFIC = 3 * **rtps.domain_id**: ID of the domain to which the packed belongs. * **rtps.sm.id**: Filters by submessage ID. These are all the different values for the ID in Wireshark. (Note: Not all of them are sent by *Connext DDS*.) * (0x01) PAD * (0x02) DATA * (0x03) NOKEY_DATA * (0x06) ACKNACK * (0x07) HEARTBEAT * (0x08) GAP * (0x09) INFO_TS * (0x0c) INFO_SRC * (0x0d) INFO_REPLY_IP4 * (0x0e) INFO_DST * (0x0f) INFO_REPLY * (0x10) DATA_FRAG * (0x11) NOKEY_DATA_FRAG * (0x12) NACK_FRAG * (0x13) HEARTBEAT_FRAG * (0x14) RTPS_DATA_SESSION * (0x15) RTPS_DATA * (0x16) RTPS_DATA_FRAG * (0x17) ACKNACK_BATCH * (0x18) RTPS_DATA_BATCH * (0x19) HEARTBEAT_BATCH * (0x1a) ACKNACK_SESSION * (0x1b) HEARTBEAT_SESSION * (0x1c) APP_ACK * (0x1d) APP_ACK_CONF * (0x1e) HEARTBEAT_VIRTUAL * (0x30) SEC_BODY * (0x31) SEC_PREFIX * (0x32) SEC_POSTFIX * (0x33) SRTPS_PREFIX * (0x34) SRTPS_POSTFIX * (0x80) RTI_CRC * **rtps.sm.wrEntityId**: Filters by DataWriter entity ID. By using both the guidPrefix and wrEntityId, you can filter by DataWriter GUID. For example: :: (rtps.guidPrefix.src == 0a:46:02:c7:00:00:27:08:00:00:00:01) && (rtps.sm.wrEntityId == 0x000100c2) * **rtps.param.topicName**: Filters by Topic name. * **rtps.param.typeName**: Filters by Type name. As you can see, there are a lot of filters that can be applied. Do not try to memorize all of them. Instead, right-click on top of the fields you want to use for filtering and use the "apply as filter" feature. See :ref:`section-AppendixFilters` (:numref:`section-AppendixFilters`) for a list of filters that have predefined values. For a full list of available filters for each protocol version, please see https://www.wireshark.org/docs/dfref/r/rtps.html.