wireshark/plugins/wimax
Guy Harris a4c8ebc18b Don't do any Decode As stuff for dissector tables not used with Decode As.
Have all dissector tables have a "supports Decode As" flag, which
defaults to FALSE, and which is set to TRUE if a register_decode_as()
refers to it.

When adding a dissector to a dissector table with a given key, only add
it for Decode As if the dissector table supports it.

For non-FT_STRING dissector tables, always check for multiple entries
for the same protocol with different dissectors, and report an error if
we found them.

This means there's no need for the creator of a dissector table to
specify whether duplicates of that sort should be allowed - we always do
the check when registering something for "Decode As" (in a non-FT_STRING
dissector table), and just don't bother registering anything for "Decode
As" if the dissector table doesn't support "Decode As", so there's no
check done for those dissector tables.

Change-Id: I4a1fdea3bddc2af27a65cfbca23edc99b26c0eed
Reviewed-on: https://code.wireshark.org/review/17402
Petri-Dish: Guy Harris <guy@alum.mit.edu>
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2016-08-31 00:08:01 +00:00
..
AUTHORS
CMakeLists.txt Add checkAPI calls to CMake. 2016-05-02 12:01:24 +00:00
COPYING
ChangeLog
Makefile.am Remove Makefile.common files 2016-06-30 11:04:17 +00:00
README.wimax Continue to remove $Id$ from top of file 2014-03-31 16:00:04 +00:00
crc.c Fix shadow variable warnings. 2016-07-24 15:16:14 +00:00
crc.h Remove all $Id$ from top of file 2014-03-04 14:27:33 +00:00
crc_data.c plugins: Add editor modelines; Adjust whitespace as needed. 2014-10-06 01:42:32 +00:00
mac_hd_generic_decoder.c Follow up for proto_tree_add_checksum. 2016-07-27 03:40:02 +00:00
mac_hd_type1_decoder.c new_register_dissector -> register_dissector for remaining uses. 2015-12-11 03:42:37 +00:00
mac_hd_type2_decoder.c new_register_dissector -> register_dissector for remaining uses. 2015-12-11 03:42:37 +00:00
mac_mgmt_msg_decoder.c Don't do any Decode As stuff for dissector tables not used with Decode As. 2016-08-31 00:08:01 +00:00
moduleinfo.h Add our license header to plugin moduleinfo.h files. Cleans up a batch of 2013-07-06 13:31:31 +00:00
msg_aas_beam.c new_create_dissector_handle -> create_dissector_handle for plugins. 2015-12-11 03:42:52 +00:00
msg_aas_fbck.c new_create_dissector_handle -> create_dissector_handle for plugins. 2015-12-11 03:42:52 +00:00
msg_arq.c new_create_dissector_handle -> create_dissector_handle for plugins. 2015-12-11 03:42:52 +00:00
msg_clk_cmp.c new_create_dissector_handle -> create_dissector_handle for plugins. 2015-12-11 03:42:52 +00:00
msg_dcd.c new_create_dissector_handle -> create_dissector_handle for plugins. 2015-12-11 03:42:52 +00:00
msg_dlmap.c Follow up for proto_tree_add_checksum. 2016-07-27 03:40:02 +00:00
msg_dreg.c new_create_dissector_handle -> create_dissector_handle for plugins. 2015-12-11 03:42:52 +00:00
msg_dsa.c new_create_dissector_handle -> create_dissector_handle for plugins. 2015-12-11 03:42:52 +00:00
msg_dsc.c new_create_dissector_handle -> create_dissector_handle for plugins. 2015-12-11 03:42:52 +00:00
msg_dsd.c new_create_dissector_handle -> create_dissector_handle for plugins. 2015-12-11 03:42:52 +00:00
msg_dsx_rvd.c new_create_dissector_handle -> create_dissector_handle for plugins. 2015-12-11 03:42:52 +00:00
msg_fpc.c new_create_dissector_handle -> create_dissector_handle for plugins. 2015-12-11 03:42:52 +00:00
msg_pkm.c new_create_dissector_handle -> create_dissector_handle for plugins. 2015-12-11 03:42:52 +00:00
msg_pmc.c new_create_dissector_handle -> create_dissector_handle for plugins. 2015-12-11 03:42:52 +00:00
msg_prc_lt_ctrl.c new_create_dissector_handle -> create_dissector_handle for plugins. 2015-12-11 03:42:52 +00:00
msg_reg_req.c new_create_dissector_handle -> create_dissector_handle for plugins. 2015-12-11 03:42:52 +00:00
msg_reg_rsp.c new_create_dissector_handle -> create_dissector_handle for plugins. 2015-12-11 03:42:52 +00:00
msg_rep.c new_create_dissector_handle -> create_dissector_handle for plugins. 2015-12-11 03:42:52 +00:00
msg_res_cmd.c new_create_dissector_handle -> create_dissector_handle for plugins. 2015-12-11 03:42:52 +00:00
msg_rng_req.c new_create_dissector_handle -> create_dissector_handle for plugins. 2015-12-11 03:42:52 +00:00
msg_rng_rsp.c Store the tree item to add to later (CID-1159152) 2016-06-12 01:25:59 +00:00
msg_sbc.c new_create_dissector_handle -> create_dissector_handle for plugins. 2015-12-11 03:42:52 +00:00
msg_ucd.c new_create_dissector_handle -> create_dissector_handle for plugins. 2015-12-11 03:42:52 +00:00
msg_ulmap.c Follow up for proto_tree_add_checksum. 2016-07-27 03:40:02 +00:00
packet-wmx.c Add free_address_wmem(), fix warnings [-Wcast-qual] 2016-02-26 23:09:43 +00:00
plugin.rc.in Fix CMake generation and use of Windows .rc files 2015-01-11 20:22:32 +00:00
wimax_bits.h Convert tvb_get_ptr buffer access macros to use much safer tvb access macros. 2014-07-30 15:45:26 +00:00
wimax_cdma_code_decoder.c new_register_dissector -> register_dissector for remaining uses. 2015-12-11 03:42:37 +00:00
wimax_compact_dlmap_ie_decoder.c Remove unneeded includes from plugins folder 2015-02-10 17:53:28 +00:00
wimax_compact_dlmap_ie_decoder.h Remove all $Id$ from top of file 2014-03-04 14:27:33 +00:00
wimax_compact_ulmap_ie_decoder.c Remove unneeded includes from plugins folder 2015-02-10 17:53:28 +00:00
wimax_compact_ulmap_ie_decoder.h Remove all $Id$ from top of file 2014-03-04 14:27:33 +00:00
wimax_fch_decoder.c new_register_dissector -> register_dissector for remaining uses. 2015-12-11 03:42:37 +00:00
wimax_ffb_decoder.c new_register_dissector -> register_dissector for remaining uses. 2015-12-11 03:42:37 +00:00
wimax_hack_decoder.c new_register_dissector -> register_dissector for remaining uses. 2015-12-11 03:42:37 +00:00
wimax_harq_map_decoder.c Follow up for proto_tree_add_checksum. 2016-07-27 03:40:02 +00:00
wimax_mac.h Remove all $Id$ from top of file 2014-03-04 14:27:33 +00:00
wimax_pdu_decoder.c new_register_dissector -> register_dissector for remaining uses. 2015-12-11 03:42:37 +00:00
wimax_phy_attributes_decoder.c new_register_dissector -> register_dissector for remaining uses. 2015-12-11 03:42:37 +00:00
wimax_tlv.c Remove Nmake build system 2016-06-15 19:21:57 +00:00
wimax_tlv.h plugins: Cleanup #includes 2014-12-22 05:00:20 +00:00
wimax_utils.c Remove unneeded includes from plugins folder 2015-02-10 17:53:28 +00:00
wimax_utils.h WIMAX: fix no previous prototype for ... [-Wmissing-prototypes] 2015-01-27 15:31:57 +00:00

