Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

You cannot call dissectors from a tap. Taps/Listeners are after all dissection has already been done. The proper way to do this is to have your outer layer dissector call the inner layer dissector for frames of type b. That is somewhat similar to the example here, but you would need to find your other Lua dissector: https://www.wireshark.org/docs/wsdg_html_chunked/wslua_dissector_example.html

This is made a more complicated by https://gitlab.com/wireshark/wireshark/-/issues/15907 See the related https://ask.wireshark.org/question/10263/custom-sub-protocols-registering-with-a-custom-protocols-dissector-table/

You can get around that I believe by not using a table, though you want to make sure that the subdissector is registered before the outer dissector (which can involve putting them in the same file, or making sure that the inner dissector's file comes earlier in ASCII order: (https://www.wireshark.org/docs/wsdg_html_chunked/wsluarm.html#wsluarm_intro)