I am using the LUA dissector from mavgenerate.py (which I have previously used the same file successfully with Wireshark a few months ago).
Unfortunately, this time around the decode does not happen, and the TCP payload is just shown as the raw hex data, instead of parsed and decoded values as provided by the dissector file.
I seem to remember that last time round, I set Decode As... to use the LUA dissector for the specific port, but this time round the LUA dissector does not appear in the "Decode As" list of protocols, and I can see no way of adding it, so I can't set it for the specific port I need to decode.
Both the protocol (MAVLINK_PROTO
) and the LUA_Dissector
appear in the Internals>Supported Protocols, and it's enabled under Enabled Protocols, and I've checked that a LUA file runs using -X lua_script:hello.lua, as suggested in the wireshark docs.
Can anybody suggest what else I need to do?
I'm running wireshark-GTK 2.2.6 on Ubuntu 16.04.
Thanks, Stevod
Replies
Problem resolved:
1. There's a bug in the mavlink.lua dissector that causes it to fail, due to the unknownFrameBeginOffset variable not being initialised. Just add "unknownFrameBeginOffset=0" to the start of the script to fix it.
2. The script is written to sniff for MAVLINK over UDP, whereas I am using it to sniff MAVLINK over TCP. Hence I changed the reference to "UDP_DISSECTOR" to read:
local tcp_dissector_table = DissectorTable.get("tcp.port")
tcp_dissector_table:add(14550, mavlink_proto)