README.wimax

This document is an attempt, to explain how to use the wimax plugin
in this directory.


Overview
--------
The wimax plugin is a standalone Wireshark plugin that contains a set
of WiMax Protocol dissectors.  The plugin registers the WiMax Protocol
dissectors without attached to any packet type.  So none of the
dissectors will be called by the Wireshark because there is no any
packet type hookup to the plugin.  However, it is very simple to add
the WiMax Protocol decoding capability into any of the packet decoder
by searching and calling the WiMax Protocol dissectors since they are
registered to Wireshark already.  m2m plugin is an example that uses
the wimax plugin to decode the WiMax MAC to MAC Protocol TLV packet.


WiMax Protocol dissector list
-------------
WiMax Burst Dissectors:
 1. wimax_cdma_code_burst_handler - WiMax CDMA Code Attribute Burst dissector.
 2. wimax_fch_burst_handler - WiMax FCH Burst dissector.
 3. wimax_ffb_burst_handler - WiMax Fast Feedback Burst dissector.
 4. wimax_pdu_burst_handler - WiMax PDU Burst dissector.
 5. wimax_hack_burst_handler - WiMax HACK Burst dissector.
 6. wimax_phy_attributes_burst_handler - WiMax PHY Attributes Burst dissector.

WiMax MAC dissectors:
 7. mac_header_type_1_handler - WiMax TYPE I MAC Header PDU dissector.
 8. mac_header_type_2_handler - WiMax TYPE II MAC Header PDU dissector.
 9. mac_header_generic_handler - WiMax Generic MAC Header PDU dissector.
 10. mac_mgmt_msg_handler - WiMax MAC Management Messages dissector.

