This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC1352R: Wireshark can't successfully decode the Openthread messages

Part Number: CC1352R
Other Parts Discussed in Thread: PACKET-SNIFFER,

Dear TI expert,

My wireshark can't successfully decode the captured openthread messages (please have a look at the attached file that includes few Advertisement Openthread messages).

Using wireshark to decode the Openthread messages is very important for us to debugging our application, Could you please help on this issue?

(Please be noted that the packages are captured at 868Mhz frequency, and we have NO issue on using wireshark to decode Openthread at 2.4GHz)

Thank you very much in advance,

Pengcheng.openthread.7z

  • Hi,

    Are you using PACKET-SNIFFER? Can you verify that you are using the latest version of PACKET-SNIFFER and Wireshark?

    Regards,

  • Hi,  I do use smartrf sniffer v1.7.0 and wireshark v2.6.10.  Can you successfully open my attached sniffer file?  The file includes 5 Acknowledgement Openthread message, but I can only see the packages as below.

    Thank you very much.

  • Hi Pengcheng,

    The CC1352R sniffer firmware is not designed to interpret Sub-1 GHz Thread messages.  The TI-OpenThread stack does not support Sub-1 GHz either.  Any questions regarding Wireshark software operation can be asked on their forum.

    Regards,
    Ryan

  • Thank you very much.

    Kind regards,

    Pengcheng.

  • After having a little investigation on the TI sniffer, the TI plugin will not handle "PROTOCOL_GENERIC", which is in the "protocol" field in TI header, with IEEE802.15.4 dissector. The snippets of code is shown below.

    /* Forward payload to next dissector depending on protocol field value */
    tvbuff_t* payloadTvb = tvb_new_subset_remaining(tvb, PAYLOAD_OFFSET);

    if(protocol == PROTOCOL_IEEE_802_15_4_G)
    {
        call_dissector(ti802154ge_sun_phy_handle, payloadTvb, pinfo, tree);
    }
    else if(protocol == PROTOCOL_IEEE_802_15_4)
    {
        call_dissector(legacy_ieee802154_handle, payloadTvb, pinfo, tree);
    }
    else if(protocol == PROTOCOL_BLE)
    {
        call_dissector(ble_handle, payloadTvb, pinfo, tree);
    }
    //
    else
    {
        /* For all other protocols use the generic data dissector */
        call_dissector(data_handle, payloadTvb, pinfo, tree);
    }