WiMax Utility dissectors:
11. wimax_service_flow_encodings_decoder - WiMax Service Flow Encodings dissector.
12. wimax_error_parameter_set_decoder - WiMax Error Parameter Set dissector.
13. wimax_security_negotiation_parameters_decoder - WiMax Security Negotiation Parameter dissector.
14. wimax_pkm_tlv_encoded_attributes_decoder - WiMax PKM TLV Encoded Attributes dissector.
15. wimax_tek_parameters_decoder - WiMax TEK Parameters dissector.
16. wimax_pkm_configuration_settings_decoder - WiMax PKM Configuration Settings dissector.
17. wimax_sa_descriptor_decoder - WiMax SA Descriptor dissector.
18. wimax_cryptographic_suite_list_decoder - WiMax Cryptographic Suite List dissector.
19. wimax_security_capabilities_decoder - WiMax Security Capabilities dissector.
20. wimax_common_tlv_encoding_decoder - WiMax Common TLV Encoding dissector.
19. wimax_vendor_specific_information_decoder - WiMax Vendor-Specific Information dissector.


Usages
--------
To use any of the dissectors listed above:

1. Call Wireshark function: handle = find_dissector("dissector_name")
to get the dissector's handler.
Example: mgt_msg_handle = find_dissector("mac_mgmt_msg_handler");

2. If find_dissector() finds the dissector successfully a non-NULL
handle will be returned. Then call another Wireshark function:
call_dissector(handle, tvb, pinfo, tree) to call the dissector
corresponding to the handle.

Here, handle is the value returned by find_dissector() function.
    tvb is the pointer of the data buffer which contains the exact
	content defined by the IEEE 802.16 standards for the dissector.
    pinfo is the pointer to the packet information from Wireshark.
    tree is the pointer to the display tree or sub-tree.
Example: call_dissector(mgt_msg_handle, mgt_msg_tvb, pinfo, mgt_msg_tree);

3. The WiMax Utility dissectors should be called directly.


Notes
--------
1. All the burst data has to be defraged before passing it to the
WiMax burst dissectors.

2. The wimax_pdu_burst_handler will automatically call
mac_header_generic_handler, mac_header_type_1_handler and
mac_header_type_2_handler based on the PDU contents.

3. The mac_header_generic_handler will automatically call
mac_mgmt_msg_handler based on the PDU payload.

4. All the dissectors can be called independently but the data passed
to the dissectors has to contain exact content defined by the
IEEE 802.16 standards.